aboutsummaryrefslogtreecommitdiffstats
path: root/vnet/vnet/ethernet/interface.c
AgeCommit message (Collapse)AuthorFilesLines
2016-12-28Reorganize source tree to use single autotools instanceDamjan Marion1-730/+0
Change-Id: I7b51f88292e057c6443b12224486f2d0c9f8ae23 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-12-20Decouple dependencies/assumptions in MAC changeNeale Ranns1-0/+21
Change-Id: Ic38d0e468da1ad5b56eefda471a5961146a1c372 Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-12-02interfaces: make no_flatten variant of inteface_ouptut fn defaultDamjan Marion1-1/+0
Flatten variant was used only by old native drivers. Change-Id: If206c6c8b4f10843d60f908c3acb4e8db83ce03d Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-11-01feature: add new feature handling code and device-input featuresDamjan Marion1-27/+0
Signed-off-by: Damjan Marion <damarion@cisco.com> Change-Id: I010ecde93863dbdad84b993cd3680a5446db59b5
2016-10-14FIB2.0: Adjacency complete pull model (VPP-487)Neale Ranns1-31/+41
Change the adjacency completion model to pull not push. A complete adjacency has a rewirte string, an incomplete one does not. the re-write string for a peer comes either from a discovery protocol (i.e. ARP/ND) or can be directly derived from the link type (i.e. GRE tunnels). Which method it is, is interface type specific. For each packet type sent on a link to a peer there is a corresponding adjacency. For example, if there is a peer 10.0.0.1 on Eth0 and we need to send to it IPv4 and MPLS packets, there will be two adjacencies; one for the IPv4 and one for the MPLS packets. The adjacencies are thus distinguished by the packets the carry, this is known as the adjacency's 'link-type'. It is not an L3 packet type, since the adjacency can have a link type of Ethernet (for L2 over GRE). The discovery protocols are not aware of all the link types required - only the FIB is. the FIB will create adjacencies as and when they are required, and it is thus then desirable to 'pull' from the discovery protocol the re-write required. The alternative (that we have now) is that the discovery protocol pushes (i.e. creates) adjacencies for each link type - this creates more adjacencies than we need. To pull, FIB now requests from the interface-type to 'complete' the adjacency. The interface can then delegate to the discovery protocol (on ethernet links) or directly build the re-write (i.e on GRE). Change-Id: I61451789ae03f26b1012d8d6524007b769b6c6ee Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-10-03L2 over LISP and GRE (VPP-457)Neale Ranns1-7/+34
Change-Id: I0d7f9c7f41a9f9e0acb0950adedb90d45df08c2a Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-09-30Fix double-free crashDavid Hotham1-0/+1
loop0 interfaces were transmitting the same packets multiple times, eventually causing them to be freed multiple times Change-Id: I32fcf5cfa10e58bb9e9bbbbc1b9312518d00ee9f Signed-off-by: David Hotham <david.hotham@metaswitch.com>
2016-09-23Fix detection of packet output via BVI into a BD and SHG adjustmentJohn Lo1-1/+4
In BVI output node, set a signature value in packet buffer field sw_if_index[VLIB_TX] so l2-input node can reliably check that packet came into a BD through BVI so it can set the SHG of the packet to 0 for a unicast packet. Change-Id: I301aa2896677e11d0c964ca476dddcb5a8804fc2 Signed-off-by: John Lo <loj@cisco.com>
2016-09-21A Protocol Independent Hierarchical FIB (VPP-352)Neale Ranns1-0/+14
Main Enhancements: - Protocol Independent FIB API - Hierarchical FIB entries. Dynamic recursive route resolution. - Extranet Support. - Integration of IP and MPLS forwarding. - Separation of FIB and Adjacency databases. - Data-Plane Object forwarding model. Change-Id: I52dc815c0d0aa8b493e3cf6b978568f3cc82296c Signed-off-by: Neale Ranns <nranns@cisco.com>
2016-09-20VPP-282: Document changes for vnet/vnet/ethernetBilly McFall1-2/+58
Change-Id: Ie75f43516fdd76ba3720f65f38d66f14749e3e2d Signed-off-by: Billy McFall <bmcfall@redhat.com>
2016-08-31VPP-240: delete subinterfacePavel Kotucek1-0/+65
Added new CLI and API command to delete subinterface. Change-Id: Ia92a8facc6ad84634bdec430093e6add02ee674e Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
2016-08-17Coding standards cleanup - remove trailing whitespace, fixes VPP-332Damjan Marion1-2/+2
Change-Id: I649a17f8fa47599faf438b2e596f53761790d10c Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-08-15VPP251 - Code style vnet/vnet/ethernetKeith Burns (alagalah)1-155/+202
Change-Id: I3e51ca70a8e1ac7f6584bc5b0271ee4daacc1084 Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
2016-05-31VPP97: Flooding of pkts with multiple buffers in BD with BVI crashes VPPJohn Lo1-0/+1
The loopback interface should use vnet_interface_output_no_flatten so follow-on buffers of a jumbo packet do not get put on the output frame and be sent back to ethernet-input or l2-input node. The replication_recycle_callback() function should not assume follow-on buffers of a jumbo packet are on the buffer free list. Change-Id: Ide646a6d9b43e82782c0581ea3022a9e70f82582 Signed-off-by: John Lo <loj@cisco.com>
2016-05-23VPP-81: Print interface name after creating an interface with CLIPierre Pfister1-0/+1
When the CLI is used to create an interface, and whend the operation succeeds, the newly created interface name is printed-out. The patch includes the following interfaces types: - AF_PACKET - Vhost User - Netmap - GRE - L2TP - MPLS-GRE - Loopback Change-Id: Id518c139ec63a261eae81d2ed95c4cd1f10b5157 Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-04-26MTU: set interface mtu tapMohsin Kazmi1-2/+2
This patch introduces standard command line 'set interface mtu' for setting the MTU for tap devices. It allows user to set the mtu in between 68 to 65535 bytes aligned to what linux kernel supports for tun/tap devices. Right now tapcli set the same MTU size for each tap interface. But it should be set and configure to per interface rather than per tap instance. Change-Id: I81b7f3ad95ca56d585907ff8f51d9935a428e01b Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2016-04-25Improve mechanism for using loopback interface as BVI for BDsJohn Lo1-10/+38
When loopback interface is configured as BVI, instead of changing its output node from loopN-output to l2-input, the loopN-output node is now kept while its next tx node is changed from ethernet-input to l2-input. The packet setup previously done in bvi_to_l2 as part of l2-input is now performed in the loop output node. This change adds an extra node in the BVI output path but provides the following improvements: 1. IP address/route created on loopback prior to it being configured as BVI will still work properly. The requirement to (re)configure IP/route on loopback after it is configured as BVI is removed. 2. The output stats for loopback interfaces are always provided irrespective of their BVI configuration. 3. The loopback-BVI output stats can be batch updated outside the packet loop in output node, instead of per packet update in l2-input node, making l2-input node more efficient for BVI packets. 4. Restore original node property as implemented in node.c function vlib_node_add_next_with_slot() where next node indices stored in next slots of each node will remain unique. 5. Packet trace for BVI output includes loopN output node which provides useful packet data. Change-Id: I7f5bc72ef953a367363a179088210596881f9e73 Signed-off-by: John Lo <loj@cisco.com>
2016-04-22Add clib_memcpy macro based on DPDK rte_memcpy implementationDamjan Marion1-5/+5
Change-Id: I22cb443c4bd0bf298abb6f06e8e4ca65a44a2854 Signed-off-by: Damjan Marion <damarion@cisco.com>
2016-04-20delete loopback interface cliAlpesh S. Patel1-0/+6
(to be consistent with other delete interface commands) Change-Id: I41f63cc5b11d9fa9489edc54b17a4d857b711b66 Signed-off-by: Alpesh S. Patel <apatel9191@hotmail.com>
2016-04-12Creating a new CLI to create loopback interfaces to make the interfaceAlpesh Patel1-0/+6
creation cli consistent Change-Id: I72f074bb8c771511cb5203af6905adccefbb4197 Signed-off-by: Alpesh Patel <apatel9191@hotmail.com>
2016-03-11Set hardware iface state for loopback interfacesPierre Pfister1-0/+10
So unless I have missed something, loopback interfaces are spawned hardware-down and never set up. This patch uses the same process as tapcli interfaces by mirroring sw state to hw state. Change-Id: I94198c1c880de773daccbb63ca8d32c4c7e26a74 Signed-off-by: Pierre Pfister <ppfister@cisco.com>
2016-03-03Change default L3 MTU to allow jumbo packets for non-DPDK interfaces.John Lo1-1/+1
Note that L3 MTU for DPDK interfaces is derived from DPDK port_conf in vnet/devices/dpdk/init.c. Change-Id: I9633a1887347a18d05598435baceb6a62cd7b19a Signed-off-by: John Lo <loj@cisco.com>
2015-12-08Initial commit of vpp code.v1.0.0Ed Warnicke1-0/+462
Change-Id: Ib246f1fbfce93274020ee93ce461e3d8bd8b9f17 Signed-off-by: Ed Warnicke <eaw@cisco.com>