• Aaron Young's avatar
    ldmvsw: Add ldmvsw.c driver code · 5d01fa0c
    Aaron Young authored
      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: default avatarAaron Young <aaron.young@oracle.com>
    Signed-off-by: default avatarRashmi Narasimhan <rashmi.narasimhan@oracle.com>
    Reviewed-by: default avatarSowmini Varadhan <sowmini.varadhan@oracle.com>
    Reviewed-by: default avatarAlexandre Chartre <Alexandre.Chartre@oracle.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    5d01fa0c
sparc64_defconfig 5.26 KB