aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/srv6/sr_steering.rst
blob: b8a82e575504f3c8c5143e102588a279decb1ee7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
.. _srv6_steering_doc:

Steering packets into a SR Policy
=================================

steer packets using the sr steering policy
------------------------------------------

To steer packets in Transit into an SR policy (T.Insert, T.Encaps and
T.Encaps.L2 behaviors), the user needs to create an ‘sr steering
policy’.

::

   sr steer l3 2001::/64 via index 1
   sr steer l3 2001::/64 via bsid cafe::1
   sr steer l3 2001::/64 via bsid cafe::1 fib-table 3
   sr steer l3 10.0.0.0/16 via bsid cafe::1
   sr steer l2 TenGE0/1/0 via bsid cafe::1

Disclaimer: The T.Encaps.L2 will steer L2 frames into an SR Policy.
Notice that creating an SR steering policy for L2 frames will actually
automatically *put the interface into promiscous mode*.

steer packets using the classifier
----------------------------------

Another way to steer packet is to use the classifier.

First the user need to manually add the source routing node to the list
of the ip6-inacl next nodes. Using the python api this can be done
with:

::

   # jsonfiles = get list of json api files
   vpp = VPP(jsonfiles)
   vpp.add_node_next(node_name='ip6-inacl', next_name='sr-pl-rewrite-insert')

Below is a classifier mask filtering all the packets from the interface
TenGigabitEthernet5/0/0 on ip version and moving all ipv6 packets to the
sr-pl-rewrite-insert node (dropping the others) and applying the source
routing index 2. In essence, this means “apply this sr policy to all the
packets from this interface)

::

   vpp# classify table miss-next 0 current-data-flag 1  mask hex f000000000000000 skip 0
   vpp# classify session acl-hit-next 1 table-index 0 match hex 6000000000000000 action set-sr-policy-index 2
   vpp# set interface input acl intfc TenGigabitEthernet5/0/0 ip6-table 0