aboutsummaryrefslogtreecommitdiffstats
path: root/vnet/vnet/l2/l2_efp_filter.c
diff options
context:
space:
mode:
authorBilly McFall <bmcfall@redhat.com>2016-09-09 08:46:40 -0400
committerDave Wallace <dwallacelf@gmail.com>2016-09-13 02:06:48 +0000
commit22aa3e970da0f0c772c5a16103a5dcf1f2875285 (patch)
tree5945d6b0dba816d5572ba766e1ddc5246934e5e2 /vnet/vnet/l2/l2_efp_filter.c
parent1732fc1ab851c454a74efda47a383f48691d545a (diff)
VPP-288: Documentation changes via doxygen for vnet/vnet/l2.
Change-Id: I55b552fd054610c993d14078ce048c8c4b676104 Signed-off-by: Billy McFall <bmcfall@redhat.com>
Diffstat (limited to 'vnet/vnet/l2/l2_efp_filter.c')
-rw-r--r--vnet/vnet/l2/l2_efp_filter.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/vnet/vnet/l2/l2_efp_filter.c b/vnet/vnet/l2/l2_efp_filter.c
index 2038dce2737..2db4dc69c9c 100644
--- a/vnet/vnet/l2/l2_efp_filter.c
+++ b/vnet/vnet/l2/l2_efp_filter.c
@@ -26,6 +26,21 @@
#include <vppinfra/error.h>
#include <vppinfra/cache.h>
+/**
+ * @file
+ * @brief EFP-filter - Ethernet Flow Point Filter.
+ *
+ * It is possible to transmit a packet out a subinterface with VLAN tags
+ * that are not compatible with that subinterface. In other words, if that
+ * packet arrived on the output port, it would not be classified as coming
+ * from the output subinterface. This can happen in various ways: through
+ * misconfiguration, by putting subinterfaces with different VLAN encaps in
+ * the same bridge-domain, etc. The EFP Filter Check detects such packets
+ * and drops them. It consists of two checks, one that verifies the packet
+ * prior to output VLAN tag rewrite and one that verifies the packet after
+ * VLAN tag rewrite.
+ *
+ */
typedef struct
{
@@ -568,6 +583,19 @@ done:
}
+/*?
+ * EFP filtering is a basic switch feature which prevents an interface from
+ * transmitting a packet that doesn't match the interface's ingress match
+ * criteria. The check has two parts, one performed before egress vlan tag
+ * rewrite and one after. This command enables or disables the EFP filtering
+ * for a given sub-interface.
+ *
+ * @cliexpar
+ * Example of how to enable a Layer 2 efp-filter on a sub-interface:
+ * @cliexcmd{set interface l2 efp-filter GigabitEthernet0/8/0.200}
+ * Example of how to disable a Layer 2 efp-filter on a sub-interface:
+ * @cliexcmd{set interface l2 efp-filter GigabitEthernet0/8/0.200 disable}
+?*/
/* *INDENT-OFF* */
VLIB_CLI_COMMAND (int_l2_efp_filter_cli, static) = {
.path = "set interface l2 efp-filter",