The router supports ‟primary and secondary action” for filters (see Primary and secondary filter policy action for PBR/PBF redundancy). OpenFlow programming for multiple filter actions is also supported, as follows:
Layer 2 PBF redundancy: 2 PBF actions (SAP/SDP) with optional sticky destination and pbr-on-down
Layer 3 PBR redundancy: 2 PBR actions (IP next-hop and VRF) with optional sticky destination and pbr-on-down
Layer 3 PBR redundancy: 2 PBR actions (next-hop and VRF) with optional sticky destination and pbr-on-down, with DSCP remarking as an extended action
The router supports multi-action using the OpenFlow version 1.3.1 Required Action: Group (For more details, see Section 6.4, Flow Table Modification Messages, Section 6.5, Group Table Modification Messages, and Section 5.6.1, Group Types with group type of fast failover of the TS-007, OpenFlow Switch Specification Version 1.3.1 (OpenFlow-hybrid switches)).
Redundancy uses fast failover group modeling as per the OpenFlow specification with two buckets, with liveliness detection provided by the filter module. Note that failover operates independently of the OpenFlow controller.
The router supports the programming of pbr-on-down-override and sticky-dest using an experimenter, as follows:
instruction type: OFPIT_WRITE_ACTIONS/OFPIT_APPLY_ACTION,
action type: OFPAT_EXPERIMENTER(ALU_AXN_PBFPBR_REDUNDANCY)
encoding:
struct alu_axn_PBFPBR_Redundancy{
uint16_t type; /* OFPAT_EXPERIMENTER. */
uint16_t len; /* Total Length is a multiple of 8. */
uint32_t experimenter; /* Experimenter ID vendor unique*/
uint8_t redirect_type ; /* Type = 4 for PBR/PBF redundancy*/
uint8_t flags; /* flags is 0-7 bits:
Bit 0 for pbr-down-action-override
Bit 1 for sticky-dest
*/
uint32_t portId; /* to specify pbr-down action portId 0
for drop, OFP_PORT_ID_NORMAL for forward
OFP_PORT_ID_ANY for filter-default-action
*/
uint32_t holdTime; /* Value between 0-65535 seconds for
sticky dest */
};