Skip to content
  • Alin Serdean's avatar
    Windows: Add internal switch port per OVS bridge · da467899
    Alin Serdean authored
    
    
    This patch updates the following commands in the vswitch:
     ovs-vsctl add-br br-test
     ovs-vsctl del-br br-test
    
    ovs-vsctl add-br br-test:
        This command will now create an internal port on the MSFT virtual switch
      using the WMI interface from Msvm_VirtualEthernetSwitchManagementService
      leveraging the method AddResourceSettings.
        Before creating the actual port, the switch will be queried to see if there
      is not a port already created (good for restarts when restarting the
      vswitch daemon). If there is a port defined it will return success and log
      a message.
        After checking if the port already exists the command will also verify
      if the forwarding extension (windows datapath) is enabled and on a single
      switch. If it is not activated or if it is activated on multiple switches
      it will return an error and a message will be logged.
        After the port was created on the switch, we will disable the adapter on
      the host and rename to the corresponding OVS bridge name for consistency.
        The user will enable and set the values he wants after creation.
    
    ovs-vsctl del-br br-test
        This command will remove an internal port on the MSFT virtual switch
      using the Msvm_VirtualEthernetSwitchManagementService class and executing
      the method RemoveResourceSettings.
    
    Both commands will be blocking until the WMI job is finished, this allows us
    to guarantee that the ports are created and their name are set before issuing
    a netlink message to the windows datapath.
    
    This patch also includes helpers for normal WMI retrievals and initializations.
    Appveyor and documentation has been modified to include the libraries needed
    for COM objects.
    
    This patch was tested individually using IMallocSpy and CRT heap checks
    to ensure no new memory leaks are introduced.
    
    Tested on the following OS's:
    Windows 2012, Windows 2012r2, Windows 2016
    
    Signed-off-by: default avatarAlin Gabriel Serdean <aserdean@cloudbasesolutions.com>
    Acked-by: default avatarPaul Boca <pboca@cloudbasesolutions.com>
    Acked-by: default avatarSairam Venugopal <vsairam@vmware.com>
    Signed-off-by: default avatarGurucharan Shetty <guru@ovn.org>
    da467899