X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fsrv6%2Fsr.h;h=2e2d43978bf805f1b3cda4359ec732b0024cfda0;hb=eeb5fb3a5;hp=d0f42869d211e9f3d7766e00ff335a59678ff963;hpb=7a4e0925f58f04cd31e4c37def959600d888940c;p=vpp.git diff --git a/src/vnet/srv6/sr.h b/src/vnet/srv6/sr.h index d0f42869d21..2e2d43978bf 100755 --- a/src/vnet/srv6/sr.h +++ b/src/vnet/srv6/sr.h @@ -276,6 +276,11 @@ sr_steering_policy (int is_del, ip6_address_t * bsid, u32 sr_policy_index, u32 table_id, ip46_address_t * prefix, u32 mask_width, u32 sw_if_index, u8 traffic_type); +extern void sr_set_source (ip6_address_t * address); + +extern void sr_set_hop_limit (u8 hop_limit); +extern u8 sr_get_hop_limit (void); + /** * @brief SR rewrite string computation for SRH insertion (inline) * @@ -300,15 +305,16 @@ ip6_sr_compute_rewrite_string_insert (ip6_address_t * sl) srh = (ip6_sr_header_t *) rs; srh->type = ROUTING_HEADER_TYPE_SR; srh->segments_left = vec_len (sl); - srh->first_segment = vec_len (sl); + srh->last_entry = vec_len (sl); srh->length = ((sizeof (ip6_sr_header_t) + ((vec_len (sl) + 1) * sizeof (ip6_address_t))) / 8) - 1; srh->flags = 0x00; - srh->reserved = 0x0000; + srh->tag = 0x0000; addrp = srh->segments + vec_len (sl); vec_foreach (this_address, sl) { - clib_memcpy (addrp->as_u8, this_address->as_u8, sizeof (ip6_address_t)); + clib_memcpy_fast (addrp->as_u8, this_address->as_u8, + sizeof (ip6_address_t)); addrp--; } return rs;