Merge "Disable VLAN id checks in create_tap_flow and delete_tap_flow."
This commit is contained in:
commit
499aab1ee7
@ -293,10 +293,6 @@ class OvsTaasDriver(taas_base.TaasDriverBase):
|
||||
ovs_port = self.int_br.get_vif_port_by_id(port['id'])
|
||||
ovs_port_id = ovs_port.ofport
|
||||
|
||||
# Get VLAN id for tap flow port
|
||||
port_dict = self.int_br.get_port_tag_dict()
|
||||
port_vlan_id = port_dict[ovs_port.port_name]
|
||||
|
||||
# Get patch port ID
|
||||
patch_int_tap_id = self.int_br.get_port_ofport('patch-int-tap')
|
||||
|
||||
@ -310,16 +306,39 @@ class OvsTaasDriver(taas_base.TaasDriverBase):
|
||||
|
||||
if direction == 'IN' or direction == 'BOTH':
|
||||
port_mac = tap_flow['port_mac']
|
||||
|
||||
#
|
||||
# Note: The ingress side flow (for unicast traffic) should
|
||||
# include a check for the 'VLAN id of the Neutron
|
||||
# network the port belongs to' + 'MAC address of the
|
||||
# port', to comply with the requirement that port MAC
|
||||
# addresses are unique only within a Neutron network.
|
||||
# Unfortunately, at the moment there is no clean way
|
||||
# to implement such a check, given OVS's handling of
|
||||
# VLAN tags and Neutron's use of the NORMAL action in
|
||||
# br-int.
|
||||
#
|
||||
# We are therefore temporarily disabling the VLAN id
|
||||
# check until a mechanism is available to implement
|
||||
# it correctly. The {broad,multi}cast flow, which is
|
||||
# also dependent on the VLAN id, has been disabled
|
||||
# for the same reason.
|
||||
#
|
||||
|
||||
# Get VLAN id for tap flow port
|
||||
# port_dict = self.int_br.get_port_tag_dict()
|
||||
# port_vlan_id = port_dict[ovs_port.port_name]
|
||||
|
||||
self.int_br.add_flow(table=0,
|
||||
priority=20,
|
||||
dl_vlan=port_vlan_id,
|
||||
# dl_vlan=port_vlan_id,
|
||||
dl_dst=port_mac,
|
||||
actions="normal,mod_vlan_vid:%s,output:%s" %
|
||||
(str(taas_id), str(patch_int_tap_id)))
|
||||
|
||||
self._add_update_ingress_bcmc_flow(port_vlan_id,
|
||||
taas_id,
|
||||
patch_int_tap_id)
|
||||
# self._add_update_ingress_bcmc_flow(port_vlan_id,
|
||||
# taas_id,
|
||||
# patch_int_tap_id)
|
||||
|
||||
# Add flow(s) in br-tun
|
||||
for tunnel_type in ovs_consts.TUNNEL_NETWORK_TYPES:
|
||||
@ -342,7 +361,6 @@ class OvsTaasDriver(taas_base.TaasDriverBase):
|
||||
return
|
||||
|
||||
def delete_tap_flow(self, tap_flow):
|
||||
taas_id = tap_flow['taas_id']
|
||||
port = tap_flow['port']
|
||||
direction = tap_flow['tap_flow']['direction']
|
||||
|
||||
@ -350,13 +368,6 @@ class OvsTaasDriver(taas_base.TaasDriverBase):
|
||||
ovs_port = self.int_br.get_vif_port_by_id(port['id'])
|
||||
ovs_port_id = ovs_port.ofport
|
||||
|
||||
# Get VLAN id for tap flow port
|
||||
port_dict = self.int_br.get_port_tag_dict()
|
||||
port_vlan_id = port_dict[ovs_port.port_name]
|
||||
|
||||
# Get patch port ID
|
||||
patch_int_tap_id = self.int_br.get_port_ofport('patch-int-tap')
|
||||
|
||||
# Delete flow(s) from br-int
|
||||
if direction == 'OUT' or direction == 'BOTH':
|
||||
self.int_br.delete_flows(table=0,
|
||||
@ -364,13 +375,28 @@ class OvsTaasDriver(taas_base.TaasDriverBase):
|
||||
|
||||
if direction == 'IN' or direction == 'BOTH':
|
||||
port_mac = tap_flow['port_mac']
|
||||
|
||||
#
|
||||
# The VLAN id related checks have been temporarily disabled.
|
||||
# Please see comment in create_tap_flow() for details.
|
||||
#
|
||||
|
||||
# taas_id = tap_flow['taas_id']
|
||||
|
||||
# Get VLAN id for tap flow port
|
||||
# port_dict = self.int_br.get_port_tag_dict()
|
||||
# port_vlan_id = port_dict[ovs_port.port_name]
|
||||
|
||||
# Get patch port ID
|
||||
# patch_int_tap_id = self.int_br.get_port_ofport('patch-int-tap')
|
||||
|
||||
self.int_br.delete_flows(table=0,
|
||||
dl_vlan=port_vlan_id,
|
||||
# dl_vlan=port_vlan_id,
|
||||
dl_dst=port_mac)
|
||||
|
||||
self._del_update_ingress_bcmc_flow(port_vlan_id,
|
||||
taas_id,
|
||||
patch_int_tap_id)
|
||||
# self._del_update_ingress_bcmc_flow(port_vlan_id,
|
||||
# taas_id,
|
||||
# patch_int_tap_id)
|
||||
|
||||
return
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user