Do not set multicast=True if not needed
In some cases - such as isolated segments - multicast cannot be enabled. Leaving it to default settings will avoid error responses from the NSX-T backend. Change-Id: I65beefc574f0167e9679c873c99e48173999741c
This commit is contained in:
parent
98c517b3cc
commit
13f646b28d
|
@ -103,6 +103,7 @@ from vmware_nsxlib.v3 import exceptions as nsx_lib_exc
|
||||||
from vmware_nsxlib.v3 import nsx_constants as nsxlib_consts
|
from vmware_nsxlib.v3 import nsx_constants as nsxlib_consts
|
||||||
from vmware_nsxlib.v3.policy import constants as policy_constants
|
from vmware_nsxlib.v3.policy import constants as policy_constants
|
||||||
from vmware_nsxlib.v3.policy import core_defs as policy_defs
|
from vmware_nsxlib.v3.policy import core_defs as policy_defs
|
||||||
|
from vmware_nsxlib.v3.policy import core_resources
|
||||||
from vmware_nsxlib.v3.policy import transaction as policy_trans
|
from vmware_nsxlib.v3.policy import transaction as policy_trans
|
||||||
from vmware_nsxlib.v3.policy import utils as p_utils
|
from vmware_nsxlib.v3.policy import utils as p_utils
|
||||||
from vmware_nsxlib.v3 import utils as nsxlib_utils
|
from vmware_nsxlib.v3 import utils as nsxlib_utils
|
||||||
|
@ -1149,12 +1150,14 @@ class NsxPolicyPlugin(nsx_plugin_common.NsxPluginV3Base):
|
||||||
return versions
|
return versions
|
||||||
|
|
||||||
def _get_segment_multicast_setting(self, context, net_id):
|
def _get_segment_multicast_setting(self, context, net_id):
|
||||||
|
# Multicast must be explicitly disabled for v6-only subnets
|
||||||
seg_subnets_ip_ver = self._get_segment_subnets_versions(
|
seg_subnets_ip_ver = self._get_segment_subnets_versions(
|
||||||
context, net_id)
|
context, net_id)
|
||||||
# Multicast cannot be enabled on segments with v6 subnets only
|
# Multicast cannot be enabled on segments with v6 subnets only
|
||||||
if len(seg_subnets_ip_ver) == 1 and seg_subnets_ip_ver.pop() == 6:
|
if len(seg_subnets_ip_ver) == 1 and seg_subnets_ip_ver.pop() == 6:
|
||||||
return False
|
return False
|
||||||
return True
|
# Ignore value of multicast setting (go with defaults)
|
||||||
|
return core_resources.IGNORE
|
||||||
|
|
||||||
def _get_segment_subnets(self, context, net_id, net_az=None,
|
def _get_segment_subnets(self, context, net_id, net_az=None,
|
||||||
interface_subnets=None,
|
interface_subnets=None,
|
||||||
|
|
|
@ -2084,7 +2084,7 @@ class NsxPTestL3NatTestCase(NsxPTestL3NatTest,
|
||||||
# We expect two subnet objects on segment
|
# We expect two subnet objects on segment
|
||||||
seg_update.assert_called_with(
|
seg_update.assert_called_with(
|
||||||
n['network']['id'],
|
n['network']['id'],
|
||||||
multicast=True,
|
multicast=mock.ANY,
|
||||||
subnets=[mock.ANY, mock.ANY],
|
subnets=[mock.ANY, mock.ANY],
|
||||||
tier1_id=r['router']['id'])
|
tier1_id=r['router']['id'])
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue