ROFL-pipeline  v0.6.0dev
Data Structures | Typedefs | Enumerations | Functions
OpenFlow v1.x (1.0, 1.2 and 1.3.2) data-model core APIs and data structures

OpenFlow v1.x (1.0, 1.2 and 1.3.2) data-model core APIs and data structures used both internally and for data exchanging (State managment API) with the library user. More...

Data Structures

struct  of1x_switch
 OpenFlow-enabled v1.0, 1.2 and 1.3.2 switch abstraction. More...
 
struct  of1x_packet_action
 Packet action abstraction data structure. More...
 
struct  of1x_action_group
 Action group (apply-actions) structure. More...
 
struct  of1x_write_actions_t
 Write actions structure. More...
 
struct  of1x_flow_entry
 OpenFlow v1.0, 1.2 and 1.3.2 flow entry structure. More...
 
struct  of1x_bucket
 Group bucket. More...
 
struct  of1x_bucket_list
 Group bucket list. More...
 
struct  of1x_group
 Group structure definition. More...
 
struct  of1x_stats_single_flow_msg
 Single flow entry stats message. More...
 
struct  of1x_stats_flow_msg
 Linked list containing all the individual flow stats. More...
 
struct  of1x_stats_flow_aggregate_msg
 Aggregated flow stats message. More...
 

Typedefs

typedef struct of1x_switch of1x_switch_t
 OpenFlow-enabled v1.0, 1.2 and 1.3.2 switch abstraction. More...
 
typedef struct of1x_packet_action of1x_packet_action_t
 Packet action abstraction data structure. More...
 
typedef struct of1x_action_group of1x_action_group_t
 Action group (apply-actions) structure. More...
 
typedef enum
of1x_flow_removal_strictness 
of1x_flow_removal_strictness_t
 Flow removal operations strictness. More...
 
typedef enum
of1x_flow_remove_reason 
of1x_flow_remove_reason_t
 Flow remove reasons (enum ofp_flow_removed_reason) More...
 
typedef void of1x_flow_entry_platform_state_t
 Platform dependent opaque state. More...
 
typedef struct of1x_flow_entry of1x_flow_entry_t
 OpenFlow v1.0, 1.2 and 1.3.2 flow entry structure. More...
 
typedef struct of1x_bucket of1x_bucket_t
 Group bucket. More...
 
typedef struct of1x_bucket_list of1x_bucket_list_t
 Group bucket list. More...
 
typedef struct of1x_group of1x_group_t
 Group structure definition. More...
 
typedef enum of1x_group_type of1x_group_type_t
 Group type. More...
 
typedef struct
of1x_stats_single_flow_msg 
of1x_stats_single_flow_msg_t
 Single flow entry stats message. More...
 
typedef struct of1x_stats_flow_msg of1x_stats_flow_msg_t
 Linked list containing all the individual flow stats. More...
 
typedef struct
of1x_stats_flow_aggregate_msg 
of1x_stats_flow_aggregate_msg_t
 Aggregated flow stats message. More...
 
typedef enum rofl_of1x_fm_result rofl_of1x_fm_result_t
 Extended flowmod return codes. More...
 

Enumerations

enum  of1x_packet_in_reason { OF1X_PKT_IN_NO_MATCH = 0, OF1X_PKT_IN_ACTION = 1, OF1X_PKT_IN_INVALID_TTL = 2 }
 Packet-in reason (of12p_packet_in_reason enum) More...
 
enum  of1x_packet_action_type_t {
  OF1X_AT_NO_ACTION = 0, OF1X_AT_COPY_TTL_IN, OF1X_AT_POP_VLAN, OF1X_AT_POP_MPLS,
  OF1X_AT_POP_GTP, OF1X_AT_POP_CAPWAP, OF1X_AT_POP_PPPOE, OF1X_AT_POP_PBB,
  OF1X_AT_POP_WLAN, OF1X_AT_POP_GRE, OF1X_AT_PUSH_GRE, OF1X_AT_PUSH_WLAN,
  OF1X_AT_PUSH_PBB, OF1X_AT_PUSH_PPPOE, OF1X_AT_PUSH_CAPWAP, OF1X_AT_PUSH_GTP,
  OF1X_AT_PUSH_MPLS, OF1X_AT_PUSH_VLAN, OF1X_AT_COPY_TTL_OUT, OF1X_AT_DEC_NW_TTL,
  OF1X_AT_DEC_MPLS_TTL, OF1X_AT_SET_MPLS_TTL, OF1X_AT_SET_NW_TTL, OF1X_AT_SET_QUEUE,
  OF1X_AT_SET_FIELD_ETH_DST, OF1X_AT_SET_FIELD_ETH_SRC, OF1X_AT_SET_FIELD_ETH_TYPE, OF1X_AT_SET_FIELD_MPLS_LABEL,
  OF1X_AT_SET_FIELD_MPLS_TC, OF1X_AT_SET_FIELD_MPLS_BOS, OF1X_AT_SET_FIELD_VLAN_VID, OF1X_AT_SET_FIELD_VLAN_PCP,
  OF1X_AT_SET_FIELD_ARP_OPCODE, OF1X_AT_SET_FIELD_ARP_SHA, OF1X_AT_SET_FIELD_ARP_SPA, OF1X_AT_SET_FIELD_ARP_THA,
  OF1X_AT_SET_FIELD_ARP_TPA, OF1X_AT_SET_FIELD_NW_PROTO, OF1X_AT_SET_FIELD_NW_SRC, OF1X_AT_SET_FIELD_NW_DST,
  OF1X_AT_SET_FIELD_IP_DSCP, OF1X_AT_SET_FIELD_IP_ECN, OF1X_AT_SET_FIELD_IP_PROTO, OF1X_AT_SET_FIELD_IPV4_SRC,
  OF1X_AT_SET_FIELD_IPV4_DST, OF1X_AT_SET_FIELD_IPV6_SRC, OF1X_AT_SET_FIELD_IPV6_DST, OF1X_AT_SET_FIELD_IPV6_FLABEL,
  OF1X_AT_SET_FIELD_IPV6_ND_TARGET, OF1X_AT_SET_FIELD_IPV6_ND_SLL, OF1X_AT_SET_FIELD_IPV6_ND_TLL, OF1X_AT_SET_FIELD_IPV6_EXTHDR,
  OF1X_AT_SET_FIELD_TCP_SRC, OF1X_AT_SET_FIELD_TCP_DST, OF1X_AT_SET_FIELD_UDP_SRC, OF1X_AT_SET_FIELD_UDP_DST,
  OF1X_AT_SET_FIELD_SCTP_SRC, OF1X_AT_SET_FIELD_SCTP_DST, OF1X_AT_SET_FIELD_TP_SRC, OF1X_AT_SET_FIELD_TP_DST,
  OF1X_AT_SET_FIELD_ICMPV4_TYPE, OF1X_AT_SET_FIELD_ICMPV4_CODE, OF1X_AT_SET_FIELD_ICMPV6_TYPE, OF1X_AT_SET_FIELD_ICMPV6_CODE,
  OF1X_AT_SET_FIELD_PBB_ISID, OF1X_AT_SET_FIELD_TUNNEL_ID, OF1X_AT_SET_FIELD_PPPOE_CODE, OF1X_AT_SET_FIELD_PPPOE_TYPE,
  OF1X_AT_SET_FIELD_PPPOE_SID, OF1X_AT_SET_FIELD_PPP_PROT, OF1X_AT_SET_FIELD_GTP_MSG_TYPE, OF1X_AT_SET_FIELD_GTP_TEID,
  OF1X_AT_SET_FIELD_CAPWAP_WBID, OF1X_AT_SET_FIELD_CAPWAP_RID, OF1X_AT_SET_FIELD_CAPWAP_FLAGS, OF1X_AT_SET_FIELD_WLAN_FC,
  OF1X_AT_SET_FIELD_WLAN_TYPE, OF1X_AT_SET_FIELD_WLAN_SUBTYPE, OF1X_AT_SET_FIELD_WLAN_DIRECTION, OF1X_AT_SET_FIELD_WLAN_ADDRESS_1,
  OF1X_AT_SET_FIELD_WLAN_ADDRESS_2, OF1X_AT_SET_FIELD_WLAN_ADDRESS_3, OF1X_AT_SET_FIELD_GRE_VERSION, OF1X_AT_SET_FIELD_GRE_PROT_TYPE,
  OF1X_AT_SET_FIELD_GRE_KEY, OF1X_AT_GROUP, OF1X_AT_EXPERIMENTER, OF1X_AT_OUTPUT
}
 Actions over a packet as per defined in OF10, OF12, OF13. More...
 
enum  of1x_port_numbers {
  OF1X_PORT_MAX = 0xffffff00, OF1X_PORT_IN_PORT = 0xfffffff8, OF1X_PORT_TABLE = 0xfffffff9, OF1X_PORT_NORMAL = 0xfffffffa,
  OF1X_PORT_FLOOD = 0xfffffffb, OF1X_PORT_ALL = 0xfffffffc, OF1X_PORT_CONTROLLER = 0xfffffffd, OF1X_PORT_LOCAL = 0xfffffffe,
  OF1X_PORT_ANY = 0xffffffff
}
 Special port numbers, according to OF1X (of1xp_port_no ) More...
 
enum  of1x_flow_removal_strictness { NOT_STRICT = 0, STRICT }
 Flow removal operations strictness. More...
 
enum  of1x_flow_remove_reason {
  OF1X_FLOW_REMOVE_IDLE_TIMEOUT =0, OF1X_FLOW_REMOVE_HARD_TIMEOUT =1, OF1X_FLOW_REMOVE_DELETE =2, OF1X_FLOW_REMOVE_GROUP_DELETE =3,
  OF1X_FLOW_REMOVE_NO_REASON = 0xFF
}
 Flow remove reasons (enum ofp_flow_removed_reason) More...
 
enum  of1x_group_type { OF1X_GROUP_TYPE_ALL = 0, OF1X_GROUP_TYPE_SELECT = 1, OF1X_GROUP_TYPE_INDIRECT = 2, OF1X_GROUP_TYPE_FF = 3 }
 Group type. More...
 
enum  of1x_instruction_type_t {
  OF1X_IT_NO_INSTRUCTION = 0, OF1X_IT_APPLY_ACTIONS = 1, OF1X_IT_CLEAR_ACTIONS = 2, OF1X_IT_WRITE_ACTIONS = 3,
  OF1X_IT_WRITE_METADATA = 4, OF1X_IT_EXPERIMENTER = 5, OF1X_IT_METER = 6, OF1X_IT_GOTO_TABLE = 7
}
 Instruction type. More...
 
enum  rofl_of1x_fm_result { ROFL_OF1X_FM_SUCCESS = EXIT_SUCCESS, ROFL_OF1X_FM_FAILURE = EXIT_FAILURE, ROFL_OF1X_FM_OVERLAP }
 Extended flowmod return codes. More...
 

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 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...
 
ROFL_BEGIN_DECLS of1x_switch_tof1x_init_switch (const char *name, of_version_t version, uint64_t dpid, unsigned int num_of_tables, enum of1x_matching_algorithm_available *ma_list)
 Creates an OpenFlow v1.0, 1.2 and 1.3.2 forwarding instance. More...
 
void of1x_dump_switch (of1x_switch_t *sw, bool nbo)
 Dumps the OpenFlow v1.0, 1.2 and 1.3.2 forwarding instance, for debugging purposes. More...
 
void of1x_full_dump_switch (of1x_switch_t *sw, bool nbo)
 Dumps the OpenFlow v1.0, 1.2 and 1.3.2 forwarding instance, for debugging purposes. More...
 
ROFL_BEGIN_DECLS
of1x_packet_action_t
of1x_init_packet_action (of1x_packet_action_type_t type, wrap_uint_t field, uint16_t output_send_len)
 Initializes a packet action (OF action) More...
 
void of1x_destroy_packet_action (of1x_packet_action_t *action)
 Destroys packet action (OF action) More...
 
static uint8_t of1x_get_packet_action_field8 (const of1x_packet_action_t *action)
 Retrieve the action field for 8 bit values (or less) in HOST BYTE ORDER. More...
 
static uint16_t of1x_get_packet_action_field16 (const of1x_packet_action_t *action)
 Retrieve the action field for 16 bit values (or less) in HOST BYTE ORDER. More...
 
static uint32_t of1x_get_packet_action_field32 (const of1x_packet_action_t *action)
 Retrieve the action field for 32 bit values (or less) in HOST BYTE ORDER. More...
 
static uint64_t of1x_get_packet_action_field64 (const of1x_packet_action_t *action)
 Retrieve the action field for 64 bit values (or less) in HOST BYTE ORDER. More...
 
static uint128__t of1x_get_packet_action_field128 (const of1x_packet_action_t *action)
 Retrieve the action field for 128 bit values (or less) in HOST BYTE ORDER. More...
 
of1x_action_group_tof1x_init_action_group (of1x_packet_action_t *actions)
 Create an action group (apply actions) More...
 
void of1x_destroy_action_group (of1x_action_group_t *group)
 Destroy an action group. More...
 
void of1x_push_packet_action_to_group (of1x_action_group_t *group, of1x_packet_action_t *action)
 Push an action to the group. More...
 
of1x_write_actions_tof1x_init_write_actions (void)
 Create a write actions group. More...
 
rofl_result_t of1x_set_packet_action_on_write_actions (of1x_write_actions_t *write_actions, of1x_packet_action_t *action)
 Set (copy) the action to the write actions. More...
 
ROFL_BEGIN_DECLS
of1x_flow_entry_t
of1x_init_flow_entry (bool notify_removal)
 Create an empty flow entry. More...
 
rofl_result_t of1x_destroy_flow_entry (of1x_flow_entry_t *entry)
 Destroy the flow entry, including stats, instructions and actions. More...
 
rofl_result_t of1x_add_match_to_entry (of1x_flow_entry_t *entry, of1x_match_t *match)
 Adds a match to the flow_entry. More...
 
void of1x_dump_flow_entry (of1x_flow_entry_t *entry, bool raw_nbo)
 Dumps the flow entry for debugging purposes. More...
 
rofl_of1x_fm_result_t of1x_add_flow_entry_table (struct of1x_pipeline *const pipeline, const unsigned int table_id, of1x_flow_entry_t **const entry, bool check_overlap, bool reset_counts)
 Add a flow_entry to a table. More...
 
rofl_result_t of1x_modify_flow_entry_table (struct of1x_pipeline *const pipeline, const unsigned int table_id, of1x_flow_entry_t **const entry, const enum of1x_flow_removal_strictness strict, bool reset_counts)
 Modify flow_entry(s) in the table. More...
 
rofl_result_t of1x_remove_flow_entry_table (struct of1x_pipeline *const pipeline, const unsigned int table_id, of1x_flow_entry_t *entry, const enum of1x_flow_removal_strictness strict, uint32_t out_port, uint32_t out_group)
 Removes a flow_entry from the table. More...
 
ROFL_BEGIN_DECLS
of1x_group_table_t
of1x_init_group_table (struct of1x_pipeline *pipeline)
 Initializes the group table. More...
 
void of1x_destroy_group_table (of1x_group_table_t *gt)
 Destroys the group table. More...
 
rofl_of1x_gm_result_t of1x_group_add (of1x_group_table_t *gt, of1x_group_type_t type, uint32_t id, of1x_bucket_list_t **buckets)
 Adds a group to the table. More...
 
rofl_of1x_gm_result_t of1x_group_modify (of1x_group_table_t *gt, of1x_group_type_t type, uint32_t id, of1x_bucket_list_t **buckets)
 Modifies a group on the table. More...
 
rofl_of1x_gm_result_t of1x_group_delete (struct of1x_pipeline *pipeline, of1x_group_table_t *gt, uint32_t id)
 Deletes a group of the table. More...
 
of1x_bucket_list_tof1x_init_bucket_list (void)
 Initializes a list of buckets. More...
 
void of1x_destroy_bucket_list (of1x_bucket_list_t *bc_list)
 Destroys the bucket list. More...
 
of1x_bucket_tof1x_init_bucket (uint16_t weight, uint32_t port, uint32_t group, of1x_action_group_t *actions)
 Initializes a bucket. More...
 
rofl_result_t of1x_insert_bucket_in_list (of1x_bucket_list_t *bu_list, of1x_bucket_t *bucket)
 Inserts an initialized bucket in the list of buckets. More...
 
void of1x_add_instruction_to_group (of1x_instruction_group_t *group, of1x_instruction_type_t type, of1x_action_group_t *apply_actions, of1x_write_actions_t *write_actions, of1x_write_metadata_t *write_metadata, unsigned int go_to_table)
 Adds an instruction of the group. More...
 
void of1x_remove_instruction_from_the_group (of1x_instruction_group_t *group, of1x_instruction_type_t type)
 Remove an instruction of the group. More...
 
ROFL_BEGIN_DECLS of1x_match_tof1x_init_port_in_match (uint32_t value)
 Create an PORT_IN match. More...
 
of1x_match_tof1x_init_port_in_phy_match (uint32_t value)
 Create an PHY_PORT_IN match. More...
 
of1x_match_tof1x_init_metadata_match (uint64_t value, uint64_t mask)
 Create an METADATA match. More...
 
of1x_match_tof1x_init_eth_dst_match (uint64_t value, uint64_t mask)
 Create an ETH_DST match. More...
 
of1x_match_tof1x_init_eth_src_match (uint64_t value, uint64_t mask)
 Create an ETH_SRC match. More...
 
of1x_match_tof1x_init_eth_type_match (uint16_t value)
 Create an ETH_TYPE match. More...
 
of1x_match_tof1x_init_vlan_vid_match (uint16_t value, uint16_t mask, enum of1x_vlan_present vlan_present)
 Create an VLAN_VID match according to 1.2 semantics (13th bit is a flag) More...
 
of1x_match_tof1x_init_vlan_pcp_match (uint8_t value)
 Create an VLAN_PCP match. More...
 
of1x_match_tof1x_init_mpls_label_match (uint32_t value)
 Create an MPLS_LABEL match. More...
 
of1x_match_tof1x_init_mpls_tc_match (uint8_t value)
 Create an MPLS_TC match. More...
 
of1x_match_tof1x_init_mpls_bos_match (uint8_t value)
 Create an MPLS_BOS match. More...
 
of1x_match_tof1x_init_arp_opcode_match (uint16_t value)
 Create an ARP_OPCODE match. More...
 
of1x_match_tof1x_init_arp_tha_match (uint64_t value, uint64_t mask)
 Create an ARP_THA match. More...
 
of1x_match_tof1x_init_arp_sha_match (uint64_t value, uint64_t mask)
 Create an ARP_SHA match. More...
 
of1x_match_tof1x_init_arp_tpa_match (uint32_t value, uint32_t mask)
 Create an ARP_TPA match. More...
 
of1x_match_tof1x_init_arp_spa_match (uint32_t value, uint32_t mask)
 Create an ARP_SPA match. More...
 
of1x_match_tof1x_init_pppoe_code_match (uint8_t value)
 Create an PPPOE_CODE match. More...
 
of1x_match_tof1x_init_pppoe_type_match (uint8_t value)
 Create an PPPOE_TYPE match. More...
 
of1x_match_tof1x_init_pppoe_session_match (uint16_t value)
 Create an PPPOE_SESSION match. More...
 
of1x_match_tof1x_init_ppp_prot_match (uint16_t value)
 Create an PPP_PROTO match. More...
 
of1x_match_tof1x_init_gtp_msg_type_match (uint8_t value)
 Create an PPP_PROTO match. More...
 
of1x_match_tof1x_init_gtp_teid_match (uint32_t value, uint32_t mask)
 Create an PPP_PROTO match. More...
 
of1x_match_tof1x_init_capwap_wbid_match (uint8_t value, uint8_t mask)
 Create a CAPWAP_WBID match. More...
 
of1x_match_tof1x_init_capwap_rid_match (uint8_t value, uint8_t mask)
 Create a CAPWAP_RID match. More...
 
of1x_match_tof1x_init_capwap_flags_match (uint16_t value, uint16_t mask)
 Create a CAPWAP_FLAGS match. More...
 
of1x_match_tof1x_init_wlan_fc_match (uint16_t value, uint16_t mask)
 Create a WLAN_FC match. More...
 
of1x_match_tof1x_init_wlan_type_match (uint8_t value, uint8_t mask)
 Create a WLAN_TYPE match. More...
 
of1x_match_tof1x_init_wlan_subtype_match (uint8_t value, uint8_t mask)
 Create a WLAN_SUBTYPE match. More...
 
of1x_match_tof1x_init_wlan_direction_match (uint8_t value, uint8_t mask)
 Create a WLAN_DIRECTION match. More...
 
of1x_match_tof1x_init_wlan_address_1_match (uint64_t value, uint64_t mask)
 Create an WLAN_ADDRESS_1 match. More...
 
of1x_match_tof1x_init_wlan_address_2_match (uint64_t value, uint64_t mask)
 Create an WLAN_ADDRESS_2 match. More...
 
of1x_match_tof1x_init_wlan_address_3_match (uint64_t value, uint64_t mask)
 Create an WLAN_ADDRESS_3 match. More...
 
of1x_match_tof1x_init_nw_proto_match (uint8_t value)
 Create an NW_PROTO match, OF1.0 ONLY! More...
 
of1x_match_tof1x_init_nw_src_match (uint32_t value, uint32_t mask)
 Create an NW_SRC match (IP/ARP), OF1.0 ONLY! More...
 
of1x_match_tof1x_init_nw_dst_match (uint32_t value, uint32_t mask)
 Create an NW_DST match (IP/ARP), OF1.0 ONLY! More...
 
of1x_match_tof1x_init_gre_version_match (uint16_t value)
 Create a GRE_VERSION match. More...
 
of1x_match_tof1x_init_gre_prot_type_match (uint16_t value)
 Create a GRE_PROT_TYPE match. More...
 
of1x_match_tof1x_init_gre_key_match (uint32_t value)
 Create a GRE_KEY match. More...
 
of1x_match_tof1x_init_ip_proto_match (uint8_t value)
 Create an IP_PROTO match. More...
 
of1x_match_tof1x_init_ip_ecn_match (uint8_t value)
 Create an IPC_ECN match. More...
 
of1x_match_tof1x_init_ip_dscp_match (uint8_t value)
 Create an IP_DSCP match. More...
 
of1x_match_tof1x_init_ip4_src_match (uint32_t value, uint32_t mask)
 Create an IP4_SRC match. More...
 
of1x_match_tof1x_init_ip4_dst_match (uint32_t value, uint32_t mask)
 Create an IP4_DST match. More...
 
of1x_match_tof1x_init_tcp_src_match (uint16_t value)
 Create an TCP_SRC match. More...
 
of1x_match_tof1x_init_tcp_dst_match (uint16_t value)
 Create an TCP_DST match. More...
 
of1x_match_tof1x_init_udp_src_match (uint16_t value)
 Create an UDP_SRC match. More...
 
of1x_match_tof1x_init_udp_dst_match (uint16_t value)
 Create an UDP_DST match. More...
 
of1x_match_tof1x_init_sctp_src_match (uint16_t value)
 Create an SCTP_SRC match. More...
 
of1x_match_tof1x_init_sctp_dst_match (uint16_t value)
 Create an SCTP_DST match. More...
 
of1x_match_tof1x_init_tp_src_match (uint16_t value)
 Create an TP_SRC match (TCP/UDP), OF1.0 ONLY! More...
 
of1x_match_tof1x_init_tp_dst_match (uint16_t value)
 Create an TP_DST match (TCP/UDP), OF1.0 ONLY! More...
 
of1x_match_tof1x_init_icmpv4_type_match (uint8_t value)
 Create an ICMPv4_TYPE match. More...
 
of1x_match_tof1x_init_icmpv4_code_match (uint8_t value)
 Create an ICMPv4_CODE match. More...
 
of1x_match_tof1x_init_ip6_src_match (uint128__t value, uint128__t mask)
 Create an IP6_SRC match. More...
 
of1x_match_tof1x_init_ip6_dst_match (uint128__t value, uint128__t mask)
 Create an IP6_DST match. More...
 
of1x_match_tof1x_init_ip6_flabel_match (uint32_t value, uint32_t mask)
 Create an IP6_FLABEL match. More...
 
of1x_match_tof1x_init_ip6_nd_target_match (uint128__t value)
 Create an IP6_ND_TARGET match. More...
 
of1x_match_tof1x_init_ip6_nd_sll_match (uint64_t value)
 Create an IP6_ND_SLL match. More...
 
of1x_match_tof1x_init_ip6_nd_tll_match (uint64_t value)
 Create an IP6_ND_TLL match. More...
 
of1x_match_tof1x_init_ip6_exthdr_match (uint16_t value, uint16_t mask)
 Create an IP6_EXTHDR match. More...
 
of1x_match_tof1x_init_icmpv6_type_match (uint8_t value)
 Create an ICMPV6_TYPE match. More...
 
of1x_match_tof1x_init_icmpv6_code_match (uint8_t value)
 Create an ICMPV6_CODE match. More...
 
of1x_match_tof1x_init_tunnel_id_match (uint64_t value, uint64_t mask)
 Create an TUNNEL_ID match. More...
 
void of1x_destroy_match (of1x_match_t *match)
 Destroys whichever match previously created using of1x_init_match_*() More...
 
static uint8_t of1x_get_match_value8 (const of1x_match_t *match)
 Retrieve the match value for 8 bit values (or less) in HOST BYTE ORDER. More...
 
static uint16_t of1x_get_match_value16 (const of1x_match_t *match)
 Retrieve the match value for 16 bit values (or less) in HOST BYTE ORDER. More...
 
static uint32_t of1x_get_match_value32 (const of1x_match_t *match)
 Retrieve the match value for 32 bit values (or less) in HOST BYTE ORDER. More...
 
static uint64_t of1x_get_match_value64 (const of1x_match_t *match)
 Retrieve the match value for 64 bit values (or less) in HOST BYTE ORDER. More...
 
static uint128__t of1x_get_match_value128 (const of1x_match_t *match)
 Retrieve the match value for 128 bit values (or less) in HOST BYTE ORDER. More...
 
static uint8_t of1x_get_match_mask8 (const of1x_match_t *match)
 Retrieve the match mask value for 8 bit values (or less) in HOST BYTE ORDER. More...
 
static uint16_t of1x_get_match_mask16 (const of1x_match_t *match)
 Retrieve the match mask value for 16 bit values (or less) in HOST BYTE ORDER. More...
 
static uint32_t of1x_get_match_mask32 (const of1x_match_t *match)
 Retrieve the match mask value for 32 bit values (or less) in HOST BYTE ORDER. More...
 
static uint64_t of1x_get_match_mask64 (const of1x_match_t *match)
 Retrieve the match mask value for 64 bit values (or less) in HOST BYTE ORDER. More...
 
static uint128__t of1x_get_match_mask128 (const of1x_match_t *match)
 Retrieve the match mask value for 128 bit values (or less) in HOST BYTE ORDER. More...
 
void of1x_destroy_stats_flow_msg (of1x_stats_flow_msg_t *msg)
 Destroy a flow_stats message. More...
 
void of1x_destroy_stats_flow_aggregate_msg (of1x_stats_flow_aggregate_msg_t *msg)
 Destroy aggreagated flow_stats message. More...
 
void of1x_stats_flow_get_duration (struct of1x_flow_entry *entry, uint32_t *sec, uint32_t *nsec)
 Get the duration of the flow_entry. More...
 
of1x_stats_group_msg_tof1x_get_group_stats (struct of1x_pipeline *pipeline, uint32_t id)
 Retrieves the statistics of a groupReturns a structure with the statistics that needs to be freed by the calling element. More...
 
void of1x_destroy_stats_group_msg (of1x_stats_group_msg_t *msg)
 Frees memory of statistics messageNeeds to be called after retrieving the statistics of the groups. More...
 
of1x_stats_flow_msg_tof1x_get_flow_stats (struct of1x_pipeline *pipeline, uint8_t table_id, uint32_t cookie, uint32_t cookie_mask, uint32_t out_port, uint32_t out_group, struct of1x_match_group *matchs)
 Retrieves individual flow stats. More...
 
of1x_stats_flow_aggregate_msg_tof1x_get_flow_aggregate_stats (struct of1x_pipeline *pipeline, uint8_t table_id, uint32_t cookie, uint32_t cookie_mask, uint32_t out_port, uint32_t out_group, struct of1x_match_group *matchs)
 Retrieves aggregated flow stats. More...
 
void of1x_destroy_group_desc_stats (of1x_stats_group_desc_msg_t *msg)
 Frees the memory for a of1x_stats_group_desc_msg_t structure. More...
 
of1x_stats_group_desc_msg_tof1x_get_group_desc_stats (struct of1x_pipeline *pipeline)
 Retrieves a copy of the group and bucket structure. More...
 

Detailed Description

OpenFlow v1.x (1.0, 1.2 and 1.3.2) data-model core APIs and data structures used both internally and for data exchanging (State managment API) with the library user.

Typedef Documentation

Action group (apply-actions) structure.

Group bucket list.

typedef struct of1x_bucket of1x_bucket_t

Group bucket.

Platform dependent opaque state.

Definition at line 59 of file of1x_flow_entry.h.

OpenFlow v1.0, 1.2 and 1.3.2 flow entry structure.

Flow removal operations strictness.

Flow remove reasons (enum ofp_flow_removed_reason)

typedef struct of1x_group of1x_group_t

Group structure definition.

Group type.

Packet action abstraction data structure.

Aggregated flow stats message.

Linked list containing all the individual flow stats.

Single flow entry stats message.

typedef struct of1x_switch of1x_switch_t

OpenFlow-enabled v1.0, 1.2 and 1.3.2 switch abstraction.

Extended flowmod return codes.

Enumeration Type Documentation

Flow removal operations strictness.

Definition at line 37 of file of1x_flow_entry.h.

Flow remove reasons (enum ofp_flow_removed_reason)

Definition at line 46 of file of1x_flow_entry.h.

Group type.

Definition at line 14 of file of1x_group_types.h.

Instruction type.

From OF12: enum ofp_12_instruction_type.

Warning
values are MODIFIED from OF specification and are reorder!

Definition at line 58 of file of1x_instruction.h.

Actions over a packet as per defined in OF10, OF12, OF13.

Set operations are converted to actions for pipeline simplification. This is comming from of1x_action_type enum.

Warning
values are MODIFIED from OF specification and are reorder! Order matters, as when write actions are executed are done in order.

Definition at line 89 of file of1x_action.h.

Packet-in reason (of12p_packet_in_reason enum)

Definition at line 29 of file of1x_async_events_hooks.h.

Special port numbers, according to OF1X (of1xp_port_no )

Definition at line 244 of file of1x_action.h.

Extended flowmod return codes.

Definition at line 25 of file of1x_utils.h.

Function Documentation

ROFL_BEGIN_DECLS void dump_packet_matches ( struct datapacket *const  pkt,
bool  raw_nbo 
)

Dump the values of packet (header values)

Parameters
raw_nboShow values in the pipeline internal byte order (NBO). Warning: some values are intentionally unaligned.

Definition at line 141 of file packet_matches.c.

void fill_packet_matches ( struct datapacket *const  pkt,
packet_matches_t pkt_matches 
)

Fill in packet_matches (for PKT_INs)

Definition at line 15 of file packet_matches.c.

rofl_of1x_fm_result_t of1x_add_flow_entry_table ( struct of1x_pipeline *const  pipeline,
const unsigned int  table_id,
of1x_flow_entry_t **const  entry,
bool  check_overlap,
bool  reset_counts 
)
inline

Add a flow_entry to a table.

This method will add a flow_entry to the table. The flow entry shall already be initialized via of1x_init_flow_entry, and must already contain the matches, instructions and actions.

When check_overlap is enabled, addition will fail if there is at least one entry which may potentally match the same packet, and this entry has the same priority.

If (and only if) the mod operation is successful (ROFL_OF1X_FM_SUCCESS) the contents of the pointer *entry are set to NULL. Any other reference to the real entry (**entry) shall never be further used.

On success, the library will instantiate the necessary state to handle timers and statistics.

Parameters
pipelineSwitch pipeline
table_idTable index
entryof1x_flow_entry_t previously initialized with of1x_init_flow_entry()
check_overlapDo not install if there are overlapping entries (would match the same packet)
reset_countsIf overlap flag is false, reset the counters on entry overwrite
Warning
On success (ROFL_SUCCESS), the entry pointer (*entry) will be set to NULL. or freed from outside the library.

Definition at line 442 of file of1x_flow_table.c.

void of1x_add_instruction_to_group ( of1x_instruction_group_t group,
of1x_instruction_type_t  type,
of1x_action_group_t apply_actions,
of1x_write_actions_t write_actions,
of1x_write_metadata_t write_metadata,
unsigned int  go_to_table 
)

Adds an instruction of the group.

Parameters
typeInstruction type (OF1X_IT_XX)
apply_actions(For OF1X_IT_APPLY_ACTIONS only)Apply actions group, with actions PREVIOUSLY filled. The group instance cannot be further accessed or freed from outside the library
apply_actions(For OF1X_IT_WRITE_ACTIONS only) Write_actions group, with actions PREVIOUSLY filled. The group instance cannot be further accessed or freed from outside the library.
go_to_table(For OF1X_IT_GO_TO_TABLE only) Index of the table to go.

Definition at line 67 of file of1x_instruction.c.

rofl_result_t of1x_add_match_to_entry ( of1x_flow_entry_t entry,
of1x_match_t match 
)

Adds a match to the flow_entry.

Definition at line 104 of file of1x_flow_entry.c.

void of1x_destroy_action_group ( of1x_action_group_t group)

Destroy an action group.

This also destroys actions contained

Definition at line 480 of file of1x_action.c.

void of1x_destroy_bucket_list ( of1x_bucket_list_t bc_list)

Destroys the bucket list.

Frees memory of a bucket list

Definition at line 497 of file of1x_group_table.c.

rofl_result_t of1x_destroy_flow_entry ( of1x_flow_entry_t entry)

Destroy the flow entry, including stats, instructions and actions.

Definition at line 99 of file of1x_flow_entry.c.

void of1x_destroy_group_desc_stats ( of1x_stats_group_desc_msg_t msg)

Frees the memory for a of1x_stats_group_desc_msg_t structure.

Definition at line 339 of file of1x_statistics.c.

void of1x_destroy_group_table ( of1x_group_table_t gt)

Destroys the group table.

This is done during the reset of the pipeline

Definition at line 145 of file of1x_group_table.c.

void of1x_destroy_match ( of1x_match_t match)

Destroys whichever match previously created using of1x_init_match_*()

Definition at line 1687 of file of1x_match.c.

void of1x_destroy_packet_action ( of1x_packet_action_t action)

Destroys packet action (OF action)

Definition at line 434 of file of1x_action.c.

void of1x_destroy_stats_flow_aggregate_msg ( of1x_stats_flow_aggregate_msg_t msg)

Destroy aggreagated flow_stats message.

Definition at line 65 of file of1x_statistics.c.

void of1x_destroy_stats_flow_msg ( of1x_stats_flow_msg_t msg)

Destroy a flow_stats message.

Definition at line 153 of file of1x_statistics.c.

void of1x_destroy_stats_group_msg ( of1x_stats_group_msg_t msg)

Frees memory of statistics messageNeeds to be called after retrieving the statistics of the groups.

Definition at line 266 of file of1x_statistics.c.

void of1x_dump_flow_entry ( of1x_flow_entry_t entry,
bool  raw_nbo 
)

Dumps the flow entry for debugging purposes.

Parameters
raw_nboShow values in the pipeline internal byte order (NBO). Warning: some values are intentionally unaligned.

Definition at line 289 of file of1x_flow_entry.c.

void of1x_dump_switch ( of1x_switch_t sw,
bool  nbo 
)

Dumps the OpenFlow v1.0, 1.2 and 1.3.2 forwarding instance, for debugging purposes.

Parameters
nboShow values in network byte order (ignored in BIG ENDIAN systems).

Definition at line 245 of file of1x_switch.c.

void of1x_full_dump_switch ( of1x_switch_t sw,
bool  nbo 
)

Dumps the OpenFlow v1.0, 1.2 and 1.3.2 forwarding instance, for debugging purposes.

Parameters
nboShow values in network byte order (ignored in BIG ENDIAN systems).

Definition at line 255 of file of1x_switch.c.

of1x_stats_flow_aggregate_msg_t* of1x_get_flow_aggregate_stats ( struct of1x_pipeline pipeline,
uint8_t  table_id,
uint32_t  cookie,
uint32_t  cookie_mask,
uint32_t  out_port,
uint32_t  out_group,
struct of1x_match_group matchs 
)

Retrieves aggregated flow stats.

Returns
of1x_stats_flow_aggregate_msg_t instance that must be destroyed using of1x_destroy_stats_flow_aggregate_msg()

Definition at line 476 of file of1x_statistics.c.

of1x_stats_flow_msg_t* of1x_get_flow_stats ( struct of1x_pipeline pipeline,
uint8_t  table_id,
uint32_t  cookie,
uint32_t  cookie_mask,
uint32_t  out_port,
uint32_t  out_group,
struct of1x_match_group matchs 
)

Retrieves individual flow stats.

Returns
of1x_stats_flow_msg_t instance that must be destroyed using of1x_destroy_stats_flow_msg()

Definition at line 444 of file of1x_statistics.c.

of1x_stats_group_desc_msg_t* of1x_get_group_desc_stats ( struct of1x_pipeline pipeline)

Retrieves a copy of the group and bucket structure.

Returns
of1x_stats_group_desc_msg_t instance that must be destroyed using of1x_destroy_group_desc_stats()

Definition at line 406 of file of1x_statistics.c.

of1x_stats_group_msg_t* of1x_get_group_stats ( struct of1x_pipeline pipeline,
uint32_t  id 
)

Retrieves the statistics of a groupReturns a structure with the statistics that needs to be freed by the calling element.

Definition at line 304 of file of1x_statistics.c.

static uint128__t of1x_get_match_mask128 ( const of1x_match_t match)
inlinestatic

Retrieve the match mask value for 128 bit values (or less) in HOST BYTE ORDER.

Return values
Thevalue of the mask in host byte order

Definition at line 950 of file of1x_match.h.

static uint16_t of1x_get_match_mask16 ( const of1x_match_t match)
inlinestatic

Retrieve the match mask value for 16 bit values (or less) in HOST BYTE ORDER.

Return values
Thevalue of the mask in host byte order

Definition at line 917 of file of1x_match.h.

static uint32_t of1x_get_match_mask32 ( const of1x_match_t match)
inlinestatic

Retrieve the match mask value for 32 bit values (or less) in HOST BYTE ORDER.

Return values
Thevalue of the mask in host byte order

Definition at line 928 of file of1x_match.h.

static uint64_t of1x_get_match_mask64 ( const of1x_match_t match)
inlinestatic

Retrieve the match mask value for 64 bit values (or less) in HOST BYTE ORDER.

Return values
Thevalue of the mask in host byte order

Definition at line 939 of file of1x_match.h.

static uint8_t of1x_get_match_mask8 ( const of1x_match_t match)
inlinestatic

Retrieve the match mask value for 8 bit values (or less) in HOST BYTE ORDER.

Return values
Thevalue of the mask in host byte order

Definition at line 906 of file of1x_match.h.

static uint128__t of1x_get_match_value128 ( const of1x_match_t match)
inlinestatic

Retrieve the match value for 128 bit values (or less) in HOST BYTE ORDER.

Return values
Thevalue in host byte order

Definition at line 891 of file of1x_match.h.

static uint16_t of1x_get_match_value16 ( const of1x_match_t match)
inlinestatic

Retrieve the match value for 16 bit values (or less) in HOST BYTE ORDER.

Return values
Thevalue in host byte order

Definition at line 752 of file of1x_match.h.

static uint32_t of1x_get_match_value32 ( const of1x_match_t match)
inlinestatic

Retrieve the match value for 32 bit values (or less) in HOST BYTE ORDER.

Return values
Thevalue in host byte order

Definition at line 805 of file of1x_match.h.

static uint64_t of1x_get_match_value64 ( const of1x_match_t match)
inlinestatic

Retrieve the match value for 64 bit values (or less) in HOST BYTE ORDER.

Return values
Thevalue in host byte order

Definition at line 851 of file of1x_match.h.

static uint8_t of1x_get_match_value8 ( const of1x_match_t match)
inlinestatic

Retrieve the match value for 8 bit values (or less) in HOST BYTE ORDER.

Return values
Thevalue in host byte order

Definition at line 700 of file of1x_match.h.

static uint128__t of1x_get_packet_action_field128 ( const of1x_packet_action_t action)
inlinestatic

Retrieve the action field for 128 bit values (or less) in HOST BYTE ORDER.

Return values
Thevalue of the field in host byte order

Definition at line 596 of file of1x_action.h.

static uint16_t of1x_get_packet_action_field16 ( const of1x_packet_action_t action)
inlinestatic

Retrieve the action field for 16 bit values (or less) in HOST BYTE ORDER.

Return values
Thevalue of the field in host byte order

Definition at line 477 of file of1x_action.h.

static uint32_t of1x_get_packet_action_field32 ( const of1x_packet_action_t action)
inlinestatic

Retrieve the action field for 32 bit values (or less) in HOST BYTE ORDER.

Return values
Thevalue of the field in host byte order

Definition at line 524 of file of1x_action.h.

static uint64_t of1x_get_packet_action_field64 ( const of1x_packet_action_t action)
inlinestatic

Retrieve the action field for 64 bit values (or less) in HOST BYTE ORDER.

Return values
Thevalue of the field in host byte order

Definition at line 562 of file of1x_action.h.

static uint8_t of1x_get_packet_action_field8 ( const of1x_packet_action_t action)
inlinestatic

Retrieve the action field for 8 bit values (or less) in HOST BYTE ORDER.

Return values
Thevalue of the field in host byte order

Definition at line 425 of file of1x_action.h.

rofl_of1x_gm_result_t of1x_group_add ( of1x_group_table_t gt,
of1x_group_type_t  type,
uint32_t  id,
of1x_bucket_list_t **  buckets 
)

Adds a group to the table.

If a group with the ID already exists returns error

Definition at line 288 of file of1x_group_table.c.

rofl_of1x_gm_result_t of1x_group_delete ( struct of1x_pipeline pipeline,
of1x_group_table_t gt,
uint32_t  id 
)

Deletes a group of the table.

Deletes the group structure. If id == OF1X_GROUP_ALL, all groups are deleted. If the group id is not found no error is send.

Definition at line 366 of file of1x_group_table.c.

rofl_of1x_gm_result_t of1x_group_modify ( of1x_group_table_t gt,
of1x_group_type_t  type,
uint32_t  id,
of1x_bucket_list_t **  buckets 
)

Modifies a group on the table.

Searches the group with the defined ID and modifies the bucket list and the type

Modifies a group on the table.

Parameters
actionsis a null ended array with the action groups for each bucket

Definition at line 428 of file of1x_group_table.c.

of1x_action_group_t* of1x_init_action_group ( of1x_packet_action_t actions)

Create an action group (apply actions)

Definition at line 440 of file of1x_action.c.

of1x_match_t* of1x_init_arp_opcode_match ( uint16_t  value)

Create an ARP_OPCODE match.

Warning
parameter value must be in Host Byte Order

Definition at line 277 of file of1x_match.c.

of1x_match_t* of1x_init_arp_sha_match ( uint64_t  value,
uint64_t  mask 
)

Create an ARP_SHA match.

Warning
parameters value and mask must be in Host Byte Order

Definition at line 326 of file of1x_match.c.

of1x_match_t* of1x_init_arp_spa_match ( uint32_t  value,
uint32_t  mask 
)

Create an ARP_SPA match.

Warning
parameters value and mask must be in Host Byte Order

Definition at line 378 of file of1x_match.c.

of1x_match_t* of1x_init_arp_tha_match ( uint64_t  value,
uint64_t  mask 
)

Create an ARP_THA match.

Warning
parameters value and mask must be in Host Byte Order

Definition at line 299 of file of1x_match.c.

of1x_match_t* of1x_init_arp_tpa_match ( uint32_t  value,
uint32_t  mask 
)

Create an ARP_TPA match.

Warning
parameters value and mask must be in Host Byte Order

Definition at line 352 of file of1x_match.c.

of1x_bucket_t* of1x_init_bucket ( uint16_t  weight,
uint32_t  port,
uint32_t  group,
of1x_action_group_t actions 
)

Initializes a bucket.

Allocates memory and sets the values for a bucket

Definition at line 481 of file of1x_group_table.c.

of1x_bucket_list_t* of1x_init_bucket_list ( void  )

Initializes a list of buckets.

Allocates memory for a bucket list

Definition at line 456 of file of1x_group_table.c.

of1x_match_t* of1x_init_capwap_flags_match ( uint16_t  value,
uint16_t  mask 
)

Create a CAPWAP_FLAGS match.

Warning
parameters value and mask be in Host Byte Order

Definition at line 1257 of file of1x_match.c.

of1x_match_t* of1x_init_capwap_rid_match ( uint8_t  value,
uint8_t  mask 
)

Create a CAPWAP_RID match.

Warning
parameters value and mask be in Host Byte Order

Definition at line 1235 of file of1x_match.c.

of1x_match_t* of1x_init_capwap_wbid_match ( uint8_t  value,
uint8_t  mask 
)

Create a CAPWAP_WBID match.

Warning
parameter value must be in Host Byte Order

Definition at line 1213 of file of1x_match.c.

of1x_match_t* of1x_init_eth_dst_match ( uint64_t  value,
uint64_t  mask 
)

Create an ETH_DST match.

Warning
parameters value and mask must be in Host Byte Order

Definition at line 83 of file of1x_match.c.

of1x_match_t* of1x_init_eth_src_match ( uint64_t  value,
uint64_t  mask 
)

Create an ETH_SRC match.

Warning
parameters value and mask must be in Host Byte Order

Definition at line 110 of file of1x_match.c.

of1x_match_t* of1x_init_eth_type_match ( uint16_t  value)

Create an ETH_TYPE match.

Warning
parameter value must be in Host Byte Order

Definition at line 136 of file of1x_match.c.

ROFL_BEGIN_DECLS of1x_flow_entry_t* of1x_init_flow_entry ( bool  notify_removal)

Create an empty flow entry.

Definition at line 22 of file of1x_flow_entry.c.

of1x_match_t* of1x_init_gre_key_match ( uint32_t  value)

Create a GRE_KEY match.

Warning
parameters value and mask be in Host Byte Order

Definition at line 1497 of file of1x_match.c.

of1x_match_t* of1x_init_gre_prot_type_match ( uint16_t  value)

Create a GRE_PROT_TYPE match.

Warning
parameters value and mask be in Host Byte Order

Definition at line 1476 of file of1x_match.c.

of1x_match_t* of1x_init_gre_version_match ( uint16_t  value)

Create a GRE_VERSION match.

Warning
parameter value must be in Host Byte Order

Definition at line 1455 of file of1x_match.c.

ROFL_BEGIN_DECLS of1x_group_table_t* of1x_init_group_table ( struct of1x_pipeline pipeline)

Initializes the group table.

This is done during the initialization of the pipeline

Definition at line 108 of file of1x_group_table.c.

of1x_match_t* of1x_init_gtp_msg_type_match ( uint8_t  value)

Create an PPP_PROTO match.

Warning
parameter value must be in Host Byte Order

Definition at line 1168 of file of1x_match.c.

of1x_match_t* of1x_init_gtp_teid_match ( uint32_t  value,
uint32_t  mask 
)

Create an PPP_PROTO match.

Warning
parameters value and mask be in Host Byte Order

Definition at line 1187 of file of1x_match.c.

of1x_match_t* of1x_init_icmpv4_code_match ( uint8_t  value)

Create an ICMPv4_CODE match.

Warning
parameter value must be in Host Byte Order

Definition at line 1008 of file of1x_match.c.

of1x_match_t* of1x_init_icmpv4_type_match ( uint8_t  value)

Create an ICMPv4_TYPE match.

Warning
parameter value must be in Host Byte Order

Definition at line 989 of file of1x_match.c.

of1x_match_t* of1x_init_icmpv6_code_match ( uint8_t  value)

Create an ICMPV6_CODE match.

Warning
parameter value must be in Host Byte Order

Definition at line 784 of file of1x_match.c.

of1x_match_t* of1x_init_icmpv6_type_match ( uint8_t  value)

Create an ICMPV6_TYPE match.

Warning
parameter value must be in Host Byte Order

Definition at line 765 of file of1x_match.c.

of1x_match_t* of1x_init_ip4_dst_match ( uint32_t  value,
uint32_t  mask 
)

Create an IP4_DST match.

Warning
parameters value and mask must be in Host Byte Order

Definition at line 505 of file of1x_match.c.

of1x_match_t* of1x_init_ip4_src_match ( uint32_t  value,
uint32_t  mask 
)

Create an IP4_SRC match.

Warning
parameters value and mask must be in Host Byte Order

Definition at line 479 of file of1x_match.c.

of1x_match_t* of1x_init_ip6_dst_match ( uint128__t  value,
uint128__t  mask 
)

Create an IP6_DST match.

Warning
parameters value and mask must be in Host Byte Order

Definition at line 621 of file of1x_match.c.

of1x_match_t* of1x_init_ip6_exthdr_match ( uint16_t  value,
uint16_t  mask 
)

Create an IP6_EXTHDR match.

Warning
parameters value and mask must be in Host Byte Order

Definition at line 739 of file of1x_match.c.

of1x_match_t* of1x_init_ip6_flabel_match ( uint32_t  value,
uint32_t  mask 
)

Create an IP6_FLABEL match.

Warning
parameter value must be in Host Byte Order

Definition at line 648 of file of1x_match.c.

of1x_match_t* of1x_init_ip6_nd_sll_match ( uint64_t  value)

Create an IP6_ND_SLL match.

Warning
parameter value must be in Host Byte Order

Definition at line 695 of file of1x_match.c.

of1x_match_t* of1x_init_ip6_nd_target_match ( uint128__t  value)

Create an IP6_ND_TARGET match.

Warning
parameter value must be in Host Byte Order

Definition at line 671 of file of1x_match.c.

of1x_match_t* of1x_init_ip6_nd_tll_match ( uint64_t  value)

Create an IP6_ND_TLL match.

Warning
parameter value must be in Host Byte Order

Definition at line 717 of file of1x_match.c.

of1x_match_t* of1x_init_ip6_src_match ( uint128__t  value,
uint128__t  mask 
)

Create an IP6_SRC match.

Warning
parameters value and mask be in Host Byte Order

Definition at line 594 of file of1x_match.c.

of1x_match_t* of1x_init_ip_dscp_match ( uint8_t  value)

Create an IP_DSCP match.

Warning
parameter value must be in Host Byte Order

Definition at line 550 of file of1x_match.c.

of1x_match_t* of1x_init_ip_ecn_match ( uint8_t  value)

Create an IPC_ECN match.

Warning
parameter value must be in Host Byte Order

Definition at line 573 of file of1x_match.c.

of1x_match_t* of1x_init_ip_proto_match ( uint8_t  value)

Create an IP_PROTO match.

Warning
parameter value must be in Host Byte Order

Definition at line 531 of file of1x_match.c.

of1x_match_t* of1x_init_metadata_match ( uint64_t  value,
uint64_t  mask 
)

Create an METADATA match.

Warning
parameters value and mask must be in Host Byte Order

Definition at line 59 of file of1x_match.c.

of1x_match_t* of1x_init_mpls_bos_match ( uint8_t  value)

Create an MPLS_BOS match.

Warning
parameter value must be in Host Byte Order

Definition at line 256 of file of1x_match.c.

of1x_match_t* of1x_init_mpls_label_match ( uint32_t  value)

Create an MPLS_LABEL match.

Warning
parameter value must be in Host Byte Order

Definition at line 212 of file of1x_match.c.

of1x_match_t* of1x_init_mpls_tc_match ( uint8_t  value)

Create an MPLS_TC match.

Warning
parameter value must be in Host Byte Order

Definition at line 234 of file of1x_match.c.

of1x_match_t* of1x_init_nw_dst_match ( uint32_t  value,
uint32_t  mask 
)

Create an NW_DST match (IP/ARP), OF1.0 ONLY!

Warning
parameters value and mask must be in Host Byte Order

Definition at line 451 of file of1x_match.c.

of1x_match_t* of1x_init_nw_proto_match ( uint8_t  value)

Create an NW_PROTO match, OF1.0 ONLY!

Warning
parameter value must be in Host Byte Order

Definition at line 406 of file of1x_match.c.

of1x_match_t* of1x_init_nw_src_match ( uint32_t  value,
uint32_t  mask 
)

Create an NW_SRC match (IP/ARP), OF1.0 ONLY!

Warning
parameters value and mask must be in Host Byte Order

Definition at line 425 of file of1x_match.c.

ROFL_BEGIN_DECLS of1x_packet_action_t* of1x_init_packet_action ( of1x_packet_action_type_t  type,
wrap_uint_t  field,
uint16_t  output_send_len 
)

Initializes a packet action (OF action)

Parameters
fieldunion containing 8, 16, 32, 64 and 128 bit action field (e.g. port_num in output actions, header value in set field actions). Put if not used in this action type.
output_send_lenOptional send to controller send len; leave to 0x0 if not used.
Warning
The value inside the action field must be in Host Byte Order

Definition at line 21 of file of1x_action.c.

ROFL_BEGIN_DECLS of1x_match_t* of1x_init_port_in_match ( uint32_t  value)

Create an PORT_IN match.

Warning
parameter value must be in Host Byte Order

Definition at line 18 of file of1x_match.c.

of1x_match_t* of1x_init_port_in_phy_match ( uint32_t  value)

Create an PHY_PORT_IN match.

Warning
parameter value must be in Host Byte Order

Definition at line 38 of file of1x_match.c.

of1x_match_t* of1x_init_ppp_prot_match ( uint16_t  value)

Create an PPP_PROTO match.

Warning
parameter value must be in Host Byte Order

Definition at line 1145 of file of1x_match.c.

of1x_match_t* of1x_init_pppoe_code_match ( uint8_t  value)

Create an PPPOE_CODE match.

Warning
parameter value must be in Host Byte Order

Definition at line 1085 of file of1x_match.c.

of1x_match_t* of1x_init_pppoe_session_match ( uint16_t  value)

Create an PPPOE_SESSION match.

Warning
parameter value must be in Host Byte Order

Definition at line 1123 of file of1x_match.c.

of1x_match_t* of1x_init_pppoe_type_match ( uint8_t  value)

Create an PPPOE_TYPE match.

Warning
parameter value must be in Host Byte Order

Definition at line 1104 of file of1x_match.c.

of1x_match_t* of1x_init_sctp_dst_match ( uint16_t  value)

Create an SCTP_DST match.

Warning
parameter value must be in Host Byte Order

Definition at line 920 of file of1x_match.c.

of1x_match_t* of1x_init_sctp_src_match ( uint16_t  value)

Create an SCTP_SRC match.

Warning
parameter value must be in Host Byte Order

Definition at line 897 of file of1x_match.c.

ROFL_BEGIN_DECLS of1x_switch_t* of1x_init_switch ( const char *  name,
of_version_t  version,
uint64_t  dpid,
unsigned int  num_of_tables,
enum of1x_matching_algorithm_available *  ma_list 
)

Creates an OpenFlow v1.0, 1.2 and 1.3.2 forwarding instance.

Parameters
versionOF version
num_of_tablesNumber of tables that the v1.2 and 1.3 pipeline should have. This is immutable during the lifetime of the switch.
ma_listAn array with num_of_tables, with the matching algorithm that should be used in each table (0..num_of_tables-1)

Definition at line 12 of file of1x_switch.c.

of1x_match_t* of1x_init_tcp_dst_match ( uint16_t  value)

Create an TCP_DST match.

Warning
parameter value must be in Host Byte Order

Definition at line 828 of file of1x_match.c.

of1x_match_t* of1x_init_tcp_src_match ( uint16_t  value)

Create an TCP_SRC match.

Warning
parameter value must be in Host Byte Order

Definition at line 805 of file of1x_match.c.

of1x_match_t* of1x_init_tp_dst_match ( uint16_t  value)

Create an TP_DST match (TCP/UDP), OF1.0 ONLY!

Warning
parameter value must be in Host Byte Order

Definition at line 966 of file of1x_match.c.

of1x_match_t* of1x_init_tp_src_match ( uint16_t  value)

Create an TP_SRC match (TCP/UDP), OF1.0 ONLY!

Warning
parameter value must be in Host Byte Order

Definition at line 944 of file of1x_match.c.

of1x_match_t* of1x_init_tunnel_id_match ( uint64_t  value,
uint64_t  mask 
)

Create an TUNNEL_ID match.

Warning
parameters value and mask must be in Host Byte Order

Definition at line 1055 of file of1x_match.c.

of1x_match_t* of1x_init_udp_dst_match ( uint16_t  value)

Create an UDP_DST match.

Warning
parameter value must be in Host Byte Order

Definition at line 873 of file of1x_match.c.

of1x_match_t* of1x_init_udp_src_match ( uint16_t  value)

Create an UDP_SRC match.

Warning
parameter value must be in Host Byte Order

Definition at line 851 of file of1x_match.c.

of1x_match_t* of1x_init_vlan_pcp_match ( uint8_t  value)

Create an VLAN_PCP match.

Warning
parameter value must be in Host Byte Order

Definition at line 188 of file of1x_match.c.

of1x_match_t* of1x_init_vlan_vid_match ( uint16_t  value,
uint16_t  mask,
enum of1x_vlan_present  vlan_present 
)

Create an VLAN_VID match according to 1.2 semantics (13th bit is a flag)

Warning
parameters value and mask must be in Host Byte Order

Definition at line 159 of file of1x_match.c.

of1x_match_t* of1x_init_wlan_address_1_match ( uint64_t  value,
uint64_t  mask 
)

Create an WLAN_ADDRESS_1 match.

Warning
parameters value and mask must be in Host Byte Order

Definition at line 1376 of file of1x_match.c.

of1x_match_t* of1x_init_wlan_address_2_match ( uint64_t  value,
uint64_t  mask 
)

Create an WLAN_ADDRESS_2 match.

Warning
parameters value and mask must be in Host Byte Order

Definition at line 1402 of file of1x_match.c.

of1x_match_t* of1x_init_wlan_address_3_match ( uint64_t  value,
uint64_t  mask 
)

Create an WLAN_ADDRESS_3 match.

Warning
parameters value and mask must be in Host Byte Order

Definition at line 1428 of file of1x_match.c.

of1x_match_t* of1x_init_wlan_direction_match ( uint8_t  value,
uint8_t  mask 
)

Create a WLAN_DIRECTION match.

Warning
parameter value must be in Host Byte Order

Definition at line 1354 of file of1x_match.c.

of1x_match_t* of1x_init_wlan_fc_match ( uint16_t  value,
uint16_t  mask 
)

Create a WLAN_FC match.

Warning
parameter value must be in Host Byte Order

Definition at line 1284 of file of1x_match.c.

of1x_match_t* of1x_init_wlan_subtype_match ( uint8_t  value,
uint8_t  mask 
)

Create a WLAN_SUBTYPE match.

Warning
parameter value must be in Host Byte Order

Definition at line 1332 of file of1x_match.c.

of1x_match_t* of1x_init_wlan_type_match ( uint8_t  value,
uint8_t  mask 
)

Create a WLAN_TYPE match.

Warning
parameter value must be in Host Byte Order

Definition at line 1310 of file of1x_match.c.

of1x_write_actions_t* of1x_init_write_actions ( void  )

Create a write actions group.

Definition at line 541 of file of1x_action.c.

rofl_result_t of1x_insert_bucket_in_list ( of1x_bucket_list_t bu_list,
of1x_bucket_t bucket 
)

Inserts an initialized bucket in the list of buckets.

Definition at line 467 of file of1x_group_table.c.

rofl_result_t of1x_modify_flow_entry_table ( struct of1x_pipeline *const  pipeline,
const unsigned int  table_id,
of1x_flow_entry_t **const  entry,
const enum of1x_flow_removal_strictness  strict,
bool  reset_counts 
)
inline

Modify flow_entry(s) in the table.

The modify flow entry will modify any exisiting entry in the table that contains the same matches as the parameter entry. The "entry" parameter is NOT a pointer to an existing table entry.

If (and only if) the mod operation is successful (ROFL_OF1X_FM_SUCCESS) the contents of the pointer *entry are set to NULL. Any other reference to the real entry (**entry) shall never be further used.

On success, the library will modify the necessary state to correctly handle timers and statistics of the modified entries.

Parameters
pipelineSwitch pipeline
table_idTable index
entryof1x_flow_entry_t that will update the existing (entries that have the same matches will be modified). This is NOT the entry TO update.
strictStrictness, check the matches in a strict way
reset_countsIf overlap flag is false, reset the counters on entry overwrite
Warning
On success (ROFL_SUCCESS), the entry pointer (*entry) will be set to NULL. or freed from outside the library.

Definition at line 501 of file of1x_flow_table.c.

void of1x_push_packet_action_to_group ( of1x_action_group_t group,
of1x_packet_action_t action 
)

Push an action to the group.

The action can no longer be used or freed from outside of the library. of1x_destroy_action_group() will destroy it.

Definition at line 495 of file of1x_action.c.

rofl_result_t of1x_remove_flow_entry_table ( struct of1x_pipeline *const  pipeline,
const unsigned int  table_id,
of1x_flow_entry_t entry,
const enum of1x_flow_removal_strictness  strict,
uint32_t  out_port,
uint32_t  out_group 
)
inline

Removes a flow_entry from the table.

The remove flow entry will remove and destroy any exisiting entry in the table that contains the same matches as the parameter entry. The "entry" parameter is NOT a pointer to an existing table entry.

The entry parameter will never be modified by the library, and can be safely used or destroyed after the call of of1x_remove_flow_entry_table()

On success, the timers and statistics of the removed entries are purged.

Parameters
pipelineSwitch pipeline
table_idTable index
entryAll the entries having the same matches as "entry" will be removed. This is NOT the existing table entry to remove.
strictStrictness, check the matches in a strict way
out_portOnly remove the entries that contain out_port in the actions
out_groupOnly remove the entries that contain out_group in the actions

Definition at line 556 of file of1x_flow_table.c.

void of1x_remove_instruction_from_the_group ( of1x_instruction_group_t group,
of1x_instruction_type_t  type 
)

Remove an instruction of the group.

Parameters
groupInstruction group
typeInstruction type (OF1X_IT_XX)

Definition at line 60 of file of1x_instruction.c.

rofl_result_t of1x_set_packet_action_on_write_actions ( of1x_write_actions_t write_actions,
of1x_packet_action_t action 
)

Set (copy) the action to the write actions.

The action pointer can safely used outside the library, and released.

Definition at line 570 of file of1x_action.c.

void of1x_stats_flow_get_duration ( struct of1x_flow_entry entry,
uint32_t *  sec,
uint32_t *  nsec 
)

Get the duration of the flow_entry.

Get the duration of the flow_entry.

Definition at line 194 of file of1x_statistics.c.

static uint16_t packet_matches_get_arp_opcode_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match ARP_OPCODE value in HOST BYTE ORDER.

Definition at line 287 of file packet_matches.h.

static uint64_t packet_matches_get_arp_sha_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match ARP_SHA value in HOST BYTE ORDER.

Definition at line 303 of file packet_matches.h.

static uint32_t packet_matches_get_arp_spa_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match ARP_SPA value in HOST BYTE ORDER.

Definition at line 319 of file packet_matches.h.

static uint64_t packet_matches_get_arp_tha_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match ARP_THA value in HOST BYTE ORDER.

Definition at line 295 of file packet_matches.h.

static uint32_t packet_matches_get_arp_tpa_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match ARP_TPA value in HOST BYTE ORDER.

Definition at line 311 of file packet_matches.h.

static uint16_t packet_matches_get_capwap_flags_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match CAPWAP_FLAGS value in HOST BYTE ORDER.

Definition at line 617 of file packet_matches.h.

static uint8_t packet_matches_get_capwap_rid_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match CAPWAP_RID value in HOST BYTE ORDER.

Definition at line 609 of file packet_matches.h.

static uint8_t packet_matches_get_capwap_wbid_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match CAPWAP_WBID value in HOST BYTE ORDER.

Definition at line 601 of file packet_matches.h.

static uint64_t packet_matches_get_eth_dst_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match ETH_DST value in HOST BYTE ORDER.

Definition at line 208 of file packet_matches.h.

static uint64_t packet_matches_get_eth_src_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match ETH_SRC value in HOST BYTE ORDER.

Definition at line 216 of file packet_matches.h.

static uint16_t packet_matches_get_eth_type_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match ETH_TYPE value in HOST BYTE ORDER.

Definition at line 224 of file packet_matches.h.

static uint32_t packet_matches_get_gre_key_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match GRE_KEY value in HOST BYTE ORDER.

Definition at line 701 of file packet_matches.h.

static uint16_t packet_matches_get_gre_prot_type_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match GRE_PROT_TYPE value in HOST BYTE ORDER.

Definition at line 693 of file packet_matches.h.

static uint16_t packet_matches_get_gre_version_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match GRE_VERSION value in HOST BYTE ORDER.

Definition at line 685 of file packet_matches.h.

static uint8_t packet_matches_get_gtp_msg_type_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match PPP_PROTO value in HOST BYTE ORDER.

Definition at line 583 of file packet_matches.h.

static uint32_t packet_matches_get_gtp_teid_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match PPP_PROTO value in HOST BYTE ORDER.

Definition at line 591 of file packet_matches.h.

static uint8_t packet_matches_get_icmpv4_code_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match ICMPv4_CODE value in HOST BYTE ORDER.

Definition at line 436 of file packet_matches.h.

static uint8_t packet_matches_get_icmpv4_type_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match ICMPv4_TYPE value in HOST BYTE ORDER.

Definition at line 428 of file packet_matches.h.

static uint8_t packet_matches_get_icmpv6_code_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match ICMPV6_CODE value in HOST BYTE ORDER.

Definition at line 518 of file packet_matches.h.

static uint8_t packet_matches_get_icmpv6_type_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match ICMPV6_TYPE value in HOST BYTE ORDER.

Definition at line 510 of file packet_matches.h.

static uint8_t packet_matches_get_ip_dscp_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match IP_DSCP value in HOST BYTE ORDER.

Definition at line 346 of file packet_matches.h.

static uint8_t packet_matches_get_ip_ecn_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match IPC_ECN value in HOST BYTE ORDER.

Definition at line 338 of file packet_matches.h.

static uint8_t packet_matches_get_ip_proto_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match IP_PROTO value in HOST BYTE ORDER.

Definition at line 330 of file packet_matches.h.

static uint32_t packet_matches_get_ipv4_dst_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match IP4_DST value in HOST BYTE ORDER.

Definition at line 364 of file packet_matches.h.

static uint32_t packet_matches_get_ipv4_src_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match IP4_SRC value in HOST BYTE ORDER.

Definition at line 356 of file packet_matches.h.

static uint128__t packet_matches_get_ipv6_dst_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match IP6_DST value in HOST BYTE ORDER.

Definition at line 456 of file packet_matches.h.

static uint16_t packet_matches_get_ipv6_exthdr_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match IP6_EXTHDR value in HOST BYTE ORDER.

Definition at line 500 of file packet_matches.h.

static uint64_t packet_matches_get_ipv6_flabel_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match IP6_FLABEL value in HOST BYTE ORDER.

Definition at line 466 of file packet_matches.h.

static uint64_t packet_matches_get_ipv6_nd_sll_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match IP6_ND_SLL value in HOST BYTE ORDER.

Definition at line 484 of file packet_matches.h.

static uint128__t packet_matches_get_ipv6_nd_target_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match IP6_ND_TARGET value in HOST BYTE ORDER.

Definition at line 474 of file packet_matches.h.

static uint64_t packet_matches_get_ipv6_nd_tll_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match IP6_ND_TLL value in HOST BYTE ORDER.

Definition at line 492 of file packet_matches.h.

static uint128__t packet_matches_get_ipv6_src_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match IP6_SRC value in HOST BYTE ORDER.

Definition at line 446 of file packet_matches.h.

static uint64_t packet_matches_get_metadata_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match METADATA value in HOST BYTE ORDER.

Definition at line 198 of file packet_matches.h.

static bool packet_matches_get_mpls_bos_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match MPLS_BOS value in HOST BYTE ORDER.

Definition at line 277 of file packet_matches.h.

static uint32_t packet_matches_get_mpls_label_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match MPLS_LABEL value in HOST BYTE ORDER.

Definition at line 261 of file packet_matches.h.

static uint8_t packet_matches_get_mpls_tc_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match MPLS_TC value in HOST BYTE ORDER.

Definition at line 269 of file packet_matches.h.

static uint32_t packet_matches_get_phy_port_in_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match PHY_PORT_IN value in HOST BYTE ORDER.

Definition at line 187 of file packet_matches.h.

static uint32_t packet_matches_get_port_in_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match PORT_IN value in HOST BYTE ORDER.

Definition at line 179 of file packet_matches.h.

static uint16_t packet_matches_get_ppp_proto_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match PPP_PROTO value in HOST BYTE ORDER.

Definition at line 573 of file packet_matches.h.

static uint8_t packet_matches_get_pppoe_code_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match PPPOE_CODE value in HOST BYTE ORDER.

Definition at line 547 of file packet_matches.h.

static uint16_t packet_matches_get_pppoe_sid_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match PPPOE_SESSION value in HOST BYTE ORDER.

Definition at line 563 of file packet_matches.h.

static uint8_t packet_matches_get_pppoe_type_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match PPPOE_TYPE value in HOST BYTE ORDER.

Definition at line 555 of file packet_matches.h.

static uint16_t packet_matches_get_sctp_dst_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match SCTP_DST value in HOST BYTE ORDER.

Definition at line 418 of file packet_matches.h.

static uint16_t packet_matches_get_sctp_src_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match SCTP_SRC value in HOST BYTE ORDER.

Definition at line 410 of file packet_matches.h.

static uint32_t packet_matches_get_size_bytes ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match PACKET_LENGTH value in HOST BYTE ORDER.

Definition at line 170 of file packet_matches.h.

static uint16_t packet_matches_get_tcp_dst_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match TCP_DST value in HOST BYTE ORDER.

Definition at line 382 of file packet_matches.h.

static uint16_t packet_matches_get_tcp_src_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match TCP_SRC value in HOST BYTE ORDER.

Definition at line 374 of file packet_matches.h.

static uint64_t packet_matches_get_tunnel_id_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match TUNNEL_ID value in HOST BYTE ORDER.

Definition at line 536 of file packet_matches.h.

static uint16_t packet_matches_get_udp_dst_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match UDP_DST value in HOST BYTE ORDER.

Definition at line 400 of file packet_matches.h.

static uint16_t packet_matches_get_udp_src_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match UDP_SRC value in HOST BYTE ORDER.

Definition at line 392 of file packet_matches.h.

static uint8_t packet_matches_get_vlan_pcp_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match VLAN_PCP value in HOST BYTE ORDER.

Definition at line 251 of file packet_matches.h.

static uint16_t packet_matches_get_vlan_vid_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match VLAN_VID value in HOST BYTE ORDER according to 1.2 semantics (13th bit is a flag)

Definition at line 242 of file packet_matches.h.

static uint64_t packet_matches_get_wlan_address_1_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match WLAN_ADDRESS_1 value in HOST BYTE ORDER.

Definition at line 659 of file packet_matches.h.

static uint64_t packet_matches_get_wlan_address_2_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match WLAN_ADDRESS_2 value in HOST BYTE ORDER.

Definition at line 667 of file packet_matches.h.

static uint64_t packet_matches_get_wlan_address_3_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match WLAN_ADDRESS_3 value in HOST BYTE ORDER.

Definition at line 675 of file packet_matches.h.

static uint8_t packet_matches_get_wlan_direction_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match WLAN_DIRECTION value in HOST BYTE ORDER.

Definition at line 651 of file packet_matches.h.

static uint16_t packet_matches_get_wlan_fc_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match WLAN_FC value in HOST BYTE ORDER.

Definition at line 627 of file packet_matches.h.

static uint8_t packet_matches_get_wlan_subtype_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match WLAN_SUBTYPE value in HOST BYTE ORDER.

Definition at line 643 of file packet_matches.h.

static uint8_t packet_matches_get_wlan_type_value ( packet_matches_t *const  pkt_matches)
inlinestatic

Get the packet match WLAN_TYPE value in HOST BYTE ORDER.

Definition at line 635 of file packet_matches.h.

static bool packet_matches_has_vlan ( packet_matches_t *const  pkt_matches)
inlinestatic

Get flag has vlan.

Definition at line 234 of file packet_matches.h.