ROFL-pipeline  v0.6.0dev
Data Structures | Typedefs | Functions
packet_matches.h File Reference

Utils to dump the "packet header values". More...

#include <inttypes.h>
#include <string.h>
#include "rofl.h"
#include "ternary_fields.h"
#include "../openflow/openflow1x/pipeline/of1x_utils.h"

Go to the source code of this file.

Data Structures

struct  packet_matches
 

Typedefs

typedef struct packet_matches packet_matches_t
 

Functions

ROFL_BEGIN_DECLS void dump_packet_matches (struct datapacket *const pkt, bool raw_nbo)
 Dump the values of packet (header values) More...
 
void fill_packet_matches (struct datapacket *const pkt, packet_matches_t *pkt_matches)
 Fill in packet_matches (for PKT_INs) More...
 
static uint32_t packet_matches_get_size_bytes (packet_matches_t *const pkt_matches)
 Get the packet match PACKET_LENGTH value in HOST BYTE ORDER. More...
 
static uint32_t packet_matches_get_port_in_value (packet_matches_t *const pkt_matches)
 Get the packet match PORT_IN value in HOST BYTE ORDER. More...
 
static uint32_t packet_matches_get_phy_port_in_value (packet_matches_t *const pkt_matches)
 Get the packet match PHY_PORT_IN value in HOST BYTE ORDER. More...
 
static uint64_t packet_matches_get_metadata_value (packet_matches_t *const pkt_matches)
 Get the packet match METADATA value in HOST BYTE ORDER. More...
 
static uint64_t packet_matches_get_eth_dst_value (packet_matches_t *const pkt_matches)
 Get the packet match ETH_DST value in HOST BYTE ORDER. More...
 
static uint64_t packet_matches_get_eth_src_value (packet_matches_t *const pkt_matches)
 Get the packet match ETH_SRC value in HOST BYTE ORDER. More...
 
static uint16_t packet_matches_get_eth_type_value (packet_matches_t *const pkt_matches)
 Get the packet match ETH_TYPE value in HOST BYTE ORDER. More...
 
static bool packet_matches_has_vlan (packet_matches_t *const pkt_matches)
 Get flag has vlan. More...
 
static uint16_t packet_matches_get_vlan_vid_value (packet_matches_t *const pkt_matches)
 Get the packet match VLAN_VID value in HOST BYTE ORDER according to 1.2 semantics (13th bit is a flag) More...
 
static uint8_t packet_matches_get_vlan_pcp_value (packet_matches_t *const pkt_matches)
 Get the packet match VLAN_PCP value in HOST BYTE ORDER. More...
 
static uint32_t packet_matches_get_mpls_label_value (packet_matches_t *const pkt_matches)
 Get the packet match MPLS_LABEL value in HOST BYTE ORDER. More...
 
static uint8_t packet_matches_get_mpls_tc_value (packet_matches_t *const pkt_matches)
 Get the packet match MPLS_TC value in HOST BYTE ORDER. More...
 
static bool packet_matches_get_mpls_bos_value (packet_matches_t *const pkt_matches)
 Get the packet match MPLS_BOS value in HOST BYTE ORDER. More...
 
static uint16_t packet_matches_get_arp_opcode_value (packet_matches_t *const pkt_matches)
 Get the packet match ARP_OPCODE value in HOST BYTE ORDER. More...
 
static uint64_t packet_matches_get_arp_tha_value (packet_matches_t *const pkt_matches)
 Get the packet match ARP_THA value in HOST BYTE ORDER. More...
 
static uint64_t packet_matches_get_arp_sha_value (packet_matches_t *const pkt_matches)
 Get the packet match ARP_SHA value in HOST BYTE ORDER. More...
 
static uint32_t packet_matches_get_arp_tpa_value (packet_matches_t *const pkt_matches)
 Get the packet match ARP_TPA value in HOST BYTE ORDER. More...
 
static uint32_t packet_matches_get_arp_spa_value (packet_matches_t *const pkt_matches)
 Get the packet match ARP_SPA value in HOST BYTE ORDER. More...
 
static uint8_t packet_matches_get_ip_proto_value (packet_matches_t *const pkt_matches)
 Get the packet match IP_PROTO value in HOST BYTE ORDER. More...
 
static uint8_t packet_matches_get_ip_ecn_value (packet_matches_t *const pkt_matches)
 Get the packet match IPC_ECN value in HOST BYTE ORDER. More...
 
static uint8_t packet_matches_get_ip_dscp_value (packet_matches_t *const pkt_matches)
 Get the packet match IP_DSCP value in HOST BYTE ORDER. More...
 
static uint32_t packet_matches_get_ipv4_src_value (packet_matches_t *const pkt_matches)
 Get the packet match IP4_SRC value in HOST BYTE ORDER. More...
 
static uint32_t packet_matches_get_ipv4_dst_value (packet_matches_t *const pkt_matches)
 Get the packet match IP4_DST value in HOST BYTE ORDER. More...
 
static uint16_t packet_matches_get_tcp_src_value (packet_matches_t *const pkt_matches)
 Get the packet match TCP_SRC value in HOST BYTE ORDER. More...
 
static uint16_t packet_matches_get_tcp_dst_value (packet_matches_t *const pkt_matches)
 Get the packet match TCP_DST value in HOST BYTE ORDER. More...
 
static uint16_t packet_matches_get_udp_src_value (packet_matches_t *const pkt_matches)
 Get the packet match UDP_SRC value in HOST BYTE ORDER. More...
 
static uint16_t packet_matches_get_udp_dst_value (packet_matches_t *const pkt_matches)
 Get the packet match UDP_DST value in HOST BYTE ORDER. More...
 
static uint16_t packet_matches_get_sctp_src_value (packet_matches_t *const pkt_matches)
 Get the packet match SCTP_SRC value in HOST BYTE ORDER. More...
 
static uint16_t packet_matches_get_sctp_dst_value (packet_matches_t *const pkt_matches)
 Get the packet match SCTP_DST value in HOST BYTE ORDER. More...
 
static uint8_t packet_matches_get_icmpv4_type_value (packet_matches_t *const pkt_matches)
 Get the packet match ICMPv4_TYPE value in HOST BYTE ORDER. More...
 
static uint8_t packet_matches_get_icmpv4_code_value (packet_matches_t *const pkt_matches)
 Get the packet match ICMPv4_CODE value in HOST BYTE ORDER. More...
 
static uint128__t packet_matches_get_ipv6_src_value (packet_matches_t *const pkt_matches)
 Get the packet match IP6_SRC value in HOST BYTE ORDER. More...
 
static uint128__t packet_matches_get_ipv6_dst_value (packet_matches_t *const pkt_matches)
 Get the packet match IP6_DST value in HOST BYTE ORDER. More...
 
static uint64_t packet_matches_get_ipv6_flabel_value (packet_matches_t *const pkt_matches)
 Get the packet match IP6_FLABEL value in HOST BYTE ORDER. More...
 
static uint128__t packet_matches_get_ipv6_nd_target_value (packet_matches_t *const pkt_matches)
 Get the packet match IP6_ND_TARGET value in HOST BYTE ORDER. More...
 
static uint64_t packet_matches_get_ipv6_nd_sll_value (packet_matches_t *const pkt_matches)
 Get the packet match IP6_ND_SLL value in HOST BYTE ORDER. More...
 
static uint64_t packet_matches_get_ipv6_nd_tll_value (packet_matches_t *const pkt_matches)
 Get the packet match IP6_ND_TLL value in HOST BYTE ORDER. More...
 
static uint16_t packet_matches_get_ipv6_exthdr_value (packet_matches_t *const pkt_matches)
 Get the packet match IP6_EXTHDR value in HOST BYTE ORDER. More...
 
static uint8_t packet_matches_get_icmpv6_type_value (packet_matches_t *const pkt_matches)
 Get the packet match ICMPV6_TYPE value in HOST BYTE ORDER. More...
 
static uint8_t packet_matches_get_icmpv6_code_value (packet_matches_t *const pkt_matches)
 Get the packet match ICMPV6_CODE value in HOST BYTE ORDER. More...
 
static uint32_t packet_matches_get_pbb_isid_value (packet_matches_t *const pkt_matches)
 
static uint64_t packet_matches_get_tunnel_id_value (packet_matches_t *const pkt_matches)
 Get the packet match TUNNEL_ID value in HOST BYTE ORDER. More...
 
static uint8_t packet_matches_get_pppoe_code_value (packet_matches_t *const pkt_matches)
 Get the packet match PPPOE_CODE value in HOST BYTE ORDER. More...
 
static uint8_t packet_matches_get_pppoe_type_value (packet_matches_t *const pkt_matches)
 Get the packet match PPPOE_TYPE value in HOST BYTE ORDER. More...
 
static uint16_t packet_matches_get_pppoe_sid_value (packet_matches_t *const pkt_matches)
 Get the packet match PPPOE_SESSION value in HOST BYTE ORDER. More...
 
static uint16_t packet_matches_get_ppp_proto_value (packet_matches_t *const pkt_matches)
 Get the packet match PPP_PROTO value in HOST BYTE ORDER. More...
 
static uint8_t packet_matches_get_gtp_msg_type_value (packet_matches_t *const pkt_matches)
 Get the packet match PPP_PROTO value in HOST BYTE ORDER. More...
 
static uint32_t packet_matches_get_gtp_teid_value (packet_matches_t *const pkt_matches)
 Get the packet match PPP_PROTO value in HOST BYTE ORDER. More...
 
static uint8_t packet_matches_get_capwap_wbid_value (packet_matches_t *const pkt_matches)
 Get the packet match CAPWAP_WBID value in HOST BYTE ORDER. More...
 
static uint8_t packet_matches_get_capwap_rid_value (packet_matches_t *const pkt_matches)
 Get the packet match CAPWAP_RID value in HOST BYTE ORDER. More...
 
static uint16_t packet_matches_get_capwap_flags_value (packet_matches_t *const pkt_matches)
 Get the packet match CAPWAP_FLAGS value in HOST BYTE ORDER. More...
 
static uint16_t packet_matches_get_wlan_fc_value (packet_matches_t *const pkt_matches)
 Get the packet match WLAN_FC value in HOST BYTE ORDER. More...
 
static uint8_t packet_matches_get_wlan_type_value (packet_matches_t *const pkt_matches)
 Get the packet match WLAN_TYPE value in HOST BYTE ORDER. More...
 
static uint8_t packet_matches_get_wlan_subtype_value (packet_matches_t *const pkt_matches)
 Get the packet match WLAN_SUBTYPE value in HOST BYTE ORDER. More...
 
static uint8_t packet_matches_get_wlan_direction_value (packet_matches_t *const pkt_matches)
 Get the packet match WLAN_DIRECTION value in HOST BYTE ORDER. More...
 
static uint64_t packet_matches_get_wlan_address_1_value (packet_matches_t *const pkt_matches)
 Get the packet match WLAN_ADDRESS_1 value in HOST BYTE ORDER. More...
 
static uint64_t packet_matches_get_wlan_address_2_value (packet_matches_t *const pkt_matches)
 Get the packet match WLAN_ADDRESS_2 value in HOST BYTE ORDER. More...
 
static uint64_t packet_matches_get_wlan_address_3_value (packet_matches_t *const pkt_matches)
 Get the packet match WLAN_ADDRESS_3 value in HOST BYTE ORDER. More...
 
static uint16_t packet_matches_get_gre_version_value (packet_matches_t *const pkt_matches)
 Get the packet match GRE_VERSION value in HOST BYTE ORDER. More...
 
static uint16_t packet_matches_get_gre_prot_type_value (packet_matches_t *const pkt_matches)
 Get the packet match GRE_PROT_TYPE value in HOST BYTE ORDER. More...
 
static uint32_t packet_matches_get_gre_key_value (packet_matches_t *const pkt_matches)
 Get the packet match GRE_KEY value in HOST BYTE ORDER. More...
 

Detailed Description

Utils to dump the "packet header values".

Author
Marc Sune<marc.sune (at) bisdn.de>
Warning
The pipeline uses internally Network Byte Order (NBO) for storing the values. In addition some of the values, for performance reasons, present a special alignment (byte-wise and/or intra-byte). For this reason packet_matches_get_XXX_value(pkt_matches) inline functions are defined to ease the access to these values. It is strongly discouraged to access directly the values outside from rofl-pipeline. Please refer to endianness for more information about the special alignment within the pipeline.

Definition in file packet_matches.h.