|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
21 #ifndef included_vnet_srmpls_h
22 #define included_vnet_srmpls_h
36 #define SR_POLICY_TYPE_DEFAULT 0
37 #define SR_POLICY_TYPE_SPRAY 1
39 #define SR_SEGMENT_LIST_WEIGHT_DEFAULT 1
41 #define SR_STEER_IPV4 4
42 #define SR_STEER_IPV6 6
44 #define SR_TE_CO_BITS_00 0
45 #define SR_TE_CO_BITS_01 1
46 #define SR_TE_CO_BITS_10 2
47 #define SR_TE_CO_BITS_11 3
151 u8 endpoint_type,
u32 color);
156 u8 traffic_type, ip46_address_t * next_hop,
157 u8 nh_type,
u32 color,
char co_bits,
SR Segment List (SID list)
int sr_mpls_policy_assign_endpoint_color(mpls_label_t bsid, ip46_address_t *endpoint, u8 endpoint_type, u32 color)
Update the Endpoint,Color tuple of an SR policy.
u32 fib_table
VRF of the prefix.
mhash_t sr_steer_policies_hash
u32 find_or_create_internal_label(ip46_address_t endpoint, u32 color)
find the corresponding label for (endpoint, color) and lock it endpoint might be NULL or ANY NULL = 0...
mpls_sr_steering_policy_t * steer_policies
u32 * segments_lists
Pool of SID lists indexes.
mpls_label_t bsid
BindingSID (key)
mpls_sr_main_t sr_mpls_main
sr_mpls_steering_key_t classify
Traffic classification.
void internal_label_unlock(ip46_address_t endpoint, u32 color)
Release lock on label for (endpoint, color) endpoint might be NULL or ANY NULL = 0,...
ip46_address_t prefix
IP address of the prefix.
mpls_sr_policy_t * sr_policies
int sr_mpls_policy_add(mpls_label_t bsid, mpls_label_t *segments, u8 behavior, u32 weight)
Create a new SR policy.
u32 mask_width
Mask width of the prefix.
ip46_address_t next_hop
SR TE NH.
Segment Routing main datastructure.
uword * sr_policies_index_hash
int sr_mpls_steering_policy_add(mpls_label_t bsid, u32 table_id, ip46_address_t *prefix, u32 mask_width, u8 traffic_type, ip46_address_t *next_hop, u8 nh_type, u32 color, char co_bits, mpls_label_t vpn_label)
Steer traffic L3 traffic through a given SR-MPLS policy.
char co_bits
Color-Only bits.
vl_api_address_t endpoint
mpls_label_t bsid
SR Policy index.
u8 type
Type (default is 0)
u32 color
Optional color for SR TE.
void internal_label_lock(ip46_address_t endpoint, u32 color)
lock the label for (NH, C) endpoint might be NULL or ANY NULL = 0, ANY=~0
int sr_mpls_steering_policy_del(ip46_address_t *prefix, u32 mask_width, u8 traffic_type, u32 table_id, u32 color)
Delete steering rule for an SR-MPLS policy.
u32 mpls_label_t
A label value only, i.e.
int sr_mpls_policy_del(mpls_label_t bsid)
Delete a SR policy.
mhash_t sr_policies_c2e2eclabel_hash
SR TE.
ip46_address_t endpoint
Optional NH for SR TE.
u32 * color
Vector of SR TE colors.
u8 traffic_type
Traffic type (IPv4, IPv6, L2)
int sr_mpls_policy_mod(mpls_label_t bsid, u8 operation, mpls_label_t *segments, u32 sl_index, u32 weight)
Modify an existing SR policy.