3. Data Structures
Here are the data structures with brief descriptions:
- doca_dpi_config_t
- DPI init configuration
- doca_dpi_parsing_info
- L2-L4 flow information
- doca_dpi_result
- Dequeue result
- doca_dpi_sig_data
- Extra signature data
- doca_dpi_sig_info
- Signature info
- doca_dpi_stat_info
- DPI statistics
- doca_netflow_default_record
- Flow record, represent a flow at specific moment, usually after a flow end or after some timeout. Each one is a data record that will appear in the collector. This template is based on V5 fields with additional V9 fields
- doca_netflow_flowset_field
- One field in netflow template, please look at doca_netflow_types for type macros
- doca_netflow_template
- Template for the records. struct record_exmaple { uint32_t src_addr_V4; uint32_t dst_addr_V4; } struct doca_netflow_flowset_field fields[] = { {.type = DOCA_NETFLOW_IPV4_SRC_ADDR, .length = DOCA_NETFLOW_IPV4_SRC_ADDR_DEFAULT_LENGTH}, {.type = DOCA_NETFLOW_IPV4_DST_ADDR, .length = DOCA_NETFLOW_IPV4_DST_ADDR_DEFAULT_LENGTH} }; struct doca_netflow_template template = { .field_count = 2; .fields = fields; };
[ Deep packet inspection ]
Public Variables
- uint32_t max_packets_per_queue
- uint32_t max_sig_match_len
- uint16_t nb_queues
Variables
- uint32_t doca_dpi_config_t::max_packets_per_queue [inherited]
Number of packets concurrently processed by the DPI engine.
- uint32_t doca_dpi_config_t::max_sig_match_len [inherited]
The minimum required overlap between two packets for regex match
- uint16_t doca_dpi_config_t::nb_queues [inherited]
Number of DPI queues
[ Deep packet inspection ]
Public Variables
- uint16_t ethertype
- in_addr ipv4
- in6_addr ipv6
- uint16_t l4_dport
- uint8_t l4_protocol
- uint16_t l4_sport
Variables
- uint16_t doca_dpi_parsing_info::ethertype [inherited]
Ethertype of the packet
- in_addr doca_dpi_parsing_info::ipv4 [inherited]
Ipv4 destination address
- in6_addr doca_dpi_parsing_info::ipv6 [inherited]
Ipv6 destination address
- uint16_t doca_dpi_parsing_info::l4_dport [inherited]
Layer 4 destination port
- uint8_t doca_dpi_parsing_info::l4_protocol [inherited]
Layer 4 protocol
- uint16_t doca_dpi_parsing_info::l4_sport [inherited]
Layer 4 source port
[ Deep packet inspection ]
Public Variables
- struct doca_dpi_sig_info info
- bool matched
- rte_mbuf * pkt
- int status_flags
- void * user_data
Variables
- struct doca_dpi_sig_infodoca_dpi_result::info [inherited]
Signature information
- bool doca_dpi_result::matched [inherited]
Indicates flow was matched
- rte_mbuf * doca_dpi_result::pkt [inherited]
Pkt provided on enqueue
- int doca_dpi_result::status_flags [inherited]
doca_dpi_flow_status flags
- void * doca_dpi_result::user_data [inherited]
User data provided on enqueue
[ Deep packet inspection ]
Public Variables
Variables
- char doca_dpi_sig_data::name[1024] [inherited]
Signature name
- uint32_t doca_dpi_sig_data::sig_id [inherited]
Signature ID as provided in the signature
[ Deep packet inspection ]
Public Variables
- uint32_t sig_id
Variables
- uint32_t doca_dpi_sig_info::sig_id [inherited]
Signature ID as provided in the signature
[ Deep packet inspection ]
Public Variables
- uint32_t nb_http_parser_based
- uint32_t nb_matches
- uint32_t nb_other_l4
- uint32_t nb_other_l7
- uint32_t nb_scanned_pkts
- uint32_t nb_ssl_parser_based
- uint32_t nb_tcp_based
- uint32_t nb_udp_based
Variables
- uint32_t doca_dpi_stat_info::nb_http_parser_based [inherited]
Total number of http signature matches
- uint32_t doca_dpi_stat_info::nb_matches [inherited]
Total number of signature matches
- uint32_t doca_dpi_stat_info::nb_other_l4 [inherited]
Total number of other l5 signature matches
- uint32_t doca_dpi_stat_info::nb_other_l7 [inherited]
Total number of other l7 signature matches
- uint32_t doca_dpi_stat_info::nb_scanned_pkts [inherited]
Total number of scanned packets
- uint32_t doca_dpi_stat_info::nb_ssl_parser_based [inherited]
Total number of ssl signature matches
- uint32_t doca_dpi_stat_info::nb_tcp_based [inherited]
Total number of tco signature matches
- uint32_t doca_dpi_stat_info::nb_udp_based [inherited]
Total number of udp signature matches
[ NetFlow ]
Public Variables
- char application_name[DOCA_NETFLOW_APPLICATION_NAME_DEFAULT_LENGTH]
- uint32_t d_octets
- uint32_t d_pkts
- uint32_t dst_addr_v4
- uint16_t dst_as
- uint8_t dst_mask
- uint16_t dst_port
- uint32_t first
- uint64_t flow_id
- uint16_t input
- uint32_t last
- uint32_t next_hop
- uint16_t output
- uint8_t protocol
- uint32_t src_addr_v4
- uint16_t src_as
- uint8_t src_mask
- uint16_t src_port
- uint8_t tcp_flags
- uint8_t tos
Variables
- char doca_netflow_default_record::application_name[DOCA_NETFLOW_APPLICATION_NAME_DEFAULT_LENGTH] [inherited]
Name associated with a classification
- uint32_t doca_netflow_default_record::d_octets [inherited]
Octets sent in Duration.
- uint32_t doca_netflow_default_record::d_pkts [inherited]
Packets sent in Duration
- uint32_t doca_netflow_default_record::dst_addr_v4 [inherited]
Destination IP Address
- uint16_t doca_netflow_default_record::dst_as [inherited]
originating AS of destination address
- uint8_t doca_netflow_default_record::dst_mask [inherited]
destination address prefix mask bits
- uint16_t doca_netflow_default_record::dst_port [inherited]
TCP/UDP destination port number or equivalent
- uint32_t doca_netflow_default_record::first [inherited]
SysUptime at start of flow
- uint64_t doca_netflow_default_record::flow_id [inherited]
This identifies a transaction within a connection
- uint16_t doca_netflow_default_record::input [inherited]
Input interface index
- uint32_t doca_netflow_default_record::last [inherited]
and of last packet of flow
- uint32_t doca_netflow_default_record::next_hop [inherited]
Next hop router's IP Address
- uint16_t doca_netflow_default_record::output [inherited]
Output interface index
- uint8_t doca_netflow_default_record::protocol [inherited]
IP protocol type (for example, TCP = 6; UDP = 17)
- uint32_t doca_netflow_default_record::src_addr_v4 [inherited]
Source IP Address
- uint16_t doca_netflow_default_record::src_as [inherited]
originating AS of source address
- uint8_t doca_netflow_default_record::src_mask [inherited]
source address prefix mask bits
- uint16_t doca_netflow_default_record::src_port [inherited]
TCP/UDP source port number or equivalent
- uint8_t doca_netflow_default_record::tcp_flags [inherited]
Cumulative OR of tcp flags
- uint8_t doca_netflow_default_record::tos [inherited]
IP Type-of-Service
[ NetFlow ]
Public Variables
Variables
- int doca_netflow_flowset_field::length [inherited]
field len in bytes (see link) - will be converted to uint16
- int doca_netflow_flowset_field::type [inherited]
field number id (see link) - will be converted to uint16
[ NetFlow ]
Public Variables
Variables
- int doca_netflow_template::field_count [inherited]
number of fields in 'fields' array - will be converted to uint16
- doca_netflow_flowset_field * doca_netflow_template::fields [inherited]
array of field info