Public bug reported:

Some NFV test cases require the source MAC address be filled by the
Application, so when the packets come to the SRIOV eswitch, the source
MAC address is not the VF's MAC address, if the SRIOV NIC's MAC anti-
spoofing check is enabled, the packets will be droped, which is not
desired.

The solution is disable the MAC-anti-spoofing check. I noticed the following bp 
introduce the ability to control SRIOV MAC-anti-spoofing check:
https://specs.openstack.org/openstack/neutron-specs/specs/liberty/sriov-spoofchk.html
And the implementation was done by the following submit:
https://review.openstack.org/#/c/192065/

But the implementation is not compatible if port_security extension driver is 
not configured.
For example, I use Mellanox SRIOV NICs, MAC-anti-spoofing check is disabled by 
default(http://www.mellanox.com/related-docs/prod_software/Mellanox_EN_for_Linux_User_Manual_v3_40.pdf
), so before the Liberty, VF's MAC-anti-spoofing check is DISABLED, the NFV 
application can specify the source MAC of the outband packets. After Liberty, 
the sriov-nic-agent will enable the MAC-anti-spoofing check, NO MATTER the 
port_security extension driver is configured or not, see the following code, 
spoofcheck has default value, and the value is True, that's means spoof check 
will always be enabled unless port_security_enabled be clearly assigned False:

    def treat_devices_added_updated(self, devices):
        ....
                    spoofcheck = device_details.get('port_security_enabled', 
True)

        ....

As my understanding, when port_security extension is not configured, there is 
no ability to control the SRIOV MAC-anti-spoofing check, and the behavior of 
the NICs should leave as it is. It's not reasonable to enable the 
MAC-anti-spoofing check by default.
When port_security extension is not configured, the behavior should compatible 
with the version before Liberty.

** Affects: neutron
     Importance: Undecided
         Status: New


** Tags: sriov-pci-pt

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1654960

Title:
  SRIOV VF MAC-anti-spoofing check behavior not compatible when
  port_security extension not configured

Status in neutron:
  New

Bug description:
  Some NFV test cases require the source MAC address be filled by the
  Application, so when the packets come to the SRIOV eswitch, the source
  MAC address is not the VF's MAC address, if the SRIOV NIC's MAC anti-
  spoofing check is enabled, the packets will be droped, which is not
  desired.

  The solution is disable the MAC-anti-spoofing check. I noticed the following 
bp introduce the ability to control SRIOV MAC-anti-spoofing check:
  
https://specs.openstack.org/openstack/neutron-specs/specs/liberty/sriov-spoofchk.html
  And the implementation was done by the following submit:
  https://review.openstack.org/#/c/192065/

  But the implementation is not compatible if port_security extension driver is 
not configured.
  For example, I use Mellanox SRIOV NICs, MAC-anti-spoofing check is disabled 
by 
default(http://www.mellanox.com/related-docs/prod_software/Mellanox_EN_for_Linux_User_Manual_v3_40.pdf
  ), so before the Liberty, VF's MAC-anti-spoofing check is DISABLED, the NFV 
application can specify the source MAC of the outband packets. After Liberty, 
the sriov-nic-agent will enable the MAC-anti-spoofing check, NO MATTER the 
port_security extension driver is configured or not, see the following code, 
spoofcheck has default value, and the value is True, that's means spoof check 
will always be enabled unless port_security_enabled be clearly assigned False:

      def treat_devices_added_updated(self, devices):
          ....
                      spoofcheck = device_details.get('port_security_enabled', 
True)

          ....

  As my understanding, when port_security extension is not configured, there is 
no ability to control the SRIOV MAC-anti-spoofing check, and the behavior of 
the NICs should leave as it is. It's not reasonable to enable the 
MAC-anti-spoofing check by default.
  When port_security extension is not configured, the behavior should 
compatible with the version before Liberty.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1654960/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to