The router supports redirection of IPv4/IPv6 traffic arriving on a Layer 3 interface to a VAS interface bound to an ESI with an EVPN control plane. In this encoding, the SF-IP address represents the VAS interface address, and the ifIndex is the VAS interface ID. An OF controller can program L3 steering with the switch-defined-cookie command enabled using the following OF encoding:
flow_mod:
instruction type: OFPIT_WRITE_ACTIONS/OFPIT_APPLY_ACTION,
action type: OFPAT_EXPERIMENTER(ALU_AXN_REDIRECT_TO_ESI_L3)
encoding:
struct alu_axn_redirect_to_ESI_L3_V4{
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 = 2 for ESI*/
uint8_t flags; /* flags is 0-7 bits:
Value 2 = L3 (ipv4)
*/
uint8_t esi[10];
uint32_t svcId; /* Svc-Name Using the OF Encoding */
uint32_t vas-ip; /* v4 address of sf-ip */
uint32_t ifIndex; /* vas interface id*/
}; ASSERT(sizeof(alu_axn_redirect_to_ESI_L3_V4) == 24)
struct alu_axn_redirect_to_ESI_L3_V6{
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 = 2 for ESI*/
uint8_t flags; /* flags is 0-7 bits:
Value 4 = L3 (ipv6)
*/
uint8_t esi[10]; /* 10 byte ESI */
uint32_t svcId; /* Svc-Name Using the OF Encoding */
uint128_t vas-ip; /* v6 address of sf-ip */
uint32_t ifIndex; /* vas interface id*/
uint8_t pad[4]
}; ASSERT(sizeof(alu_axn_redirect_to_ESI_L3_V6) == 40)