aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/l2
AgeCommit message (Collapse)AuthorFilesLines
2020-08-18l2: L2/L3 mode swicth cleanup and l2-patch fixJohn Lo2-19/+9
Cleanup L2/L3 mode switch to not redirect to/from ethernet-input node as it is no longer necessary. L2 patch should use sw_if_index for device feature enable/disable. Type: fix Signed-off-by: John Lo <loj@cisco.com> Change-Id: I0f24161d027b07c188fd1e05276146f94c075710 (cherry picked from commit f415a3b53a51b261d08cc3312c25f250d6bc1bd6)
2020-08-12l2: fix l2input_feat_names overflowBenoît Ganne1-1/+1
Type: fix Change-Id: I59549b3aab5a0ccfe7db02757f78528e028121a5 Signed-off-by: Benoît Ganne <bganne@cisco.com> (cherry picked from commit 70ef0faea9f706004c068fb843797a7cb08a9e68)
2020-04-30l2: l2_patch_main should not be staticVratko Polak1-1/+5
Without understanding what is going on, a pattern from l2_fwd.c is applied to l2_patch.c file. Type: fix Fixes: d770cfc96257f9bd9e0c96c8ebe50e4531dc1bc5 Ticket: VPP-1799 Change-Id: Ia97d448f9d1846549f57ea69044ae15fa39bb942 Signed-off-by: Vratko Polak <vrpolak@cisco.com> (cherry picked from commit 3be9351e5e5c54f76544836044c6e81df8a0b899)
2020-04-13l2: handle complete clone fail in l2_floodDave Barach1-2/+8
vlib_buffer_clone(...) may not manage to produce any buffer clones at all. vlib_buffer_clone_256 should not smash the original buffer reference count if no clones are produced. Type: fix Signed-off-by: Dave Barach <dave@barachs.net> Change-Id: I14d9d53637a220485c7a0036cfc75a4149b264ea (cherry picked from commit 95e19253320ab07748787f4c8a7620704563f6b8)
2020-01-08l2: fix MAC learn counter update on adding MAC entryJohn Lo1-1/+1
Type: fix Signed-off-by: John Lo <loj@cisco.com> Change-Id: I711432f589ee4a4527cf795526d3b4031999f71d (cherry picked from commit b2e73b1dcb8e9eb3bf74a96fff20a9b27f7e6d73)
2019-11-05l2: fix typo in doxygenPaul Vinciguerra1-2/+2
Type: style Change-Id: I286280fffa6ab5d3e15986911a4ccc35efbf41c3 Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com> (cherry picked from commit ddbd90aae332e6c4b59e35bf44a735e592a3a053)
2019-10-29vppinfra: add vec_set_len()Benoît Ganne1-1/+2
l2-flood and bier nodes reset vector length without updating it to its effective size. Introduce a helper to do it (this allows ASAN to keep track of the new vector size). Type: refactor Change-Id: I2d652550c440f0553a2b49c3ee3d37b49ebc16c3 Signed-off-by: Benoît Ganne <bganne@cisco.com> (cherry picked from commit 8a4bfdae87286ed281df855c58b669eb6b76aaf8)
2019-10-03classify: use vector code even when data is not alignedDamjan Marion1-61/+19
Type: feature Change-Id: I8f5f4841965beb13ebc8c2a37ce0dc331c920109 Signed-off-by: Damjan Marion <damarion@cisco.com> (cherry picked from commit 8304933922620cef005b788a36a4d3f2eab45bb5)
2019-10-03classify: remove includes from classifier header fileDamjan Marion2-0/+2
Type: refactor Change-Id: I6f0af1c3078edce1c1b29a8b99c4a232d7084d33 Signed-off-by: Damjan Marion <damarion@cisco.com> (cherry picked from commit 864d857c6c223be8ec11c588d65e8c5c2e211814)
2019-09-28ipsec ip tcp l2: multiarch nodes cannot be declared as staticDamjan Marion3-6/+6
Credits to ray.kinsella@intel.com who spotted the issue and identified root cause. Type: fix Change-Id: I4afe74c47769484309f6aebca2de56ad32c8041f Signed-off-by: Damjan Marion <damarion@cisco.com> (cherry picked from commit d770cfc96257f9bd9e0c96c8ebe50e4531dc1bc5)
2019-08-15vlib: copy trace_handle in vlib_buffer_copy/clone() functionsJohn Lo1-6/+0
Since vlib_buffer_copy() and vlib_buffer_clone() both preserve VLIB_BUFFER_IS_TRACED bit in flags field, it should also copy trace_handle which would add minimal overhead. Thus, callers of these functions do not have to call vlib_buffer_copy_trace_flags() to copy trace_handle. Type: refactor Ticket: VPP-1745 Signed-off-by: John Lo <loj@cisco.com> Change-Id: Iff6a3f81660dd62b36a2966033eb380305340310 (cherry picked from commit 6631780422787166550b9871c46a94c160416324) Signed-off-by: John Lo <loj@cisco.com>
2019-07-23api: binary api cleanupDave Barach2-5/+6
Multiple API message handlers call vnet_get_sup_hw_interface(...) without checking the inbound sw_if_index. This can cause a pool_elt_at_index ASSERT in a debug image, and major disorder in a production image. Given that a number of places are coded as follows, add an "api_visible_or_null" variant of vnet_get_sup_hw_interface, which returns NULL given an invalid sw_if_index, or a hidden sw interface: - hw = vnet_get_sup_hw_interface (vnm, sw_if_index); + hw = vnet_get_sup_hw_interface_api_visible_or_null (vnm, sw_if_index); if (hw == NULL || memif_device_class.index != hw->dev_class_index) return clib_error_return (0, "not a memif interface"); Rename two existing xxx_safe functions -> xxx_or_null to make it obvious what they return. Type: fix Change-Id: I29996e8d0768fd9e0c5495bd91ff8bedcf2c5697 Signed-off-by: Dave Barach <dave@barachs.net>
2019-07-09vppinfra: allocate bihash virtual space on demandDave Barach1-0/+4
Reduces the vpp image virtual size by multiple gigabytes Add a "show bihash" command which displays configured and current virtual space in use by bihash tables. Modify the .py test framework to call "show bihash" on test tear-down Type: refactor Change-Id: Ifc1b7e2c43d29bbef645f6802fa29ff8ef09940c Signed-off-by: Dave Barach <dave@barachs.net>
2019-07-02gbp: add anonymous l3-out external interfacesBenoît Ganne2-0/+2
So far, GBP l3-out packets classification & policy relied on programmed EP. All traffic to/from l3-out must go through a known EP. This patch introduces a new feature where l3-out next-hops are only known by their subnets (l3-out prefixes). As there are no longer known EPs to program, an interface must be configured as external anonymous l3-out. Packets classification & policy on this interface will rely on the external subnets programmed in the BD VRF. Note that contrary to all other interfaces in a GBP BD, external anonymous l3-out interfaces have BD L2 learning turned on and rely on ARP/ND. Type: feature Change-Id: Ieedb29dff4e967d08c4301e82d06bff450a63e5f Signed-off-by: Benoît Ganne <bganne@cisco.com>
2019-06-19l2: BD ARP termination entry API updateNeale Ranns2-22/+39
Type: refactor Change-Id: I492b6e88acadf0ab0e4d7b1c0c5d1cab84c1726f Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-05-09Update API descriptionIgor Mikhailov (imichail)1-3/+2
Change-Id: I2d616a30e745045789287cb13b26fb12d51d2884 Signed-off-by: Igor Mikhailov (imichail) <imichail@cisco.com>
2019-05-03mp_safe SW_INTERFACE_DUMP, SW_INTERFACE_DETAILS, SW_INTERFACE_TAG_ADD_DEL,Steven Luong1-0/+3
BRIDGE_DOMAIN_DUMP, CONTROL_PING, CONTROL_PING_REPLY, and show interface CLI Change-Id: I2927573b66bb5dd134b37ffb72af0e6676750917 Signed-off-by: Steven Luong <sluong@cisco.com> (cherry picked from commit 15c31921a628c5500cbed2ebc588d7ddbaa970a3)
2019-04-25Remove dummy_interface_tx nodes from l2tp l2xcrw and nshJohn Lo1-9/+0
Change-Id: I51e0d4a9ec62514a85bbe4c5f56a48d60ab6f4e4 Signed-off-by: John Lo <loj@cisco.com>
2019-04-24l2: Add support for arp unicast forwardingMohsin Kazmi6-8/+112
Change-Id: I79fc55f36a9b83957f84619bdf8cef08acc8ec24 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2019-04-19DOCS-ONLY: Fix broken doxygen tag in BVIDave Wallace1-1/+1
Change-Id: Ia42e7c93ebe51a36470f1358827451bcb98da433 Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2019-03-29BVI: coverity error fixNeale Ranns1-1/+1
Change-Id: Idc1e1747035638777240b7ea9afcf675b22be7f1 Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-03-21BVI InterfaceNeale Ranns5-1/+505
a new dedicated BVI interface as opposed to [re]using a loopback. benefits: - removes ambiguity over the purpose of a loopback interface - TX node dedicated to BVI only functions. Change-Id: I749d6b38440d450ac5b909a28053c75ec9df946a Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-03-19add default NONE flag for bd_flagsMichal Cmarada1-0/+1
Change-Id: I316bcc3d0244cf89bd1e2fc8a08cfac6aad0b22c Signed-off-by: Michal Cmarada <mcmarada@cisco.com>
2019-03-12l2: migrate old MULTIARCH macros to VLIB_NODE_FNFilip Tehlar15-122/+139
Change-Id: I8370c06150ce4499475e9d6dc6b3ab8be2016202 Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2019-03-06GBP: use sclass in the DP for policyNeale Ranns2-2/+0
Change-Id: I154e18f22ec7708127b8ade98e80546ab1dcd05b Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-02-14Add -fno-common compile optionBenoît Ganne2-2/+2
-fno-common makes sure we do not have multiple declarations of the same global symbol across compilation units. It helps debug nasty linkage bugs by guaranteeing that all reference to a global symbol use the same underlying object. It also helps avoiding benign mistakes such as declaring enum as global objects instead of types in headers (hence the minor fixes scattered across the source). Change-Id: I55c16406dc54ff8a6860238b90ca990fa6b179f1 Signed-off-by: Benoît Ganne <bganne@cisco.com>
2019-01-30Use IP and MAC API types for neighborsNeale Ranns1-1/+1
use address_t and mac_address_t for IPv6 and ARP entries and all other API calls in ip.api aprat from the route ones, that will follow in a separate commit Change-Id: I67161737c2184d3f8fc1e79ebd2b55121c5b0191 Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-01-22GBP: Sclass to src-epg conversionsNeale Ranns2-0/+2
Change-Id: Ica88268fd6a6ee01da7e9219bb4e81f22ed2fd4b Signed-off-by: Neale Ranns <nranns@cisco.com>
2019-01-07L2 BD API to flush all IP-MAC entries in the specified BDJohn Lo4-12/+83
Implement API/CLI to clear IP-MAC tables used for ARP-termination in the specified bridge domain. The CLI to flush MAC IP tables for a BD is: set bridge-domain arp entry <bd-id> del-all The API added is bd_ip_mac_flush. Change-Id: I34ceb87c0f480c7102f6559312c24081ed485af8 Signed-off-by: John Lo <loj@cisco.com>
2019-01-03Fix used-before-set in vl_api_bridge_flags_t_handlerDave Barach1-1/+2
The aarch64 cross-compiler complains about this when building an optimized image. So we fix it... Change-Id: Ib2b2089c0534753d7d470311012fa0073ab27d1d Signed-off-by: Dave Barach <dave@barachs.net>
2018-12-18PAPI: Add MACAddress object wrapper for vl_api_mac_address_tOle Troan2-2/+2
Change the definition of vl_api_mac_address_t to an aliased type. Change-Id: I1434f316d0fad6a099592f39bceeb8faeaf1d134 Signed-off-by: Ole Troan <ot@cisco.com>
2018-11-29GBP: l3-out subnetsNeale Ranns1-0/+1
Change-Id: Id4a20066fc5be716c61a497dfcb4d00dc1dbb28d Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-11-26Remove unused argument from eth_identify_subint(...)Damjan Marion1-3/+0
Change-Id: I0e89fbc51f30325655c4e9d0104aceb3ead3b16f Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-11-18add vlib_prefetch_buffer_data(...) macroDamjan Marion1-9/+8
Change-Id: Iba750a41262cc028ad0363fff78cc219e4a33538 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-11-14Remove c-11 memcpy checks from perf-critical codeDave Barach9-70/+73
Change-Id: Id4f37f5d4a03160572954a416efa1ef9b3d79ad1 Signed-off-by: Dave Barach <dave@barachs.net>
2018-11-13L2 feautre bitmaps output verbose/non-verbose modeNeale Ranns4-6/+26
Change-Id: I15ff191ee8724a3354c074db590472db05e0652e Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-11-07l2: convert l2_patch to new multiarch schemeDamjan Marion1-168/+114
Change-Id: I30487bd736407378fb5a6d313e4eef12bbb262b8 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-11-07GBP Endpoint LearningNeale Ranns3-3/+4
Learning GBP endpoints over vxlan-gbp tunnels Change-Id: I1db9fda5a16802d9ad8b4efd4e475614f3b21502 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-11-06BD ARP entry use common API typesNeale Ranns4-42/+60
Change-Id: I29f20dbaf2c2d735faff297cee552ed648f6f61b Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-11-06Change l2_patch from dual-loop to quad-loopYulong Pei1-18/+54
The change can save 1.1 clocks per packet on Intel Atom C3858 platform, It downgraded from 2.05e1 to 1.94e1 clocks per packet. The change can save 0.3 clocks per packet on Intel Xeon CPU E5-2699 v4 @ 2.20GHz, It downgraded from 1.26e1 to 1.23e1 clocks per packet. Change-Id: I1ede77fb592a797d86940a8abad9ca291a89f1c7 Signed-off-by: Yulong Pei <yulong.pei@intel.com>
2018-11-02vlib: define minimum chained buffer segment sizeDamjan Marion1-3/+1
Change-Id: I9b5f7b264f9978e3dd97b2d1eb103b7d10ac3170 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-10-31l2fib:remove unused bucket arg in lookup functionsEyal Bari3-33/+7
Change-Id: Ib138b6e2eac47acc16e81bc88358ae7947420134 Signed-off-by: Eyal Bari <ebari@cisco.com>
2018-10-24L2-fwd trace show the lookup resultNeale Ranns3-48/+81
Change-Id: I09cf6ee7b4874d71f293f8f1a426d3a5e9651749 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-10-24L2-input/output: use feature enum type in flag update functionNeale Ranns4-4/+10
Change-Id: I1f58f441c65fbca101bee2e864bfa6ae2306b475 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-10-23c11 safe string handling supportDave Barach6-12/+12
Change-Id: Ied34720ca5a6e6e717eea4e86003e854031b6eab Signed-off-by: Dave Barach <dave@barachs.net>
2018-10-15vnet: create L2 feature arc infrastructureAndrew Yourtchenko6-2/+727
This commit adds two new nodes in the L2 datapath in input and output direction respectively. These nodes fork the traffic into three feature arcs: ip4, ip6 and nonip, which later join to continue the usual L2 processing. The vnet_l2_feature_enable_disable() function with the same signature as vnet_feature_enable_disable() takes care of enabling the L2 datapath feature bits as needed, when the features are enabled/disabled. Thus, L2 features may use the similar plumbing as the L3 features enjoy. Change-Id: I76877b3a92d794c492bff1622bb26acba05705b2 Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2018-10-11L2: BM traffic does not use UU-FWD (VPP-1445)Neale Ranns1-1/+2
Change-Id: I5495c37da2fb8ff48c4af14ccba021d64eac52b6 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-10-10L2-flood: no clone for 1 replicationNeale Ranns1-59/+69
Change-Id: If178dd38e7920f35588f5d821ff097168b078026 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-10-01Fix documentation about sw_interface_set_l2_bridgeYichen Wang1-1/+1
Change-Id: I53e0e7d2cf1e3c52794830b33fa93d1582b74769 Signed-off-by: Yichen Wang <yicwang@cisco.com>
2018-09-26Modify return values of L2 bridge API handlersAlexander Chernavin1-0/+20
Change-Id: Ie6a6dde1fdc0e4fa8560682072a69876867a88d3 Signed-off-by: Alexander Chernavin <achernavin@netgate.com>