• Mahesh Bandewar's avatar
    ipvlan: Initial check-in of the IPVLAN driver. · 2ad7bf36
    Mahesh Bandewar authored
    This driver is very similar to the macvlan driver except that it
    uses L3 on the frame to determine the logical interface while
    functioning as packet dispatcher. It inherits L2 of the master
    device hence the packets on wire will have the same L2 for all
    the packets originating from all virtual devices off of the same
    master device.
    
    This driver was developed keeping the namespace use-case in
    mind. Hence most of the examples given here take that as the
    base setup where main-device belongs to the default-ns and
    virtual devices are assigned to the additional namespaces.
    
    The device operates in two different modes and the difference
    in these two modes in primarily in the TX side.
    
    (a) L2 mode : In this mode, the device behaves as a L2 device.
    TX processing upto L2 happens on the stack of the virtual device
    associated with (namespace). Packets are switched after that
    into the main device (default-ns) and queued for xmit.
    
    RX processing is simple and all multicast, broadcast (if
    applicable), and unicast belonging to the address(es) are
    delivered to the virtual devices.
    
    (b) L3 mode : In this mode, the device behaves like a L3 device.
    TX processing upto L3 happens on the stack of the virtual device
    associated with (namespace). Packets are switched to the
    main-device (default-ns) for the L2 processing. Hence the routing
    table of the default-ns will be used in this mode.
    
    RX processins is somewhat similar to the L2 mode except that in
    this mode only Unicast packets are delivered to the virtual device
    while main-dev will handle all other packets.
    
    The devices can be added using the "ip" command from the iproute2
    package -
    
    	ip link add link <master> <virtual> type ipvlan mode [ l2 | l3 ]
    Signed-off-by: default avatarMahesh Bandewar <maheshb@google.com>
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: Maciej Żenczykowski <maze@google.com>
    Cc: Laurent Chavey <chavey@google.com>
    Cc: Tim Hockin <thockin@google.com>
    Cc: Brandon Philips <brandon.philips@coreos.com>
    Cc: Pavel Emelianov <xemul@parallels.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    2ad7bf36
ipvlan.h 3.42 KB