X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fsrv6-as%2Fas.h;h=752d2529f56969b299fcc94ff8f9e5a7b3422c93;hb=ebd21c949ac94628f45b0bd0120a73efe1172edf;hp=8f05918715109fd28001461670074af375d76a1b;hpb=ba7992aa62523d014b55802463fb3357c7099b70;p=vpp.git diff --git a/src/plugins/srv6-as/as.h b/src/plugins/srv6-as/as.h index 8f059187151..752d2529f56 100644 --- a/src/plugins/srv6-as/as.h +++ b/src/plugins/srv6-as/as.h @@ -23,23 +23,9 @@ #include #include -#define DA_IP4 4 -#define DA_IP6 6 - -typedef struct -{ - u16 msg_id_base; /**< API message ID base */ - - vlib_main_t *vlib_main; /**< [convenience] vlib main */ - vnet_main_t *vnet_main; /**< [convenience] vnet main */ - - dpo_type_t srv6_as_dpo_type; /**< DPO type */ - - u32 srv6_localsid_behavior_id; /**< SRv6 LocalSID behavior number */ - - u32 *sw_iface_localsid4; /**< Retrieve local SID from iface */ - u32 *sw_iface_localsid6; /**< Retrieve local SID from iface */ -} srv6_as_main_t; +#define AS_TYPE_L2 2 +#define AS_TYPE_IP4 4 +#define AS_TYPE_IP6 6 /* * This is the memory that will be stored per each localsid @@ -50,16 +36,39 @@ typedef struct ip46_address_t nh_addr; /**< Proxied device address */ u32 sw_if_index_out; /**< Outgoing iface to proxied dev. */ u32 nh_adj; /**< Adjacency index for out. iface */ - u8 ip_version; + u8 inner_type; u32 sw_if_index_in; /**< Incoming iface from proxied dev. */ u8 *rewrite; /**< Headers to be rewritten */ ip6_address_t src_addr; /**< Source address to be restored */ ip6_address_t *sid_list; /**< SID list to be restored */ char *sid_list_str; + + u32 index; } srv6_as_localsid_t; -srv6_as_main_t srv6_as_main; +typedef struct +{ + u16 msg_id_base; /**< API message ID base */ + + vlib_main_t *vlib_main; /**< [convenience] vlib main */ + vnet_main_t *vnet_main; /**< [convenience] vnet main */ + + dpo_type_t srv6_as_dpo_type; /**< DPO type */ + + u32 srv6_localsid_behavior_id; /**< SRv6 LocalSID behavior number */ + + u32 *sw_iface_localsid2; /**< Retrieve local SID from iface */ + u32 *sw_iface_localsid4; /**< Retrieve local SID from iface */ + u32 *sw_iface_localsid6; /**< Retrieve local SID from iface */ + + srv6_as_localsid_t **sids; /**< Pool of AS SID pointers */ + + vlib_combined_counter_main_t valid_counters; /**< Valid rewrite counters */ + vlib_combined_counter_main_t invalid_counters;/**< Invalid rewrite counters */ +} srv6_as_main_t; + +extern srv6_as_main_t srv6_as_main; format_function_t format_srv6_as_localsid; unformat_function_t unformat_srv6_as_localsid;