d9fb563ab7e7267802eed787888b78665660ef1a
[honeycomb.git] / v3po / v3po2vpp / asciidoc / Readme.adoc
1 = Honeycomb translation layer SPI implementation for VPP CORE
2
3 Provides customizers for VPP YANG models translation.
4
5 == Handlers
6
7 === Writers
8 Current order of v3po-api writers is:
9
10 . BridgeDomain
11 . VhostUser
12 . VxlanGpe
13 . Tap
14 . Vxlan
15 . Interface
16 . SubInterface
17 . L2
18 . Subinterface-L2
19 . Ethernet
20 . Routing
21 . ClassifyTable
22 . ClassifySession
23 . Acl
24 . Ipv6
25 . Ipv4
26 . Address
27 . Neighbor
28 . L2FibEntry
29 . Rewrite
30 . Address
31 . Acl
32
33 To find out current order in runtime, turn on logging for writer registry:
34
35   log:set TRACE io.fd.honeycomb.v3po.translate.util.write.registry
36
37 === Readers
38 There is not a strict order for readers, but current configuration produces approx. this order:
39
40 Contexts
41 . VppState
42 . Version
43 . BridgeDomains
44 . BridgeDomain
45 . L2FibTable
46 . L2FibEntry
47 . InterfacesState
48 . Interface
49 . VppInterfaceStateAugmentation
50 . Ethernet
51 . Tap
52 . VhostUser
53 . Vxlan
54 . VxlanGpe
55 . L2
56 . Acl
57 . Interface2
58 . Ipv4
59 . Address
60 . Neighbor
61 . Ipv6
62 . SubinterfaceStateAugmentation
63 . SubInterfaces
64 . SubInterface
65 . L2
66 . Rewrite
67 . Ipv4
68 . Address
69 . Acl
70 . VppClassifierState
71 . ClassifyTable
72 . ClassifySession
73 . NetconfState
74
75 == VPP to IETF-ACL model translation
76
77 Package provides VPP translation code for draft-ietf-netmod-acl-model-08.
78 Access control lists are mapped to chains of classify tables, each with single classify session.
79
80 === Available operations
81
82 ==== Configuration data
83 Configuration data for the model is stored in Honeycomb. Corresponding classify tables and sessions
84 are not created until control access list is assigned to an interface.
85
86 Classify tables and sessions are removed from VPP when ACL assignment is deleted.
87
88 ACLs can be shared among interfaces, but each time, new instance of classify table chain would be created in VPP.
89
90 ACLs that are assigned to an interface have to be unassigned before update/removal.
91
92 ==== Operational state
93 Operational read in terms of ietf-acl model is not supported (would require storing additional metadata in vpp).
94 As a consequence, configuration data initialization based on operational state is not possible.
95
96 To check how ietf-acl model was translated to classify tables/session, low-level vpp-classfier model can be used.
97
98 === Restrictions
99
100 VPP classfier works in form of offsets and masks of 16B units.
101 The offset always starts at the beginning of L2 Ethernet header
102 of input packet. Because IP header can have variable length,
103 source/destination port matching (L4 features of ietf-acl model) is not possible.