summaryrefslogtreecommitdiffstats
path: root/src/vnet/ip/punt.md
diff options
context:
space:
mode:
authorNathan Skrzypczak <nathan.skrzypczak@gmail.com>2019-07-29 11:18:05 +0200
committerDave Barach <openvpp@barachs.net>2019-08-01 18:01:57 +0000
commit55c68c9521d98005ce850ee54a40c7579d88928b (patch)
treeb5513b058e87e9914c13e5f08df5787f2b595fa8 /src/vnet/ip/punt.md
parent30aaf97a90230d68c0f2736b0a026e07b06e7e32 (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.md82
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
-