= srv6-impl

== Implemented features:

- locator read,write and delete requests and customizers,
  based on augmentation of routing model in: +
  `hc2vpp-ietf-routing:routing/hc2vpp-ietf-srv6-base:srv6/locators/locator`
- local sid read,write and delete requests and customizers,
  based on augmentation of routing model in: +
  `hc2vpp-ietf-routing:routing/hc2vpp-ietf-srv6-base:srv6/locators/locator/static/local-sids/sid/`
- encapsulation source write and delete requests and customizers,
  based on augmentation of routing model in: +
  `hc2vpp-ietf-routing:routing/hc2vpp-ietf-srv6-base:srv6/hc2vpp-ietf-srv6-base:encapsulation`
- Srv6 policy read,write and delete requests and customizers based on hc2vpp-oc-srte@2017-09-18.yang +
  model, defined in: +
  `hc2vpp-oc-srte-policy:segment-routing/traffic-engineering/policies` +
  and +
  `hc2vpp-oc-srte-policy:segment-routing/traffic-engineering/named-segment-lists`
- Srv6 L3 steering read,write and delete requests and customizers based on hc2vpp-oc-srte@2017-09-18.yang +
  model, defined in: +
  `hc2vpp-oc-srte-policy:segment-routing/traffic-engineering/policies/policy/autoroute-include/prefixes`
- Srv6 L2 steering read,write and delete requests and customizers based on augmentation of +
  hc2vpp-oc-srte@2017-09-18.yang model in vpp-oc-srte-policy@2018-05-14.yang model, defined in: +
    `hc2vpp-oc-srte-policy:segment-routing/traffic-engineering/policies/policy/autoroute-include/vpp-oc-srte-policy:interfaces`


== VPP mapping

- local sid and locator configuration maps to *sr_localsid_add_del* in VPP API:
  *IPv6 SR LocalSID add/del params:* +
      *is_del* Boolean of whether its a delete instruction +
      *localsid_addr* IPv6 address of the localsid +
      *end_psp* Boolean of whether decapsulation is allowed in this function +
      *behavior* Type of behavior (function) for this localsid +
      *sw_if_index* Only for L2/L3 xconnect. OIF. In VRF variant the fib_table. +
      *vlan_index* Only for L2 xconnect. Outgoing VLAN tag. +
      *fib_table*  FIB table in which we should install the localsid entry +
      *nh_addr6* Next Hop IPv6 address. Only for L2/L3 xconnect. +
      *nh_addr4* Next Hop IPv6 address. Only for L2/L3 xconnect. +
- encapsulation source maps to *sr_set_encap_source* in VPP API: +
  *IPv6 SR Set SRv6 encapsulation source params:* +
      *bsid* is the bindingSID of the SR Policy +
      *index* is the index of the SR policy
- srv6 policy configuration maps to *sr_policy_add* in VPP API: +
  *IPv6 SR policy add params:* +
      *bsid* is the bindingSID of the SR Policy +
      *weight* is the weight of the sid list. optional. +
      *is_encap* is the behavior of the SR policy. (0.SRH insert // 1.Encapsulation) +
      *type* is the type of the SR policy. (0.Default // 1.Spray) +
      *fib_table* is the VRF where to install the FIB entry for the BSID +
      *sids* is a srv6_sid_list object
- srv6 steering configuration maps to *sr_steering_add_del* in VPP API: +
  *IPv6 SR steering add/del params:* +
      *is_del* +
      *bsid* is the bindingSID of the SR Policy (alt to sr_policy_index) +
      *sr_policy* is the index of the SR Policy (alt to bsid) +
      *table_id* is the VRF where to install the FIB entry for the BSID +
      *prefix* is the IPv4/v6 address for L3 traffic type +
      *mask_width* is the mask for L3 traffic type +
      *sw_if_index* is the incoming interface for L2 traffic +
      *traffic_type* describes the type of traffic

== Supported End function configurations:

- *END* (VPP behavior type 1)
- *END X* (VPP behavior type 2)
- *END DX2* (VPP behavior type 5)
- *END DX4* (VPP behavior type 7)
- *END DX6* (VPP behavior type 6)
- *END T* (VPP behavior type 3)
- *END DT4* (VPP behavior type 9)
- *END DT6* (VPP behavior type 8)
