summaryrefslogtreecommitdiffstats
path: root/test/test_span.py
AgeCommit message (Collapse)AuthorFilesLines
2018-03-01Fix ERSPAN encap to set EN bits in the header and add test caseJohn Lo1-1/+71
For ERSPAN encap, both bits in the EN field of the header should be set to indicate any VLAN tag in the original Ethernet frame is preserved. Added SPAN L2 test case where the mirrored packet output is a GRE ERSPAN tunnel. Change-Id: Ie7a40992a9278469c24aa6fa9e122b4505797d10 Signed-off-by: John Lo <loj@cisco.com>
2018-02-15Optimize GRE Tunnel and add support for ERSPAN encapJohn Lo1-1/+1
Change GRE tunnel to use the interface type where the same encap node is used as output node for all GRE tunnels, instead of having dedicated output and tx node for each tunnel. This allows for more efficient tunnel creation and deletion at scale tested at 1000's of GRE tunnels. Add support for ERSPAN encap as another tunnel type, in addition to the existing L3 and TEB types. The GRE ERSPAN encap supported is type 2 thus GRE encap need to include sequence number and GRE- ERSPAN tunnel can be created with user secified ERSPAN session ID. The GRE tunnel lookup hash key is updated to inclue tunnel type and session ID, in addition to SIP/DIP and FIB index. Thus, GRE-ERSPAN tunnel can be created, with the appropriate session ID, to be used as output interface for SPAN config to send mirrored packets. Change interface naming so that all GRE tunnels, irrespective of tunnel type, uses "greN" where N is the instance number. Removed interface reuse on tunnel creation and deletion to enable unfied tunnel interface name. Add support of user specified instance on GRE tunnel creation. Thus, N in the "greN" interface name can optionally be specified by user via CLI/API. Optimize GRE tunnel encap DPO stacking to bypass load-balance DPO node since packet output on GRE tunnel always belong to the same flow after 5-tupple hash. Change-Id: Ifa83915744a1a88045c998604777cc3583f4da52 Signed-off-by: John Lo <loj@cisco.com>
2017-10-18TEST,SPAN:add broadcast+QiniQ testsEyal Bari1-67/+137
Change-Id: I89c6923370af97bbd09db81a33b6d17f9424a049 Signed-off-by: Eyal Bari <ebari@cisco.com>
2017-10-17TEST,SPAN: add rx+tx span testEyal Bari1-127/+78
also refactored verify function Change-Id: Ib93c99c833dd7c75e416374530c631f954957d98 Signed-off-by: Eyal Bari <ebari@cisco.com>
2017-07-24SPAN:add l2 mirrorEyal Bari1-31/+317
added span feature nodes for l2-input / l2-output Change-Id: Ib6e0ce60d0811901b6edd70209e6a4c4a35cd8ff Signed-off-by: Eyal Bari <ebari@cisco.com>
2017-01-12make test: fix typoKlement Sekera1-1/+1
Change-Id: I70b4123129aab5770a45ccde4cef4452d06386b8 Signed-off-by: Klement Sekera <ksekera@cisco.com>
2017-01-11make test: improve documentation and PEP8 complianceKlement Sekera1-5/+6
Change-Id: Ib4f0353aab6112fcc3c3d8f0bcbed5bc4b567b9b Signed-off-by: Klement Sekera <ksekera@cisco.com>
2016-12-23make test: improve handling of packet capturesKlement Sekera1-5/+6
Perform accounting of expected packets based on created packet infos. Use this accounting info to automatically expect (and verify) the correct number of packets to be captured. Automatically retry the read of the capture file if scapy raises an exception while doing so to handle rare cases when capture file is read while only partially written during busy wait. Don't fail assert_nothing_captured if only junk packets arrived. Change-Id: I16ec2e9410ef510d313ec16b7e13c57d0b2a63f5 Signed-off-by: Klement Sekera <ksekera@cisco.com>
2016-12-05make test: fix missing log/packet messagesKlement Sekera1-21/+28
Change-Id: Idb3119792943664748c4abc3829ad723f4156dfe Signed-off-by: Klement Sekera <ksekera@cisco.com>
2016-11-15span: add feature (rx only) (VPP-185)Pavel Kotucek1-0/+186
Change-Id: I0f7cbf06b5a5acd745d13c9f5c761ea18132107b Signed-off-by: marek <mazavods@gmail.com> Signed-off-by: Damjan Marion <damarion@cisco.com> Signed-off-by: Pavel Kotucek <pkotucek@cisco.com> Signed-off-by: Damjan Marion <damarion@cisco.com>
e.Builtin.Pseudo */ .highlight .fm { color: #a6e22e } /* Name.Function.Magic */ .highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */ .highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */ .highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */ .highlight .vm { color: #f8f8f2 } /* Name.Variable.Magic */ .highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */ } @media (prefers-color-scheme: light) { .highlight .hll { background-color: #ffffcc } .highlight .c { color: #888888 } /* Comment */ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ .highlight .k { color: #008800; font-weight: bold } /* Keyword */ .highlight .ch { color: #888888 } /* Comment.Hashbang */ .highlight .cm { color: #888888 } /* Comment.Multiline */ .highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */ .highlight .cpf { color: #888888 } /* Comment.PreprocFile */ .highlight .c1 { color: #888888 } /* Comment.Single */ .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
# 3na-spr
## ./ip4_tunnels
### mellanox-cx7veat
#### rdma-core
# ##### ethip4vxlan-l2bdbasemaclrn
# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2bdbasemaclrn
# ##### ethip4vxlan-l2xcbase
# 1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
# 2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
# 4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
# 1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
# 2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
# 1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
# 1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
# 2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
# 4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_rdma_core AND ethip4vxlan-l2xcbase
#### mlx5-core
##### ethip4vxlan-l2bdbasemaclrn
1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2bdbasemaclrn
##### ethip4vxlan-l2xcbase
1c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
2c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
4c AND 64b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
1c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
2c AND 1518b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
1c AND 9000b AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
1c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
2c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase
4c AND imix AND ndrpdr AND 2p1cx7veat AND drv_mlx5_core AND ethip4vxlan-l2xcbase