X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fsrv6-ad%2Fad.h;h=e519cfb6b6c04ae83161d205dfe678eb891e92e6;hb=027d813a509be0f30e05b48b888007b0094e4faf;hp=950085f2e135cdbbcbe378bbca9c4d8896aa3997;hpb=380e3daaaffd309febfc4764731982af08aa2dce;p=vpp.git diff --git a/src/plugins/srv6-ad/ad.h b/src/plugins/srv6-ad/ad.h index 950085f2e13..e519cfb6b6c 100644 --- a/src/plugins/srv6-ad/ad.h +++ b/src/plugins/srv6-ad/ad.h @@ -23,8 +23,27 @@ #include #include -#define DA_IP4 4 -#define DA_IP6 6 +#define AD_TYPE_L2 2 +#define AD_TYPE_IP4 4 +#define AD_TYPE_IP6 6 + +/* + * This is the memory that will be stored per each localsid + * the user instantiates + */ +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 inner_type; + + u32 sw_if_index_in; /**< Incoming iface from proxied dev. */ + u32 rw_len; /**< Number of bits to be rewritten */ + u8 *rewrite; /**< Headers to be rewritten */ + + u32 index; +} srv6_ad_localsid_t; typedef struct { @@ -37,27 +56,17 @@ typedef struct 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_ad_main_t; -/* - * This is the memory that will be stored per each localsid - * the user instantiates - */ -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; + srv6_ad_localsid_t **sids; /**< Pool of AD SID pointers */ - u32 sw_if_index_in; /**< Incoming iface from proxied dev. */ - u32 rw_len; /**< Number of bits to be rewritten */ - u8 *rewrite; /**< Headers to be rewritten */ -} srv6_ad_localsid_t; + vlib_combined_counter_main_t valid_counters; /**< Valid rewrite counters */ + vlib_combined_counter_main_t invalid_counters;/**< Invalid rewrite counters */ +} srv6_ad_main_t; -srv6_ad_main_t srv6_ad_main; +extern srv6_ad_main_t srv6_ad_main; format_function_t format_srv6_ad_localsid; unformat_function_t unformat_srv6_ad_localsid;