ldmvsw: Add ldmvsw.c driver code
authorAaron Young <aaron.young@oracle.com>
Tue, 15 Mar 2016 18:35:39 +0000 (11:35 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 18 Mar 2016 23:33:00 +0000 (19:33 -0400)
commit5d01fa0c6bd84ddf1339a3fadfefecd2c28d472e
tree8e98abe74385c1d2993da5294d692bfa41675d16
parent67d0719f06ded9488311472b3d65ad37d992c332
ldmvsw: Add ldmvsw.c driver code

  Add ldmvsw.c driver

  Details:

  The ldmvsw driver very closely follows the sunvnet.c code and makes
  use of the sunvnet_common.c code for core functionality.

  A significant difference between sunvnet and ldmvsw driver is
  sunvnet creates a network interface for each vnet-port *parent*
  node in the MD while the ldmvsw driver creates a network interface
  for every vsw-port node in the Machine Description (MD).
  Therefore the netdev_priv() for sunvnet is a vnet structure while
  the netdev_priv() for ldmvsw is a vnet_port structure.

  Vnet_port structures allocated by ldmvsw have the vsw bit set.
  When finding the net_device associated with a port, the common code keys
  off this bit to use either the net_device found in the vnet_port or the
  net_device in the vnet structure (see the VNET_PORT_TO_NET_DEVICE() macro in
  sunvnet_common.h). This scheme allows the common code to work with
  both drivers with minimal changes.

  Similar to Xen, network interfaces created by the ldmvsw driver will always
  have a HW Addr (i.e. mac address) of FE:FF:FF:FF:FF:FF and each will be
  assigned the devname "vif<cfg_handle>.<port_id>" - where <cfg_handle> and
  <port_id> are a unique handle/port pair assigned to the associated
  vsw-port node in the MD.

Signed-off-by: Aaron Young <aaron.young@oracle.com>
Signed-off-by: Rashmi Narasimhan <rashmi.narasimhan@oracle.com>
Reviewed-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Reviewed-by: Alexandre Chartre <Alexandre.Chartre@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/configs/sparc64_defconfig
drivers/net/ethernet/sun/Kconfig
drivers/net/ethernet/sun/Makefile
drivers/net/ethernet/sun/ldmvsw.c [new file with mode: 0644]