aboutsummaryrefslogtreecommitdiffstats
path: root/router/router/tap_inject_netlink.c
AgeCommit message (Collapse)AuthorFilesLines
2018-10-08Fix build issue due to vpp's function parameters changeHongjun Ni1-1/+1
Change-Id: I00282bc235cffb672911454af8d7dc7ab04fd7a1 Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2018-08-21Remove FIB_1.0 support and fix FIB_2.0 issueHongjun Ni1-37/+3
Change-Id: I90e593993851a364b728034c13e8e69852b558c4 Signed-off-by: Hongjun Ni <hongjun.ni@intel.com>
2018-04-04Add support for MPLS labels in router pluginChad Wang1-60/+120
1. Fixed more formatting issues. Added ASSERT. 2. Added MPLS features to support iproute2 command like ip -f mpls route add <label> dev vpp0 ip route add <IP> encap mpls <LABELS> via <IP> dev vpp0 3. Modifications to compile with the latest VPP. Change-Id: I5ed55ec3c6484beb1377496e9c763bb55da7ee26 Signed-off-by: Chad Wang <imflinter@gmail.com>
2017-04-05FIx compile issue for netlink and router pluginHongjun Ni1-0/+72
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/+184
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>