/********************************************************************************************************************************/ /* Created: 10-Aug-2009 18:02:35 by OpenVMS SDL EV2-3 */ /* Source: 10-AUG-2009 18:02:34 DISK$SYSMAN:[LAISHEV.WORK.NETFLOW]NETFLOWDEF.SDL;56 */ /********************************************************************************************************************************/ /*** MODULE NETFLOWDEF IDENT NETFLOWDEF-1-X ***/ #ifndef __NETFLOWDEF_LOADED #define __NETFLOWDEF_LOADED 1 #pragma __nostandard /* This file uses non-ANSI-Standard features */ #pragma __member_alignment __save #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __save /* Save the previously-defined required ptr size */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #define __optional_params ... #else #define __unknown_params #define __optional_params ... #endif #ifndef __struct #if !defined(__VAXC) #define __struct struct #else #define __struct variant_struct #endif #endif #ifndef __union #if !defined(__VAXC) #define __union union #else #define __union variant_union #endif #endif /*++ */ /* Facility: */ /* Cisco NetFlow services */ /* */ /* Abstract: */ /* This is an interface module contains data structures definitions, */ /* constants. */ /* */ /* Author: */ /* Ruslan R. Laishev */ /* */ /* Creation Date: 5-DEC-2002 */ /* */ /* Modification History: */ /* */ /* 3-SEP-2003 RRL Added sysip field to nf_pktv5 structure. */ /*-- */ #ifdef __NEW_STARLET typedef union _sqlstate { char sqlstate$t_sts [5]; __struct { char sqlstate$t_class [2]; char sqlstate$t_code [3]; } sqlstate$r_s; } SQLSTATE; #if !defined(__VAXC) #define sqlstate$t_class sqlstate$r_s.sqlstate$t_class #define sqlstate$t_code sqlstate$r_s.sqlstate$t_code #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ union sqlstate { char sqlstate$t_sts [5]; __struct { char sqlstate$t_class [2]; char sqlstate$t_code [3]; } sqlstate$r_s; } ; #if !defined(__VAXC) #define sqlstate$t_class sqlstate$r_s.sqlstate$t_class #define sqlstate$t_code sqlstate$r_s.sqlstate$t_code #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define SQLCODE$M_SEVERITY 0x1 #define SQLCODE$M_CODE 0x2 #ifdef __NEW_STARLET typedef struct _sqlcode { __union { int sqlcode$l_sts; __struct { unsigned sqlcode$v_severity : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned sqlcode$v_code : 3 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned sqlcode$v_fill_2_ : 4; } sqlcode$r_fill_1_; } sqlcode$r_fill_0_; } SQLCODE; #if !defined(__VAXC) #define sqlcode$l_sts sqlcode$r_fill_0_.sqlcode$l_sts #define sqlcode$v_severity sqlcode$r_fill_0_.sqlcode$r_fill_1_.sqlcode$v_severity #define sqlcode$v_code sqlcode$r_fill_0_.sqlcode$r_fill_1_.sqlcode$v_code #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ struct sqlcode { __union { int sqlcode$l_sts; __struct { unsigned sqlcode$v_severity : 1 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned sqlcode$v_code : 3 /** WARNING: bitfield array has been reduced to a string **/ ; unsigned sqlcode$v_fill_2_ : 4; } sqlcode$r_fill_1_; } sqlcode$r_fill_0_; } ; #if !defined(__VAXC) #define sqlcode$l_sts sqlcode$r_fill_0_.sqlcode$l_sts #define sqlcode$v_severity sqlcode$r_fill_0_.sqlcode$r_fill_1_.sqlcode$v_severity #define sqlcode$v_code sqlcode$r_fill_0_.sqlcode$r_fill_1_.sqlcode$v_code #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _rdb$_message_vector { unsigned int rdb$l_acnt; /* Number of arguments in the vector */ unsigned int rdb$l_sts; /* Primary status code of the last SQL statement */ unsigned int rdb$l_fcnt; /* Number of FAO arguments to primary message */ /* Return status for follow-on messages, if any */ unsigned int rdb$l_args [17]; } RDB$_MESSAGE_VECTOR; #else /* __OLD_STARLET */ struct rdb$_message_vector { unsigned int rdb$l_acnt; /* Number of arguments in the vector */ unsigned int rdb$l_sts; /* Primary status code of the last SQL statement */ unsigned int rdb$l_fcnt; /* Number of FAO arguments to primary message */ /* Return status for follow-on messages, if any */ unsigned int rdb$l_args [17]; } ; #endif /* #ifdef __NEW_STARLET */ /*++ */ /** */ /** NetFlow Export Header Formats */ /** */ /*-- */ #ifdef __NEW_STARLET typedef struct _nf_hdrv1 { unsigned short int nf_hdr$w_version; /* Current version=1 */ unsigned short int nf_hdr$w_count; /* The number of records in PDU. */ unsigned int nf_hdr$l_uptime; /* Current time in msecs since router booted. */ unsigned int nf_hdr$l_secs; /* Current seconds since 0000 UTC 1970 */ unsigned int nf_hdr$l_nsecs; /* Residual nanoseconds since 0000 UTC 1970 */ } NF_HDRV1; #else /* __OLD_STARLET */ struct nf_hdrv1 { unsigned short int nf_hdr$w_version; /* Current version=1 */ unsigned short int nf_hdr$w_count; /* The number of records in PDU. */ unsigned int nf_hdr$l_uptime; /* Current time in msecs since router booted. */ unsigned int nf_hdr$l_secs; /* Current seconds since 0000 UTC 1970 */ unsigned int nf_hdr$l_nsecs; /* Residual nanoseconds since 0000 UTC 1970 */ } ; #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _nf_hdrv5 { unsigned short int nf_hdr$w_version; /* Current version=5 */ unsigned short int nf_hdr$w_count; /* The number of records in PDU. */ unsigned int nf_hdr$l_uptime; /* Current time in msecs since router booted. */ unsigned int nf_hdr$l_secs; /* Current seconds since 0000 UTC 1970 */ unsigned int nf_hdr$l_nsecs; /* Residual nanoseconds since 0000 UTC 1970 */ unsigned int nf_hdr$l_seq; /* Sequence number of total flows seen */ unsigned short int nf_hdr$w_etype; /* ??Type of flow switching engine (RP,VIP,etc.) */ unsigned short int nf_hdr$w_eid; /* ??Slot number of the flow switching engine */ } NF_HDRV5; #else /* __OLD_STARLET */ struct nf_hdrv5 { unsigned short int nf_hdr$w_version; /* Current version=5 */ unsigned short int nf_hdr$w_count; /* The number of records in PDU. */ unsigned int nf_hdr$l_uptime; /* Current time in msecs since router booted. */ unsigned int nf_hdr$l_secs; /* Current seconds since 0000 UTC 1970 */ unsigned int nf_hdr$l_nsecs; /* Residual nanoseconds since 0000 UTC 1970 */ unsigned int nf_hdr$l_seq; /* Sequence number of total flows seen */ unsigned short int nf_hdr$w_etype; /* ??Type of flow switching engine (RP,VIP,etc.) */ unsigned short int nf_hdr$w_eid; /* ??Slot number of the flow switching engine */ } ; #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _nf_hdrv7 { unsigned short int nf_hdr$w_version; /* Current version=7 */ unsigned short int nf_hdr$w_count; /* The number of records in PDU. */ unsigned int nf_hdr$l_uptime; /* Current time in msecs since router booted. */ unsigned int nf_hdr$l_secs; /* Current seconds since 0000 UTC 1970 */ unsigned int nf_hdr$l_nsecs; /* Residual nanoseconds since 0000 UTC 1970 */ unsigned int nf_hdr$l_seq; /* Sequence number of total flows seen */ unsigned int nf_hdr$l_reserved; } NF_HDRV7; #else /* __OLD_STARLET */ struct nf_hdrv7 { unsigned short int nf_hdr$w_version; /* Current version=7 */ unsigned short int nf_hdr$w_count; /* The number of records in PDU. */ unsigned int nf_hdr$l_uptime; /* Current time in msecs since router booted. */ unsigned int nf_hdr$l_secs; /* Current seconds since 0000 UTC 1970 */ unsigned int nf_hdr$l_nsecs; /* Residual nanoseconds since 0000 UTC 1970 */ unsigned int nf_hdr$l_seq; /* Sequence number of total flows seen */ unsigned int nf_hdr$l_reserved; } ; #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _nf_hdrv8 { unsigned short int nf_hdr$w_version; /* Current version=8 */ unsigned short int nf_hdr$w_count; /* The number of records in PDU. */ unsigned int nf_hdr$l_uptime; /* Current time in msecs since router booted. */ unsigned int nf_hdr$l_secs; /* Current seconds since 0000 UTC 1970 */ unsigned int nf_hdr$l_nsecs; /* Residual nanoseconds since 0000 UTC 1970 */ unsigned int nf_hdr$l_seq; /* Sequence number of total flows seen */ unsigned char nf_hdr$b_etype; /* Type of flow switching engine (RP,VIP,etc.) */ unsigned char nf_hdr$b_eid; /* Slot number of the flow switching engine */ unsigned char nf_hdr$b_agg; /* Aggregation method being used */ unsigned char nf_hdr$b_aggver; /* Version of the aggregation export=2 */ } NF_HDRV8; #else /* __OLD_STARLET */ struct nf_hdrv8 { unsigned short int nf_hdr$w_version; /* Current version=8 */ unsigned short int nf_hdr$w_count; /* The number of records in PDU. */ unsigned int nf_hdr$l_uptime; /* Current time in msecs since router booted. */ unsigned int nf_hdr$l_secs; /* Current seconds since 0000 UTC 1970 */ unsigned int nf_hdr$l_nsecs; /* Residual nanoseconds since 0000 UTC 1970 */ unsigned int nf_hdr$l_seq; /* Sequence number of total flows seen */ unsigned char nf_hdr$b_etype; /* Type of flow switching engine (RP,VIP,etc.) */ unsigned char nf_hdr$b_eid; /* Slot number of the flow switching engine */ unsigned char nf_hdr$b_agg; /* Aggregation method being used */ unsigned char nf_hdr$b_aggver; /* Version of the aggregation export=2 */ } ; #endif /* #ifdef __NEW_STARLET */ /*++ */ /** */ /** NetFlow Export datagram formats */ /** */ /*-- */ #ifdef __NEW_STARLET typedef struct _nf_pktv1 { unsigned int nf_pkt$l_srcaddr; /* Source IP Address */ unsigned int nf_pkt$l_dstaddr; /* Destination IP Address */ unsigned int nf_pkt$l_nexthop; /* Next hop router's IP Address */ unsigned short int nf_pkt$w_input; /* Input interface index */ unsigned short int nf_pkt$w_output; /* Output interface index */ unsigned int nf_pkt$l_dpkts; /* Packets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_pkt$l_doctets; /* Octets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_pkt$l_first; /* SysUptime at start of flow */ unsigned int nf_pkt$l_last; /* and of last packet of the flow */ unsigned short int nf_pkt$w_srcport; /* TCP/UDP source port number (.e.g, FTP, Telnet, etc.,or equivalent) */ unsigned short int nf_pkt$w_dstport; /* TCP/UDP destination port number (.e.g, FTP, Telnet, etc.,or equivalent) */ unsigned short int nf_pkt$w_pad0; /* pad to word boundary */ unsigned char nf_pkt$b_prot; /* IP protocol, e.g., 6=TCP, 17=UDP, etc... */ unsigned char nf_pkt$b_tos; /* IP Type-of-Service */ unsigned char nf_pkt$b_tcp_flags; /* Cumulative OR of tcp flags */ unsigned char nf_pkt$b_pad1; /* pad to word boundary */ unsigned short int nf_pkt$w_pad2; /* pad to word boundary */ unsigned char nf_pkt$b_reserved [8]; /* reserved for future use */ } NF_PKTV1; #else /* __OLD_STARLET */ struct nf_pktv1 { unsigned int nf_pkt$l_srcaddr; /* Source IP Address */ unsigned int nf_pkt$l_dstaddr; /* Destination IP Address */ unsigned int nf_pkt$l_nexthop; /* Next hop router's IP Address */ unsigned short int nf_pkt$w_input; /* Input interface index */ unsigned short int nf_pkt$w_output; /* Output interface index */ unsigned int nf_pkt$l_dpkts; /* Packets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_pkt$l_doctets; /* Octets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_pkt$l_first; /* SysUptime at start of flow */ unsigned int nf_pkt$l_last; /* and of last packet of the flow */ unsigned short int nf_pkt$w_srcport; /* TCP/UDP source port number (.e.g, FTP, Telnet, etc.,or equivalent) */ unsigned short int nf_pkt$w_dstport; /* TCP/UDP destination port number (.e.g, FTP, Telnet, etc.,or equivalent) */ unsigned short int nf_pkt$w_pad0; /* pad to word boundary */ unsigned char nf_pkt$b_prot; /* IP protocol, e.g., 6=TCP, 17=UDP, etc... */ unsigned char nf_pkt$b_tos; /* IP Type-of-Service */ unsigned char nf_pkt$b_tcp_flags; /* Cumulative OR of tcp flags */ unsigned char nf_pkt$b_pad1; /* pad to word boundary */ unsigned short int nf_pkt$w_pad2; /* pad to word boundary */ unsigned char nf_pkt$b_reserved [8]; /* reserved for future use */ } ; #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _nf_pktv5 { unsigned int nf_pkt$l_srcaddr; /* Source IP Address */ unsigned int nf_pkt$l_dstaddr; /* Destination IP Address */ unsigned int nf_pkt$l_nexthop; /* Next hop router's IP Address */ unsigned short int nf_pkt$w_input; /* Input interface index */ unsigned short int nf_pkt$w_output; /* Output interface index */ unsigned int nf_pkt$l_dpkts; /* Packets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_pkt$l_doctets; /* Octets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_pkt$l_first; /* SysUptime at start of flow */ unsigned int nf_pkt$l_last; /* and of last packet of the flow */ unsigned short int nf_pkt$w_srcport; /* TCP/UDP source port number (.e.g, FTP, Telnet, etc.,or equivalent) */ unsigned short int nf_pkt$w_dstport; /* TCP/UDP destination port number (.e.g, FTP, Telnet, etc.,or equivalent) */ unsigned char nf_pkt$b_pad0; /* pad to word boundary */ unsigned char nf_pkt$b_tcp_flags; /* Cumulative OR of tcp flags */ unsigned char nf_pkt$b_prot; /* IP protocol, e.g., 6=TCP, 17=UDP, etc... */ unsigned char nf_pkt$b_tos; /* IP Type-of-Service */ unsigned short int nf_pkt$w_dst_as; /* dst peer/origin Autonomous System */ unsigned short int nf_pkt$w_src_as; /* source peer/origin Autonomous System */ unsigned char nf_pkt$b_dst_mask; /* destination route's mask bits */ unsigned char nf_pkt$b_src_mask; /* source route's mask bits */ unsigned short int nf_pkt$w_pad1; /* pad to word boundary */ } NF_PKTV5; #else /* __OLD_STARLET */ struct nf_pktv5 { unsigned int nf_pkt$l_srcaddr; /* Source IP Address */ unsigned int nf_pkt$l_dstaddr; /* Destination IP Address */ unsigned int nf_pkt$l_nexthop; /* Next hop router's IP Address */ unsigned short int nf_pkt$w_input; /* Input interface index */ unsigned short int nf_pkt$w_output; /* Output interface index */ unsigned int nf_pkt$l_dpkts; /* Packets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_pkt$l_doctets; /* Octets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_pkt$l_first; /* SysUptime at start of flow */ unsigned int nf_pkt$l_last; /* and of last packet of the flow */ unsigned short int nf_pkt$w_srcport; /* TCP/UDP source port number (.e.g, FTP, Telnet, etc.,or equivalent) */ unsigned short int nf_pkt$w_dstport; /* TCP/UDP destination port number (.e.g, FTP, Telnet, etc.,or equivalent) */ unsigned char nf_pkt$b_pad0; /* pad to word boundary */ unsigned char nf_pkt$b_tcp_flags; /* Cumulative OR of tcp flags */ unsigned char nf_pkt$b_prot; /* IP protocol, e.g., 6=TCP, 17=UDP, etc... */ unsigned char nf_pkt$b_tos; /* IP Type-of-Service */ unsigned short int nf_pkt$w_dst_as; /* dst peer/origin Autonomous System */ unsigned short int nf_pkt$w_src_as; /* source peer/origin Autonomous System */ unsigned char nf_pkt$b_dst_mask; /* destination route's mask bits */ unsigned char nf_pkt$b_src_mask; /* source route's mask bits */ unsigned short int nf_pkt$w_pad1; /* pad to word boundary */ } ; #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _nf_pktv7 { unsigned int nf_pkt$l_srcaddr; /* Source IP Address */ unsigned int nf_pkt$l_dstaddr; /* Destination IP Address */ unsigned int nf_pkt$l_nexthop; /* Next hop router's IP Address */ unsigned short int nf_pkt$w_input; /* Input interface index */ unsigned short int nf_pkt$w_output; /* Output interface index */ unsigned int nf_pkt$l_dpkts; /* Packets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_pkt$l_doctets; /* Octets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_pkt$l_first; /* SysUptime at start of flow */ unsigned int nf_pkt$l_last; /* and of last packet of the flow */ unsigned short int nf_pkt$w_srcport; /* TCP/UDP source port number (.e.g, FTP, Telnet, etc.,or equivalent) */ unsigned short int nf_pkt$w_dstport; /* TCP/UDP destination port number (.e.g, FTP, Telnet, etc.,or equivalent) */ unsigned short int nf_pkt$w_pad0; /* pad to word boundary */ unsigned char nf_pkt$b_flags; /* Shortcut mode(dest only,src only,full flows */ unsigned char nf_pkt$b_tcp_flags; /* Cumulative OR of tcp flags */ unsigned char nf_pkt$b_prot; /* IP protocol, e.g., 6=TCP, 17=UDP, etc... */ unsigned char nf_pkt$b_tos; /* IP Type-of-Service */ unsigned short int nf_pkt$w_src_as; /* source peer/origin Autonomous System */ unsigned short int nf_pkt$w_dst_as; /* dst peer/origin Autonomous System */ unsigned char nf_pkt$b_src_mask; /* source route's mask bits */ unsigned char nf_pkt$b_dst_mask; /* destination route's mask bits */ unsigned short int nf_pkt$w_pad1; /* pad to word boundary */ unsigned int nf_pkt$l_router_sc; /* Router which is shortcut by switch */ } NF_PKTV7; #else /* __OLD_STARLET */ struct nf_pktv7 { unsigned int nf_pkt$l_srcaddr; /* Source IP Address */ unsigned int nf_pkt$l_dstaddr; /* Destination IP Address */ unsigned int nf_pkt$l_nexthop; /* Next hop router's IP Address */ unsigned short int nf_pkt$w_input; /* Input interface index */ unsigned short int nf_pkt$w_output; /* Output interface index */ unsigned int nf_pkt$l_dpkts; /* Packets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_pkt$l_doctets; /* Octets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_pkt$l_first; /* SysUptime at start of flow */ unsigned int nf_pkt$l_last; /* and of last packet of the flow */ unsigned short int nf_pkt$w_srcport; /* TCP/UDP source port number (.e.g, FTP, Telnet, etc.,or equivalent) */ unsigned short int nf_pkt$w_dstport; /* TCP/UDP destination port number (.e.g, FTP, Telnet, etc.,or equivalent) */ unsigned short int nf_pkt$w_pad0; /* pad to word boundary */ unsigned char nf_pkt$b_flags; /* Shortcut mode(dest only,src only,full flows */ unsigned char nf_pkt$b_tcp_flags; /* Cumulative OR of tcp flags */ unsigned char nf_pkt$b_prot; /* IP protocol, e.g., 6=TCP, 17=UDP, etc... */ unsigned char nf_pkt$b_tos; /* IP Type-of-Service */ unsigned short int nf_pkt$w_src_as; /* source peer/origin Autonomous System */ unsigned short int nf_pkt$w_dst_as; /* dst peer/origin Autonomous System */ unsigned char nf_pkt$b_src_mask; /* source route's mask bits */ unsigned char nf_pkt$b_dst_mask; /* destination route's mask bits */ unsigned short int nf_pkt$w_pad1; /* pad to word boundary */ unsigned int nf_pkt$l_router_sc; /* Router which is shortcut by switch */ } ; #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _nf_asmv8 { /* ASMatrix v8 aggregation scheme */ unsigned int nf_asm$l_flows; /* Number of flows */ unsigned int nf_asm$l_dpkts; /* Packets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_asm$l_doctets; /* Octets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_asm$l_first; /* SysUptime at start of flow */ unsigned int nf_asm$l_last; /* and of last packet of the flow */ unsigned short int nf_asm$w_src_as; /* source peer/origin Autonomous System */ unsigned short int nf_asm$w_dst_as; /* dst peer/origin Autonomous System */ unsigned short int nf_asm$w_input; /* Input interface index */ unsigned short int nf_asm$w_output; /* Output interface index */ } NF_ASMV8; #else /* __OLD_STARLET */ struct nf_asmv8 { /* ASMatrix v8 aggregation scheme */ unsigned int nf_asm$l_flows; /* Number of flows */ unsigned int nf_asm$l_dpkts; /* Packets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_asm$l_doctets; /* Octets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_asm$l_first; /* SysUptime at start of flow */ unsigned int nf_asm$l_last; /* and of last packet of the flow */ unsigned short int nf_asm$w_src_as; /* source peer/origin Autonomous System */ unsigned short int nf_asm$w_dst_as; /* dst peer/origin Autonomous System */ unsigned short int nf_asm$w_input; /* Input interface index */ unsigned short int nf_asm$w_output; /* Output interface index */ } ; #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _nf_ppmv8 { /* ProtocolPortMatrix v8 aggregation scheme */ unsigned int nf_ppm$l_flows; /* Number of flows */ unsigned int nf_ppm$l_dpkts; /* Packets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_ppm$l_doctets; /* Octets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_ppm$l_first; /* SysUptime at start of flow */ unsigned int nf_ppm$l_last; /* and of last packet of the flow */ unsigned char nf_ppm$b_prot; /* IP protocol, e.g., 6=TCP, 17=UDP, etc... */ unsigned char nf_ppm$b_pad; /* pad to word boundary */ unsigned short int nf_ppm$w_reserved; unsigned short int nf_ppm$w_srcport; /* TCP/UDP source port number (.e.g, FTP, Telnet, etc.,or equivalent) */ unsigned short int nf_ppm$w_dstport; /* TCP/UDP destination port number (.e.g, FTP, Telnet, etc.,or equivalent) */ } NF_PPMV8; #else /* __OLD_STARLET */ struct nf_ppmv8 { /* ProtocolPortMatrix v8 aggregation scheme */ unsigned int nf_ppm$l_flows; /* Number of flows */ unsigned int nf_ppm$l_dpkts; /* Packets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_ppm$l_doctets; /* Octets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_ppm$l_first; /* SysUptime at start of flow */ unsigned int nf_ppm$l_last; /* and of last packet of the flow */ unsigned char nf_ppm$b_prot; /* IP protocol, e.g., 6=TCP, 17=UDP, etc... */ unsigned char nf_ppm$b_pad; /* pad to word boundary */ unsigned short int nf_ppm$w_reserved; unsigned short int nf_ppm$w_srcport; /* TCP/UDP source port number (.e.g, FTP, Telnet, etc.,or equivalent) */ unsigned short int nf_ppm$w_dstport; /* TCP/UDP destination port number (.e.g, FTP, Telnet, etc.,or equivalent) */ } ; #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _nf_spmv8 { /* SourcePrefixMatrix v8 aggregation scheme: */ unsigned int nf_spm$l_flows; /* Number of flows */ unsigned int nf_spm$l_dpkts; /* Packets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_spm$l_doctets; /* Octets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_spm$l_first; /* SysUptime at start of flow */ unsigned int nf_spm$l_last; /* and of last packet of the flow */ unsigned int nf_spm$l_src_prefix; /* Source prefix */ unsigned char nf_spm$b_src_mask; /* source route's mask bits */ unsigned char nf_spm$b_pad; /* pad to word boundary */ unsigned short int nf_spm$w_src_as; /* source peer/origin Autonomous System */ unsigned short int nf_spm$w_input; /* Input interface index */ } NF_SPMV8; #else /* __OLD_STARLET */ struct nf_spmv8 { /* SourcePrefixMatrix v8 aggregation scheme: */ unsigned int nf_spm$l_flows; /* Number of flows */ unsigned int nf_spm$l_dpkts; /* Packets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_spm$l_doctets; /* Octets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_spm$l_first; /* SysUptime at start of flow */ unsigned int nf_spm$l_last; /* and of last packet of the flow */ unsigned int nf_spm$l_src_prefix; /* Source prefix */ unsigned char nf_spm$b_src_mask; /* source route's mask bits */ unsigned char nf_spm$b_pad; /* pad to word boundary */ unsigned short int nf_spm$w_src_as; /* source peer/origin Autonomous System */ unsigned short int nf_spm$w_input; /* Input interface index */ } ; #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _nf_dpmv8 { /* DestinationPrefixMatrix v8 aggregation scheme */ unsigned int nf_dpm$l_flows; /* Number of flows */ unsigned int nf_dpm$l_dpkts; /* Packets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_dpm$l_doctets; /* Octets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_dpm$l_first; /* SysUptime at start of flow */ unsigned int nf_dpm$l_last; /* and of last packet of the flow */ unsigned int nf_dpm$l_dst_prefix; /* Destination prefix */ unsigned char nf_dpm$b_dst_mask; /* destination address prefix mask bits */ unsigned char nf_dpm$b_pad; /* pad to word boundary */ unsigned short int nf_dpm$w_dst_as; /* originating AS of destination address */ unsigned short int nf_dpm$w_output; /* Output interface index */ } NF_DPMV8; #else /* __OLD_STARLET */ struct nf_dpmv8 { /* DestinationPrefixMatrix v8 aggregation scheme */ unsigned int nf_dpm$l_flows; /* Number of flows */ unsigned int nf_dpm$l_dpkts; /* Packets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_dpm$l_doctets; /* Octets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_dpm$l_first; /* SysUptime at start of flow */ unsigned int nf_dpm$l_last; /* and of last packet of the flow */ unsigned int nf_dpm$l_dst_prefix; /* Destination prefix */ unsigned char nf_dpm$b_dst_mask; /* destination address prefix mask bits */ unsigned char nf_dpm$b_pad; /* pad to word boundary */ unsigned short int nf_dpm$w_dst_as; /* originating AS of destination address */ unsigned short int nf_dpm$w_output; /* Output interface index */ } ; #endif /* #ifdef __NEW_STARLET */ #ifdef __NEW_STARLET typedef struct _nf_pmv8 { /* PrefixMatrix v8 aggregation scheme */ unsigned int nf_pm$l_flows; /* Number of flows */ unsigned int nf_pm$l_dpkts; /* Packets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_pm$l_doctets; /* Octets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_pm$l_first; /* SysUptime at start of flow */ unsigned int nf_pm$l_last; /* and of last packet of the flow */ unsigned int nf_pm$l_src_prefix; /* Source prefix */ unsigned int nf_pm$l_dst_prefix; /* Destination prefix */ unsigned char nf_pm$b_src_mask; /* source route's mask bits */ unsigned char nf_pm$b_dst_mask; /* destination address prefix mask bits */ unsigned short int nf_pm$w_pad; /* pad to word boundary */ unsigned short int nf_pm$w_src_as; /* source peer/origin Autonomous System */ unsigned short int nf_pm$w_dst_as; /* originating AS of destination address */ unsigned short int nf_pm$w_input; /* Input interface index */ unsigned short int nf_pm$w_output; /* Output interface index */ } NF_PMV8; #else /* __OLD_STARLET */ struct nf_pmv8 { /* PrefixMatrix v8 aggregation scheme */ unsigned int nf_pm$l_flows; /* Number of flows */ unsigned int nf_pm$l_dpkts; /* Packets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_pm$l_doctets; /* Octets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_pm$l_first; /* SysUptime at start of flow */ unsigned int nf_pm$l_last; /* and of last packet of the flow */ unsigned int nf_pm$l_src_prefix; /* Source prefix */ unsigned int nf_pm$l_dst_prefix; /* Destination prefix */ unsigned char nf_pm$b_src_mask; /* source route's mask bits */ unsigned char nf_pm$b_dst_mask; /* destination address prefix mask bits */ unsigned short int nf_pm$w_pad; /* pad to word boundary */ unsigned short int nf_pm$w_src_as; /* source peer/origin Autonomous System */ unsigned short int nf_pm$w_dst_as; /* originating AS of destination address */ unsigned short int nf_pm$w_input; /* Input interface index */ unsigned short int nf_pm$w_output; /* Output interface index */ } ; #endif /* #ifdef __NEW_STARLET */ /*++ */ /** */ /** NetFlow Export file record formats */ /** */ /*-- */ #ifdef __NEW_STARLET typedef struct _nf_recv5 { unsigned __int64 nf_rec$q_timestamp; /* A record time stamp */ char nf_rec$t_sysip [15]; /* From where packet was originated, NBO */ char nf_rec$t_srcaddr [15]; /* Source IP Address */ char nf_rec$t_dstaddr [15]; /* Destination IP Address */ char nf_rec$t_nexthop [15]; /* Next hop router's IP Address */ unsigned short int nf_rec$w_input; /* Input interface index */ unsigned short int nf_rec$w_output; /* Output interface index */ unsigned int nf_rec$l_dpkts; /* Packets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_rec$l_doctets; /* Octets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_rec$l_first; /* SysUptime at start of flow */ unsigned int nf_rec$l_last; /* and of last packet of the flow */ unsigned short int nf_rec$w_srcport; /* TCP/UDP source port number (.e.g, FTP, Telnet, etc.,or equivalent) */ unsigned short int nf_rec$w_dstport; /* TCP/UDP destination port number (.e.g, FTP, Telnet, etc.,or equivalent) */ unsigned char nf_rec$b_tcp_flags; /* Cumulative OR of tcp flags */ unsigned char nf_rec$b_prot; /* IP protocol, e.g., 6=TCP, 17=UDP, etc... */ unsigned char nf_rec$b_tos; /* IP Type-of-Service */ unsigned short int nf_rec$w_dst_as; /* dst peer/origin Autonomous System */ unsigned short int nf_rec$w_src_as; /* source peer/origin Autonomous System */ unsigned char nf_rec$b_dst_mask; /* destination route's mask bits */ unsigned char nf_rec$b_src_mask; /* source route's mask bits */ } NF_RECV5; #else /* __OLD_STARLET */ struct nf_recv5 { unsigned int nf_rec$q_timestamp [2]; /* A record time stamp */ char nf_rec$t_sysip [15]; /* From where packet was originated, NBO */ char nf_rec$t_srcaddr [15]; /* Source IP Address */ char nf_rec$t_dstaddr [15]; /* Destination IP Address */ char nf_rec$t_nexthop [15]; /* Next hop router's IP Address */ unsigned short int nf_rec$w_input; /* Input interface index */ unsigned short int nf_rec$w_output; /* Output interface index */ unsigned int nf_rec$l_dpkts; /* Packets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_rec$l_doctets; /* Octets sent in Duration (milliseconds between 1st & last packet in */ /* this flow) */ unsigned int nf_rec$l_first; /* SysUptime at start of flow */ unsigned int nf_rec$l_last; /* and of last packet of the flow */ unsigned short int nf_rec$w_srcport; /* TCP/UDP source port number (.e.g, FTP, Telnet, etc.,or equivalent) */ unsigned short int nf_rec$w_dstport; /* TCP/UDP destination port number (.e.g, FTP, Telnet, etc.,or equivalent) */ unsigned char nf_rec$b_tcp_flags; /* Cumulative OR of tcp flags */ unsigned char nf_rec$b_prot; /* IP protocol, e.g., 6=TCP, 17=UDP, etc... */ unsigned char nf_rec$b_tos; /* IP Type-of-Service */ unsigned short int nf_rec$w_dst_as; /* dst peer/origin Autonomous System */ unsigned short int nf_rec$w_src_as; /* source peer/origin Autonomous System */ unsigned char nf_rec$b_dst_mask; /* destination route's mask bits */ unsigned char nf_rec$b_src_mask; /* source route's mask bits */ } ; #endif /* #ifdef __NEW_STARLET */ #pragma __member_alignment __restore #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __restore /* Restore the previously-defined required ptr size */ #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __NETFLOWDEF_LOADED */