📄 ftlib.h
字号:
#define FT_XFIELD_DST_AS 0x0000000008000000LL#define FT_XFIELD_IN_ENCAPS 0x0000000010000000LL#define FT_XFIELD_OUT_ENCAPS 0x0000000020000000LL#define FT_XFIELD_PEER_NEXTHOP 0x0000000040000000LL#define FT_XFIELD_ROUTER_SC 0x0000000080000000LL#define FT_XFIELD_EXTRA_PKTS 0x0000000100000000LL#define FT_XFIELD_MARKED_TOS 0x0000000200000000LL#define FT_XFIELD_SRC_TAG 0x0000000400000000LL#define FT_XFIELD_DST_TAG 0x0000000800000000LL#define FT_XFIELD_V1_MASK 0x0000000000FF31EFLL#define FT_XFIELD_V5_MASK 0x000000000FFF37EFLL#define FT_XFIELD_V6_MASK 0x000000007FFF37EFLL#define FT_XFIELD_V7_MASK 0x000000008FFF37EFLL#define FT_XFIELD_V8_1_MASK 0x000000000C0607FFLL#define FT_XFIELD_V8_2_MASK 0x00000000003807FFLL#define FT_XFIELD_V8_3_MASK 0x00000000050217FFLL#define FT_XFIELD_V8_4_MASK 0x000000000A0427FFLL#define FT_XFIELD_V8_5_MASK 0x000000000F0637FFLL#define FT_XFIELD_V8_6_MASK 0x00000003804427EFLL#define FT_XFIELD_V8_7_MASK 0x00000003804637EFLL#define FT_XFIELD_V8_8_MASK 0x00000003807E37EFLL#define FT_XFIELD_V8_9_MASK 0x000000000C4607FFLL#define FT_XFIELD_V8_10_MASK 0x00000000007807FFLL#define FT_XFIELD_V8_11_MASK 0x00000000054217FFLL#define FT_XFIELD_V8_12_MASK 0x000000000A4427FFLL#define FT_XFIELD_V8_13_MASK 0x000000000F4637FFLL#define FT_XFIELD_V8_14_MASK 0x00000000037E37FFLL#define FT_XFIELD_V1005_MASK 0x0000000C0FFF37EFLL#define FT_XFIELD_TAGGING_MASK 0x000000000FFF37EFLL#define FT_XFIELD_ASC_UNIX_SECS "unix_secs"#define FT_XFIELD_ASC_UNIX_NSECS "unix_nsecs"#define FT_XFIELD_ASC_SYSUPTIME "sysuptime"#define FT_XFIELD_ASC_EXADDR "exaddr"#define FT_XFIELD_ASC_DFLOWS "dflows"#define FT_XFIELD_ASC_DPKTS "dpkts"#define FT_XFIELD_ASC_DOCTETS "doctets"#define FT_XFIELD_ASC_FIRST "first"#define FT_XFIELD_ASC_LAST "last"#define FT_XFIELD_ASC_ENGINE_TYPE "engine_type"#define FT_XFIELD_ASC_ENGINE_ID "engine_id"#define FT_XFIELD_ASC_SRCADDR "srcaddr"#define FT_XFIELD_ASC_DSTADDR "dstaddr"#define FT_XFIELD_ASC_NEXTHOP "nexthop"#define FT_XFIELD_ASC_INPUT "input"#define FT_XFIELD_ASC_OUTPUT "output"#define FT_XFIELD_ASC_SRCPORT "srcport"#define FT_XFIELD_ASC_DSTPORT "dstport"#define FT_XFIELD_ASC_PROT "prot"#define FT_XFIELD_ASC_TOS "tos"#define FT_XFIELD_ASC_TCP_FLAGS "tcp_flags"#define FT_XFIELD_ASC_SRC_MASK "src_mask"#define FT_XFIELD_ASC_DST_MASK "dst_mask"#define FT_XFIELD_ASC_SRC_AS "src_as"#define FT_XFIELD_ASC_DST_AS "dst_as"#define FT_XFIELD_ASC_IN_ENCAPS "in_encaps"#define FT_XFIELD_ASC_OUT_ENCAPS "out_encaps"#define FT_XFIELD_ASC_PEER_NEXTHOP "peer_nexthop"#define FT_XFIELD_ASC_ROUTER_SC "router_sc"#define FT_XFIELD_ASC_MARKED_TOS "marked_tos"#define FT_XFIELD_ASC_EXTRA_PKTS "extra_pkts"#define FT_XFIELD_ASC_SRC_TAG "src_tag"#define FT_XFIELD_ASC_DST_TAG "dst_tag"struct ftipmask { u_int32 src_mask; u_int32 dst_mask; u_int32 mcast_mask; u_int32 mcast_val;};struct fttlv { u_int16 t, l; /* type, length */ char *v; /* value */};struct ftprof { struct timeval t0; /* start time */ struct timeval t1; /* end time */ struct rusage r0; /* system resources used */ u_int64 nflows; /* total # of flows processed */};struct ftset { int byte_order; int z_level; char *hostname; char *comments; char hnbuf[FT_HOSTNAME_LEN]; u_int16 as_sub;};struct fttime { u_int32 secs; u_int32 msecs;};struct ftver { u_int8 s_version; u_int8 agg_version; u_int8 agg_method; u_int8 set; u_int16 d_version;};struct ftdecode { char buf[FT_IO_MAXDECODE]; /* buffer PDU decoded into - num records */ int count; /* number of stream records */ int rec_size; /* size of stream record */ int byte_order; /* byte order to decode to */ u_int32 exporter_ip; /* ip address of exporter */ u_int16 as_sub; /* replace AS0 with this */};struct ftencode { char buf[FT_IO_MAXENCODE]; /* buffer stream encodes into */ char *buf_enc; /* actual encode buffer, will not be &buf if FT_ENC_FLAGS_IPHDR is set */ int buf_size; /* bytes used in buf_enc */ struct ftver ver; /* version of stream encoding */ u_int32 seq_next[65536]; /* sequence number for each engine_type & id */ int flags; /* FT_ENC_FLAGS */ int d_sum; /* data checksum for buf_enc */};struct ftpdu { char buf[FT_RCV_BUFSIZE]; /* raw packet */ int bused; /* length of buf used */ struct ftver ftv; /* version of PDU */ struct ftdecode ftd; /* decoded records */ int (*decodef) /* decode function */ (struct ftpdu *ftpdu);};struct ftseq { u_int32 seq[65536]; /* sequence number for each engine_type & id */ u_int8 seq_set[65536]; /* initial sequence number received? */ u_int32 seq_rcv, seq_exp, seq_lost; /* sequence # received / expecting / lost */};struct ftheader_gen { u_int8 magic1; /* 0xCF */ u_int8 magic2; /* 0x10 (cisco flow) */ u_int8 byte_order; /* 1 for little endian (VAX) */ /* 2 for big endian (Motorolla) */ u_int8 s_version; /* flow stream format version 1 or 3 */};struct ftnet { struct sockaddr_in loc_addr; /* local side */ struct sockaddr_in rem_addr; /* remote side (exporter) */ u_int32 loc_ip; /* local IP */ u_int32 rem_ip; /* remote IP */ u_int16 dst_port; /* exporter UDP destination port */ int fd; /* fd receiving flows on */ struct mymsghdr msg; /* recvmsg data */ struct { struct cmsghdr hdr;#ifdef IP_RECVDSTADDR struct in_addr ip;#else#ifdef IP_PKTINFO struct in_pktinfo pktinfo;#endif /* else */#endif /* IP RECVDSTADDR */ } msgip; struct iovec iov[1]; /* msg buffer */};struct ftmap_ifalias { u_int32 ip; u_int16 entries; u_int16 *ifIndex_list; char *name; FT_LIST_ENTRY (ftmap_ifalias) chain;};struct ftmap_ifname { u_int32 ip; u_int16 ifIndex; char *name; FT_LIST_ENTRY (ftmap_ifname) chain;};struct ftmap { FT_LIST_HEAD(ftmap_ifaliash, ftmap_ifalias) ifalias; FT_LIST_HEAD(ftmap_ifnameh, ftmap_ifname) ifname;};#define FT_TAG_TYPE_MATCH_SRC_AS 0x1#define FT_TAG_TYPE_MATCH_DST_AS 0x2#define FT_TAG_TYPE_MATCH_AS 0x3#define FT_TAG_TYPE_MATCH_TOS 0x4 #define FT_TAG_TYPE_MATCH_SRC_PREFIX 0x10#define FT_TAG_TYPE_MATCH_DST_PREFIX 0x20#define FT_TAG_TYPE_MATCH_PREFIX 0x30#define FT_TAG_TYPE_MATCH_ANY 0x40#define FT_TAG_TYPE_MATCH_SRC_TCP_PORT 0x100#define FT_TAG_TYPE_MATCH_DST_TCP_PORT 0x200#define FT_TAG_TYPE_MATCH_TCP_PORT 0x300#define FT_TAG_TYPE_MATCH_SRC_UDP_PORT 0x1000#define FT_TAG_TYPE_MATCH_DST_UDP_PORT 0x2000#define FT_TAG_TYPE_MATCH_UDP_PORT 0x3000#define FT_TAG_DEF_FILTER_EXPORTER 0x1#define FT_TAG_DEF_FILTER_INPUT 0x2#define FT_TAG_DEF_FILTER_OUTPUT 0x4#define FT_TAG_DEF_ACTIVE_DEFAULT 0x8 /* default_defs list is not empty */#define FT_TAG_DEF_ACTIVE_HASH 0x10 /* exp_hash is not empty */#define FT_TAG_TYPE_MATCH_NEXTHOP 0x100 #define FT_TAG_SET_DST_TAG 0x101#define FT_TAG_SET_SRC_TAG 0x202#define FT_TAG_SET_TAG 0x303#define FT_TAG_OR_DST_TAG 0x110#define FT_TAG_OR_SRC_TAG 0x220#define FT_TAG_OR_TAG 0x330struct fttag { FT_SLIST_HEAD(defshead, fttag_def) defs; /* list of definitions */ FT_SLIST_HEAD(acthead, fttag_action) actions; /* list of actions */ int flags;};struct fttag_prefix_look { struct radix_node rt_nodes[2]; /* radix tree glue */ struct radix_sockaddr_in addr; u_int8 masklen; u_int16 set_flags; u_int32 src_tag; u_int32 dst_tag;};struct fttag_as_look { u_int16 set_flags_lookup[65536]; u_int32 src_tag_lookup[65536]; u_int32 dst_tag_lookup[65536];};struct fttag_port_look { u_int16 set_flags_lookup[65536]; u_int32 src_tag_lookup[65536]; u_int32 dst_tag_lookup[65536];};struct fttag_tos_look { u_int16 set_flags_lookup[256]; u_int32 src_tag_lookup[256]; u_int32 dst_tag_lookup[256];};struct fttag_any_look { u_int16 set_flags; u_int32 src_tag; u_int32 dst_tag;};struct fttag_next_hop_look { FT_SLIST_ENTRY(fttag_next_hop_look) chain; u_int32 addr; /* key */ u_int16 set_flags; u_int32 src_tag; u_int32 dst_tag;};struct ftxfield_table { char *name; u_int64 val;};/* internal representation of header */struct ftiheader { u_int32 size; /* size of header written */ u_int32 fields; /* decoded fields - FT_FIELD_* */ u_int8 magic1; /* 0xCF */ u_int8 magic2; /* 0xL0 (cisco flow) */ u_int8 byte_order; /* 1 for little endian (VAX) */ /* 2 for big endian (Motorolla) */ u_int8 s_version; /* flow stream format version 1 or 2 */ u_int16 d_version; /* 1 or 5 - stream version 1 */ /* 1,5,7,8 - stream version 2 */ u_int8 agg_version; /* v8 aggregation version */ u_int8 agg_method; /* v8 aggregation method */ u_int32 exporter_ip; /* IP address of exporter */ u_int32 cap_start; /* start time of flow capture */ u_int32 cap_end; /* end time of flow capture */ u_int32 flags; /* FT_HEADER_FLAG_* */ u_int32 rotation; /* rotation schedule */ u_int32 flows_count; /* # flows */ u_int32 flows_lost; /* # lost flows */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -