[openstack-dev] [Neutron][networking-odl] New error Mitaka together with ODL-Beryllium

Rui Zang rui.zang at foxmail.com
Fri Aug 19 08:45:33 UTC 2016


Hi Hikolas,

The `ovs-vsctl show` output does not show how physnet1 can be reached. 
That is what I meant by it is not managed by OpenDaylight. Maybe you 
need to manipulate the "OVS_BRIDGE_MAPPINGS" configuration options.
However, that does not explain why networking-odl or OpenDaylight does 
not bind port on flat network. Maybe other folks have the answer.

Thanks,
Zang, Rui

On 8/19/2016 3:36 PM, Nikolas Hermanns wrote:
> I redeployed the system cause of other reason so ids changed. Problem still exist:
> root at node-3:~# ovs-vsctl show
> 7c5fba05-9094-4306-87ed-2e44f2edc192
>     Manager "tcp:192.168.0.4:6640"
>         is_connected: true
>     Bridge br-int
>         Controller "tcp:192.168.0.4:6633"
>             is_connected: true
>         Port "TUNNEL:2"
>             Interface "TUNNEL:2"
>                 type: vxlan
>                 options: {key=flow, local_ip="192.168.2.4", remote_ip="192.168.2.1"}
>         Port "tap33a54c35-1b"
>             Interface "tap33a54c35-1b"
>                 type: internal
>         Port "tap54ea3b3f-ee"
>             Interface "tap54ea3b3f-ee"
>                 type: internal
>         Port br-int
>             Interface br-int
>                 type: internal
>         Port "tap6cd7d327-11"
>             Interface "tap6cd7d327-11"
>                 type: internal
>         Port "qr-15746548-70"
>             Interface "qr-15746548-70"
>                 type: internal
>         Port "TUNNEL:10"
>             Interface "TUNNEL:10"
>                 type: vxlan
>                 options: {key=flow, local_ip="192.168.2.4", remote_ip="192.168.2.3"}
>         Port "tap15a2a33f-9f"
>             Interface "tap15a2a33f-9f"
>                 type: internal
>         Port "tapfeea7fab-be"
>             Interface "tapfeea7fab-be"
>                 type: internal
>         Port "TUNNEL:6"
>             Interface "TUNNEL:6"
>                 type: vxlan
>                 options: {key=flow, local_ip="192.168.2.4", remote_ip="192.168.2.2"}
>         Port "tapc1ad3c0d-3c"
>             Interface "tapc1ad3c0d-3c"
>                 type: internal
>     ovs_version: "2.4.1"
>
> ## neutron port-list
> | fcb2ecbe-07ba-41a1-8c5e-7dac6577d58b |      | fa:16:3e:9a:55:16 | {"subnet_id": "102e7306-8a2d-4448-bf69-9e0c3c8649b4", "ip_address": "172.16.0.130"}  |
>
> ## ERROR from the logs:
> 2016-08-19 07:29:30.170 23329 ERROR neutron.plugins.ml2.managers [req-f228e4bb-0808-42b5-9628-0b2cd9ad1c92 - - - - -] Failed to bind port fcb2ecbe-07ba-41a1-8c5e-7dac6577d58b on host node-3.domain.tld for vnic_type normal using segments [{'segmentation_id': None, 'physical_network': u'physnet1', 'id': u'9c2c66a2-557c-4547-912a-1f043ea76d9f', 'network_type': u'flat'}]
> 2016-08-19 07:29:30.171 23329 INFO neutron.plugins.ml2.plugin [req-f228e4bb-0808-42b5-9628-0b2cd9ad1c92 - - - - -] Attempt 10 to bind port fcb2ecbe-07ba-41a1-8c5e-7dac6577d58b
> 2016-08-19 07:29:30.178 23329 ERROR networking_odl.ml2.network_topology [req-f228e4bb-0808-42b5-9628-0b2cd9ad1c92 - - - - -] Network topology element has failed binding port:
> {
>     "class": "networking_odl.ml2.ovsdb_topology.OvsdbNetworkTopologyElement",
>     "has_datapath_type_netdev": false,
>     "host_addresses": [
>         "192.168.0.4"
>     ],
>     "support_vhost_user": false,
>     "uuid": "7c5fba05-9094-4306-87ed-2e44f2edc192",
>     "valid_vif_types": [
>         "ovs"
>     ]
> }
> 2016-08-19 07:29:30.178 23329 ERROR networking_odl.ml2.network_topology Traceback (most recent call last):
> 2016-08-19 07:29:30.178 23329 ERROR networking_odl.ml2.network_topology   File "/usr/local/lib/python2.7/dist-packages/networking_odl/ml2/network_topology.py", line 117, in bind_port
> 2016-08-19 07:29:30.178 23329 ERROR networking_odl.ml2.network_topology     port_context, vif_type, self._vif_details)
> 2016-08-19 07:29:30.178 23329 ERROR networking_odl.ml2.network_topology   File "/usr/local/lib/python2.7/dist-packages/networking_odl/ml2/ovsdb_topology.py", line 173, in bind_port
> 2016-08-19 07:29:30.178 23329 ERROR networking_odl.ml2.network_topology     raise ValueError('Unable to find any valid segment in given context.')
> 2016-08-19 07:29:30.178 23329 ERROR networking_odl.ml2.network_topology ValueError: Unable to find any valid segment in given context.
> 2016-08-19 07:29:30.178 23329 ERROR networking_odl.ml2.network_topology
> 2016-08-19 07:29:30.180 23329 ERROR networking_odl.ml2.network_topology [req-f228e4bb-0808-42b5-9628-0b2cd9ad1c92 - - - - -] Unable to bind port element for given host and valid VIF types:
>         hostname: node-3.domain.tld
>         valid VIF types: vhostuser, ovs
> 2016-08-19 07:29:30.181 23329 ERROR neutron.plugins.ml2.managers [req-f228e4bb-0808-42b5-9628-0b2cd9ad1c92 - - - - -] Failed to bind port fcb2ecbe-07ba-41a1-8c5e-7dac6577d58b on host node-3.domain.tld for vnic_type normal using segments [{'segmentation_id': None, 'physical_network': u'physnet1', 'id': u'9c2c66a2-557c-4547-912a-1f043ea76d9f', 'network_type': u'flat'}]
> 2016-08-19 07:29:30.644 23329 INFO networking_odl.journal.journal [-] Syncing update port fcb2ecbe-07ba-41a1-8c5e-7dac6577d58b
>
> Thanks for helping!
>
> BR Nikolas	
>
>> -----Original Message-----
>> From: Rui Zang [mailto:rui.zang at foxmail.com]
>> Sent: Friday, August 19, 2016 4:26 AM
>> To: Nikolas Hermanns; OpenStack Development Mailing List (not for usage
>> questions)
>> Cc: Vishal Thapar; Michal Skalski; neutron-dev at lists.opendaylight.org
>> Subject: Re: [openstack-dev] [Neutron][networking-odl] New error Mitaka
>> together with ODL-Beryllium
>>
>> Cloud you give me the output of `ovs-vsctl show` on node-3?
>>
>> On 8/19/2016 5:20 AM, Nikolas Hermanns wrote:
>>> Hey,
>>>
>>> Thanks for the answer. It might be that I did not fully understand the
>> networking concept here.
>>> OVS on the host node-3 is as well controlled by opendaylight. And
>> opendaylight sets up the external network as well. But it is still a flat network
>> without segmentation. As far as I understood it, it is the port which connects
>> node-3 with the external network. But networking-odl from the beginning
>> onwards declines to bind this port.
>>>
>>> That is my understanding. But I think I am not fully correct.
>>>
>>> BR Nikolas
>>>
>>>> -----Original Message-----
>>>> From: Rui Zang [mailto:rui.zang at foxmail.com]
>>>> Sent: Thursday, August 18, 2016 9:23 AM
>>>> To: OpenStack Development Mailing List (not for usage questions)
>>>> Cc: Vishal Thapar; Nikolas Hermanns; Michal Skalski; neutron-
>>>> dev at lists.opendaylight.org
>>>> Subject: Re: [openstack-dev] [Neutron][networking-odl] New error
>>>> Mitaka together with ODL-Beryllium
>>>>
>>>> Hi Nikolas,
>>>>
>>>> First of all, neutron-dev at lists.opendaylight.org (copied) might be a
>>>> better place to ask networking-odl questions.
>>>>
>>>> It seems that the external network you described is not managed by
>>>> OpenDaylight, so it failed port binding.
>>>>
>>>> You probably want to configure multiple mechanism drivers, say if
>>>> physnet1 is connected by ovs br-xxx on  node-3.domain.tld, you could
>>>> run ovs agent on that host and configure bridge_mappings correctly.
>>>> The openvswitch mechanism driver would succeed the port binding.
>>>>
>>>> Thanks,
>>>> Zang, Rui
>>>>
>>>> On 8/17/2016 7:38 PM, Nikolas Hermanns wrote:
>>>>> Hey Networking-ODL folks,
>>>>>
>>>>> I just setup a Mirantis 9.0 release together with Opendaylight Beryllium.
>>>> Using networking-odl v2 I see constantly the error:
>>>>> 2016-08-17 11:28:07.927 4040 ERROR neutron.plugins.ml2.managers
>>>>> [req-7e834676-81b4-479b-ad45-fa39f0fabed3 - - - - -] Failed to bind
>>>>> port faeaa465-6f08-4097-b173-48636cc71539 on host node-3.domain.tld
>>>>> for vnic_type normal using segments [{'segmentation_id': None,
>>>>> 'physical_network': u'physnet1', 'id':
>>>>> u'58d9518c-5664-4099-bcd1-b7818bea853b', 'network_type': u'flat'}]
>>>>> 2016-08-17 11:28:07.937 4040 ERROR
>>>> networking_odl.ml2.network_topology [req-7e834676-81b4-479b-ad45-
>>>> fa39f0fabed3 - - - - -] Network topology element has failed binding port:
>>>>> 2016-08-17 11:28:07.937 4040 ERROR
>>>> networking_odl.ml2.network_topology Traceback (most recent call last):
>>>>> 2016-08-17 11:28:07.937 4040 ERROR
>>>> networking_odl.ml2.network_topology   File
>> "/usr/local/lib/python2.7/dist-
>>>> packages/networking_odl/ml2/network_topology.py", line 117, in
>>>> bind_port
>>>>> 2016-08-17 11:28:07.937 4040 ERROR
>>>> networking_odl.ml2.network_topology     port_context, vif_type,
>>>> self._vif_details)
>>>>> 2016-08-17 11:28:07.937 4040 ERROR
>>>> networking_odl.ml2.network_topology   File
>> "/usr/local/lib/python2.7/dist-
>>>> packages/networking_odl/ml2/ovsdb_topology.py", line 172, in
>>>> bind_port
>>>>> 2016-08-17 11:28:07.937 4040 ERROR
>>>> networking_odl.ml2.network_topology     raise ValueError('Unable to find
>>>> any valid segment in given context.')
>>>>> 2016-08-17 11:28:07.937 4040 ERROR
>>>> networking_odl.ml2.network_topology ValueError: Unable to find any
>>>> valid segment in given context.
>>>>> 2016-08-17 11:28:07.937 4040 ERROR
>>>> networking_odl.ml2.network_topology
>>>>> 2016-08-17 11:28:07.938 4040 ERROR
>>>> networking_odl.ml2.network_topology [req-7e834676-81b4-479b-ad45-
>>>> fa39f0fabed3 - - - - -] Unable to bind port element for given host
>>>> and valid VIF
>>>> types:
>>>>> 2016-08-17 11:28:07.939 4040 ERROR neutron.plugins.ml2.managers
>>>>> [req-7e834676-81b4-479b-ad45-fa39f0fabed3 - - - - -] Failed to bind
>>>>> port faeaa465-6f08-4097-b173-48636cc71539 on host node-3.domain.tld
>>>>> for vnic_type normal using segments [{'segmentation_id': None,
>>>>> 'physical_network': u'physnet1', 'id':
>>>>> u'58d9518c-5664-4099-bcd1-b7818bea853b', 'network_type': u'flat'}]
>>>>>
>>>>> Looking at the code I saw that you can only bind ports which have a
>>>>> valid
>>>> segmentation:
>>>>> /usr/local/lib/python2.7/dist-
>>>> packages/networking_odl/ml2/ovsdb_topology.py(151)bind_port()
>>>>>     def bind_port(self, port_context, vif_type, vif_details):
>>>>>
>>>>>         port_context_id = port_context.current['id']
>>>>>         network_context_id = port_context.network.current['id']
>>>>>         # Bind port to the first valid segment
>>>>>         for segment in port_context.segments_to_bind:
>>>>>             if self._is_valid_segment(segment): <-------
>>>>>                 # Guest best VIF type for given host
>>>>>                 vif_details = self._get_vif_details(
>>>>>                     vif_details=vif_details, port_context_id=port_context_id,
>>>>>                     vif_type=vif_type)
>>>>>                 LOG.debug(
>>>>>                     'Bind port with valid segment:\n'
>>>>>                     '\tport: %(port)r\n'
>>>>>                     '\tnetwork: %(network)r\n'
>>>>>                     '\tsegment: %(segment)r\n'
>>>>>                     '\tVIF type: %(vif_type)r\n'
>>>>>                     '\tVIF details: %(vif_details)r',
>>>>>                     {'port': port_context_id,
>>>>>                      'network': network_context_id,
>>>>>                      'segment': segment, 'vif_type': vif_type,
>>>>>                      'vif_details': vif_details})
>>>>>                 port_context.set_binding(
>>>>>                     segment[driver_api.ID], vif_type, vif_details,
>>>>>                     status=n_const.PORT_STATUS_ACTIVE)
>>>>>                 return
>>>>>
>>>>>         raise ValueError('Unable to find any valid segment in given
>>>>> context.')
>>>>>
>>>>> A valid segmentation is defined by:
>>>>> [constants.TYPE_LOCAL, constants.TYPE_GRE, constants.TYPE_VXLAN,
>>>>> constants.TYPE_VLAN]
>>>>>
>>>>> The port which I try to bind here is a port on an external network
>>>>> which is
>>>> flat since we do not have segmentation for external network. Any idea
>>>> why it is changed that I can bind this port?
>>>>>
>>>>> BR Nikolas
>>>>>
>>>>>
>>>>
>> __________________________________________________________
>>>> ____________
>>>>> ____ OpenStack Development Mailing List (not for usage questions)
>>>>> Unsubscribe:
>>>>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>>>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>>>>
>>>>
>>>
>>>
>>
>
>





More information about the OpenStack-dev mailing list