aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/l2
AgeCommit message (Collapse)AuthorFilesLines
2019-07-24api: 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> (cherry picked from commit 3940de36728b768574a3e998389bb90d55f690d1)
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-19DOCS-ONLY: Fix broken doxygen tag in BVIDave Wallace1-1/+1
Change-Id: Ia42e7c93ebe51a36470f1358827451bcb98da433 Signed-off-by: Dave Wallace <dwallacelf@gmail.com> (cherry picked from commit 3b62e29c3adc8e4114cb10dc794f4b3f814015b0)
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>
2018-09-25L2 BD: introduce a BD interface on which to send UU packetsNeale Ranns10-61/+451
Change-Id: I21ad6b04c19c8735d057174b1f260a59f2812241 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-09-24Trivial: Clean up some typos.Paul Vinciguerra13-30/+30
Change-Id: I085615fde1f966490f30ed5d32017b8b088cfd59 Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
2018-09-19L2-fib-dump: send 1 or 0 rather than flag valueNeale Ranns1-3/+3
Change-Id: I487b3b480347f60ffe3af4029adfb22b6700cea7 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-09-18Fix documentation for SHG in bridge domainYichen Wang1-1/+1
Change-Id: If094971cf011d09fa0daf3ff393f490e584c1151 Signed-off-by: Yichen Wang <yicwang@cisco.com>
2018-09-14Revert "L2-input: use vlib_buffer_enqueue_to_next"John Lo1-317/+239
The patch did not improve single input link performance and degrade performance with multiple input links. This reverts commit b1232555e91b286feab5667b5a22f29aa8e96626. Change-Id: Ib9336a2e0610088b9145a43cacbdadb52dabd522 Signed-off-by: John Lo <loj@cisco.com>
2018-09-13L2-FWD: use vlib_buffer_enqueue_to_next and cache prefetch fixNeale Ranns3-199/+153
before: l2-fwd ... 1.72e1 256.00 after: l2-fwd ... 1.49e1 256.00 Change-Id: I24b29b799435776abc6e60df0dd0301b74aac99b Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-09-13L2-input: use vlib_buffer_enqueue_to_nextNeale Ranns1-239/+317
use the same trick as l2-ouput to group the processing of packets on the same interface. Change-Id: Ib2a6a1b5f362372936197f5bb2fdd0fe9439226b Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-09-12L2-Learn: use vlib_buffer_enqueue_to_nextNeale Ranns1-195/+147
before: l2-learn ... 2.00e1 256.00 after: l2-learn ... 1.77e1 256.00 Change-Id: I22fe9ab4ec995ee22c547cfe16bf88c04838520c Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-09-11L2-learn; cache prefetch fixNeale Ranns2-15/+20
the header is written (STORE) the data is only read (LOAD) Change-Id: Ia3ac0c81224a0db736c329ed3e2e55b7417f08a0 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-09-08L2 BVI/FIB: Update L2 FIB table when BVI's MAC changesNeale Ranns5-6/+31
also some moving of l2 headers to reduce dependencies Change-Id: I7a700a411a91451ef13fd65f9c90de2432b793bb Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-09-07L2-FIB: replace bit-fields with flagsNeale Ranns6-69/+132
Change-Id: Ic31da442a0e0477569d53b4a72627bbb25e93365 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-09-04l2_output:skip processing if no features are enabledEyal Bari1-2/+6
Change-Id: I7fcc082376b451c6179ec2ef58f98c931adfed27 Signed-off-by: Eyal Bari <ebari@cisco.com>
2018-09-03Deprecate old buffer replication schemeDamjan Marion1-1/+0
Change-Id: I1f54b994425c58776e1445c8d9fe142e7a644d3d Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-08-24l2:bvi-dont aceess sup hw int for broadcastsEyal Bari1-20/+11
sup hw int is needed only for unicast validation Change-Id: I5e5753c09d1c16fdb2435b4db5628a2379fe6f96 Signed-off-by: Eyal Bari <ebari@cisco.com>
2018-08-23coverity: l2 arp termination dumpMohsin Kazmi1-4/+5
This patch resolves the coverity warning. Change-Id: I3f5e664b442fa9bcafd28c67283596570dc1244d Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-08-22l2:remove unused members of input, output configsEyal Bari2-16/+7
reorder structs for less padding Change-Id: Id05123f5bac870e1c585b3aa2177d9e3a6f8d70b Signed-off-by: Eyal Bari <ebari@cisco.com>
2018-08-17l2: arp termination dumpMohsin Kazmi2-0/+106
VPP-1368 Change-Id: I6373f76ba87184a91b517712eafb4ee1f5cea59e Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>