The router supports redirection of IPv4/IPv6 traffic arriving on a Layer 3 interface to an ESI with an EVPN control plane. An OF controller can program L3 ESI 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 = 3 for ESI*/
uint8_t flags; /* flags is 0-7 bits:
Value 1 = L3 (ipv4)
*/
uint8_t esi[10]; /* 10 byte ESI */
uint32_t svcId; /* Svc-Name Using the OF Encoding */
uint32_t sf-ip; /* v4 address of sf-ip */
uint32_t ifIndex; /* interface id*/
}; ASSERT(sizeof(alu_axn_redirect_to_ESI_L3_V42) == 32)
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 = 1 for Nhop*/
uint8_t flags; /* flags is 0-7 bits:
Value = 2 = L3 (ipv6)
*/
uint8_t esi[10]; /* 10 byte ESI */
uint32_t svcId; /* Svc-Name Using the OF Encoding */
uint128_t sf-ip; /* v6 address of sf-ip */
uint32_t ifIndex; /* interface id*/
uint8_t pad[4];
}; ASSERT(sizeof(alu_axn_redirect_to_ESI_L3_V6) == 48)