ROFL-pipeline  v0.6.0dev
Functions
of1x_action_pp.h File Reference

OpenFlow v1.0, 1.2 and 1.3.2 action packet processing routines. More...

#include <inttypes.h>
#include <string.h>
#include <stdbool.h>
#include <assert.h>
#include "rofl.h"
#include "../../../util/pp_guard.h"
#include "of1x_statistics_pp.h"
#include "of1x_action.h"
#include "of1x_group_table.h"
#include "of1x_flow_table.h"
#include "of1x_utils.h"
#include "../../../physical_switch.h"
#include "../../../util/logging.h"
#include "../../../common/protocol_constants.h"
#include "../../../common/ternary_fields.h"
#include "../../../common/bitmap.h"
#include "../../../platform/lock.h"
#include "../../../platform/likely.h"
#include "../../../platform/memory.h"
#include "../../../platform/packet.h"
#include "../of1x_async_events_hooks.h"

Go to the source code of this file.

Functions

static ROFL_BEGIN_DECLS void __of1x_init_packet_write_actions (of1x_write_actions_t *pkt_write_actions)
 
static void __of1x_update_packet_write_actions (of1x_write_actions_t *packet_write_actions, const of1x_write_actions_t *entry_write_actions)
 
static void __of1x_clear_write_actions (of1x_write_actions_t *pkt_write_actions)
 
static void __of1x_process_apply_actions (const unsigned int tid, const struct of1x_switch *sw, const unsigned int table_id, datapacket_t *pkt, const of1x_action_group_t *apply_actions_group, bool replicate_pkts, datapacket_t **reinject_pkt)
 
static void __of1x_process_group_actions (const unsigned int tid, const struct of1x_switch *sw, const unsigned int table_id, datapacket_t *pkt, uint64_t field, of1x_group_t *group, bool replicate_pkts)
 
static void __of1x_process_packet_action (const unsigned int tid, const struct of1x_switch *sw, const unsigned int table_id, datapacket_t *pkt, of1x_packet_action_t *action, bool replicate_pkts, datapacket_t **reinject_pkt)
 
static void __of1x_process_write_actions (const unsigned int tid, const struct of1x_switch *sw, const unsigned int table_id, datapacket_t *pkt, bool replicate_pkts)
 

Detailed Description

OpenFlow v1.0, 1.2 and 1.3.2 action packet processing routines.

Author
Marc Sune<marc.sune (at) bisdn.de>

Note regarding endianness: Conforming the convention that the pipeline works in Network Byte Order the matches need to to be initialized in NBO (Big Endian). This applies to the values comming from the packet (eth_src, eth_dst, ...) and NOT to the ones that are external to it:

There is an special alignment for non complete values as

Definition in file of1x_action_pp.h.