aboutsummaryrefslogtreecommitdiffstats
path: root/router/router/tap_inject_node.c
AgeCommit message (Collapse)AuthorFilesLines
2017-10-26Fix multicast packet reception.Michael Borokhovich1-0/+1
This commit adds the 224.0.0.0/24 entry to the mfib, making it possible to receive multicast packets. Previously, multicast packets would not be received because the entry was added to the unicast fib and not mfib. Change-Id: Id324805da3f214b3b68e9dba8b3967c615135765 Signed-off-by: Michael Borokhovich <michaelbor@gmail.com>
2017-10-10Merge "[router] Remove call to vlib_buffer_chain_validate"Pierre Pfister1-2/+0
2017-10-09[router] Remove call to vlib_buffer_chain_validateJeff Shaw1-2/+0
The vlib_buffer_chain_validate() function was removed from VPP. To avoid referencing an undefined symbol, this commit removes the function call. Change-Id: I53f911a7d7b3d6121b8a4a0768b259af20730686 Signed-off-by: Jeff Shaw <jeffrey.b.shaw@intel.com>
2017-10-09[router] Set VLIB_RX metadata to valid sw_if_indexJeff Shaw1-1/+1
In normal cases, some multicast frames from the control plane are dropped by VPP before being sent. We were not setting the VLIB_RX interface to a valid sw_if_index, causing a segmentation fault when updating counters in the process_drop node. Change-Id: I950158b6c36c9056ee024d2524099db03bffbf35 Signed-off-by: Jeff Shaw <jeffrey.b.shaw@intel.com>
2017-04-05FIx compile issue for netlink and router pluginHongjun Ni1-0/+42
Change-Id: I8a6f069af4acce97fd0ee262c217af645afd476d Signed-off-by: Hongjun Ni <hongjun.ni@intel.com> Signed-off-by: Dave Barach <dave@barachs.net>
2016-10-04[router] IPv6 support and refactoring.Jeff Shaw1-0/+331
This change adds support for IPv6 while refactoring most of the original plugin code in the following ways. - Adhere to vpp style guidelines. - Split the netlink, node, and tap processing into separate files named with a "tap_inject" prefix which more accurately represents the functionality. - Implement our own tap management and rx/tx. This is to reduce the overhead of passing packets in and out of vnet tap devices, in favor of directly reading/writing from the tap. - Change how nodes work. Now we have neighbor, rx, and tx nodes. The neighbor node sends ARP replies and ICMP6 neighbor advertisements to the arp-input and icmp6-neighbor-solicitation nodes, respectively, before also injecting the packet to the host, making it possible for both vpp and the host network stack to resolve the next hop. The tx node injects packets into the host by writing to the tap. The rx node reads packets from the tap and sends them on its associated data plane interface. - Simplify the CLI. Instead of creating taps specifically for a given interface we create a tap for all of the Ethernet interfaces with the "enable tap-inject" CLI command. The interfaces are named with a "vpp" prefix, i.e. "vpp0". Also add a "disable tap-inject" option. - Provide ability to enable at configuration time with the tap-inject { enable } stanza. Change-Id: I6b56da606e2da1d793ce6aca222fe4eb5a4e070d Signed-off-by: Jeff Shaw <jeffrey.b.shaw@intel.com>