@@ -703,6 +703,22 @@ def get_ofport(self, port):
703
703
port_id = port ['device' ]
704
704
return self .sg_port_map .ports .get (port_id )
705
705
706
+ def _create_of_port (self , port , ovs_port ):
707
+ # Should always try to get the local vlan tag from
708
+ # the OVSDB Port other_config, since the ovs-agent's
709
+ # LocalVlanManager always allocated/updated it and then
710
+ # set_db_attribute to Port other_config before this.
711
+ port_vlan_id = self ._get_port_vlan_tag (ovs_port .port_name )
712
+ segment_id = self ._get_port_segmentation_id (
713
+ ovs_port .port_name )
714
+ network_type = self ._get_port_network_type (
715
+ ovs_port .port_name )
716
+ physical_network = self ._get_port_physical_network (
717
+ ovs_port .port_name )
718
+ return OFPort (port , ovs_port , port_vlan_id ,
719
+ segment_id ,
720
+ network_type , physical_network )
721
+
706
722
def get_or_create_ofport (self , port ):
707
723
"""Get ofport specified by port['device'], checking and reflecting
708
724
ofport changes.
@@ -713,22 +729,12 @@ def get_or_create_ofport(self, port):
713
729
try :
714
730
of_port = self .sg_port_map .ports [port_id ]
715
731
except KeyError :
716
- port_vlan_id = self ._get_port_vlan_tag (ovs_port .port_name )
717
- segment_id = self ._get_port_segmentation_id (
718
- ovs_port .port_name )
719
- network_type = self ._get_port_network_type (
720
- ovs_port .port_name )
721
- physical_network = self ._get_port_physical_network (
722
- ovs_port .port_name )
723
- of_port = OFPort (port , ovs_port , port_vlan_id ,
724
- segment_id ,
725
- network_type , physical_network )
732
+ of_port = self ._create_of_port (port , ovs_port )
726
733
self .sg_port_map .create_port (of_port , port )
727
734
else :
728
735
if of_port .ofport != ovs_port .ofport :
729
736
self .sg_port_map .remove_port (of_port )
730
- of_port = OFPort (port , ovs_port , of_port .vlan_tag ,
731
- of_port .segment_id )
737
+ of_port = self ._create_of_port (port , ovs_port )
732
738
self .sg_port_map .create_port (of_port , port )
733
739
else :
734
740
self .sg_port_map .update_port (of_port , port )
0 commit comments