diff options
author | 2019-07-29 11:18:05 +0200 | |
---|---|---|
committer | 2019-08-01 18:01:57 +0000 | |
commit | 55c68c9521d98005ce850ee54a40c7579d88928b (patch) | |
tree | b5513b058e87e9914c13e5f08df5787f2b595fa8 /src/vnet/ip/punt.md | |
parent | 30aaf97a90230d68c0f2736b0a026e07b06e7e32 (diff) |
docs: Small fixes and ordering
* deactivtates the TODOs on doxygen (were empty)
* This move punt.md to readthedocs (should be the new
place for dev doc ?)
* Makes Handoff queue demo plugin a child of dev doc
in doxygen
Type: fix
Change-Id: I1f0476a911b35208212af8dd608bc76160efd22a
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Diffstat (limited to 'src/vnet/ip/punt.md')
-rw-r--r-- | src/vnet/ip/punt.md | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/src/vnet/ip/punt.md b/src/vnet/ip/punt.md deleted file mode 100644 index 2bbb5f6b97e..00000000000 --- a/src/vnet/ip/punt.md +++ /dev/null @@ -1,82 +0,0 @@ -.. _punt: - -Punting Packets -=============== - -.. toctree:: - -Overview -________ - -To 'punt' can mean different things to different people. In VPP the -data-plane punts when a packet cannot be handled by any further -nodes. Punt differs from drop, in that VPP is giving other elements of -the system the opportunity to handle this packet. - -A popular meaning of punt is to send packets to the user/control-plane. -This is specific option of the more general case above, where VPP is -handing the packet to the control-plane for further prosessing. - -The Punt Infrastructe ---------------------- - -Exception packets are those that a given node cannot handle via normal -mecahnisms. -Punting of exception packets is handled via the VLIB 'punt -infra'. There are two types of nodes; sources and sinks. Sources -allocate a punt 'reason' from the infrastructre and load time. When -they encouter an exception during switch time it will tag the packet -with the reason and ship the packet of the the punt-dispatch node. A -sink will register with the punt infra at load time so it can receive -packets that were punted for that reason. If no sinks are registerd -for a given reason the packet is dropped, if multiple sinks register -the packets are replicated. - -This mechanism allows us to extend the system to deal with packets -that the source node would otherise drop. - - -Punting to the Control Plane ----------------------------- - -Active Punt ------------ - -The user/control-plane specifies that this is the type of packet I -want to receive and this is where I want it sent. - -Currently there exists 3 ways to describe how to match/classify the -packets to be punted: -... - 1) a matching UDP port - 2) a matching IP protocol (i.e. OSPF) - 3) a matching punt excpetion reason (see above) -... - -Depending on the type/classification of the packet to be punted, that -active punt will register itself into the VLIB graph to receive those -packets. For example, if it's a packet matching a UDP port then it -will hook into the UDP port dispatch functions; udp_register_port(). - -There exists only one sink for passive punt, a unix domain socket. But -more work is underway in this area. - -see the API in: vnet/ip/punt.api - - - -Passive Punt ------------- - -VPP input packet processing can be described as a series of -classifiers. For example, a sequence of input classifications could -be, is it IP? is it for-us? is it UDP? is it a known UDP-port? If at -some point in this pipline VPP has no further classifications to make, -then the packet can be punted, which means sent to ipX-punt node. This -is described as passive since the control-plane is thus receiving -every packet that VPP does not itself handle. -For passive punt the user can specify where the packets should be -sent and whether/how they should be policed/rate-limited. - -see the API in: vnet/ip/ip.api - |