[ovs-discuss] OVN patch port for localnet can't be created

Hui Xiang xianghuir at gmail.com
Thu Nov 9 08:55:58 UTC 2017


Thanks Ben.

After adding sbrec_port_binding_add_clause_type(&pb, OVSDB_F_EQ,
"localnet"); in the update_sb_monitors() function, the patch ports for
localnet can be created,
but that is very confused when debugging the program, initially this
hypervisor is set as the gateway chassis where other vms spawned in other
hypervisor can go dnat_and_snat
through this node that without any vm spawned. In the begginging the patch
ports are created successfully, then I booted two vms, assigned
floatiingips, they are not recheable, so I begin to do ofproto/trace,
during that time, the patch ports suddenly deleted and can't be created
well. The GDB showed that no localnet type binding can be found from ovn sb
idl, I
am not quite understand the ovn sb idl update/monitor logistic so far.
Anyway probably my environment is messed up, I have re-create the
environment and try to do again.


On Wed, Nov 8, 2017 at 11:11 AM, Ben Pfaff <blp at ovn.org> wrote:

> Is update_sb_monitors() in ovn-controller.c not doing the right thing to
> ensure that localnet ports are present?  That is the first place to
> look, I think.
>
> On Tue, Nov 07, 2017 at 04:36:12PM +0800, Hui Xiang wrote:
> > Hi folks,
> >
> >   When I am running ovn in one of my node having the gateway port
> connected
> > external network via localnet, the patch port can't be created between
> > br-ex(set by ovn-bridge-mappings) with br-int, after gdb, it seems the
> > result get from SBREC_PORT_BINDING_FOR_EACH (binding, ctx->ovnsb_idl)
> > doesn't include 'localnet' binding type, however it does exist from
> > ovn-sbctl list port_binding, either I am missing any configuration to
> make
> > it work or this is a bug.
> >
> >   Please have a look and thank much.
> >
> > external_ids        : {hostname="node-1.domain.tld",
> > ovn-bridge-mappings="physnet1:br-ex", ovn-encap-ip="168.254.101.10",
> > ovn-encap-type=geneve, ovn-remote="tcp:192.168.0.2:6642",
> > rundir="/var/run/openvswitch",
> > system-id="88596f9f-e326-4e15-ae91-8cc014e7be86"}
> > iface_types         : [geneve, gre, internal, lisp, patch, stt, system,
> > tap, vxlan]
> >
> > (gdb) n
> > 181             if (!strcmp(binding->type, "localnet")) {
> > 4: binding->type = 0x55e7189608b0 "patch"
> > (gdb) display binding->logical_port
> > 5: binding->logical_port = 0x55e718960650
> > "b3edbc9a-3248-43e5-b84e-01689a9c83e2"
> > (gdb) n
> > 183             } else if (!strcmp(binding->type, "l2gateway")) {
> > 5: binding->logical_port = 0x55e718960650
> > "b3edbc9a-3248-43e5-b84e-01689a9c83e2"
> > 4: binding->type = 0x55e7189608b0 "patch"
> > (gdb)
> > 193                 continue;
> > 5: binding->logical_port = 0x55e718960650
> > "b3edbc9a-3248-43e5-b84e-01689a9c83e2"
> > 4: binding->type = 0x55e7189608b0 "patch"
> > (gdb)
> > 179         SBREC_PORT_BINDING_FOR_EACH (binding, ctx->ovnsb_idl) {
> > 5: binding->logical_port = 0x55e718960650
> > "b3edbc9a-3248-43e5-b84e-01689a9c83e2"
> > 4: binding->type = 0x55e7189608b0 "patch"
> > (gdb)
> > 181             if (!strcmp(binding->type, "localnet")) {
> > 5: binding->logical_port = 0x55e7189622d0
> > "lrp-3a938edc-8809-4b79-b1a6-8145066e4fe3"
> > 4: binding->type = 0x55e718962380 "patch"
> > (gdb)
> > 183             } else if (!strcmp(binding->type, "l2gateway")) {
> > 5: binding->logical_port = 0x55e7189622d0
> > "lrp-3a938edc-8809-4b79-b1a6-8145066e4fe3"
> > 4: binding->type = 0x55e718962380 "patch"
> > (gdb)
> > 193                 continue;
> > 5: binding->logical_port = 0x55e7189622d0
> > "lrp-3a938edc-8809-4b79-b1a6-8145066e4fe3"
> > 4: binding->type = 0x55e718962380 "patch"
> > (gdb)
> > 179         SBREC_PORT_BINDING_FOR_EACH (binding, ctx->ovnsb_idl) {
> > 5: binding->logical_port = 0x55e7189622d0
> > "lrp-3a938edc-8809-4b79-b1a6-8145066e4fe3"
> > 4: binding->type = 0x55e718962380 "patch"
> > (gdb)
> > 181             if (!strcmp(binding->type, "localnet")) {
> > 5: binding->logical_port = 0x55e718962820
> > "lrp-b3edbc9a-3248-43e5-b84e-01689a9c83e2"
> > 4: binding->type = 0x55e7189628d0 "patch"
> > (gdb)
> > 183             } else if (!strcmp(binding->type, "l2gateway")) {
> > 5: binding->logical_port = 0x55e718962820
> > "lrp-b3edbc9a-3248-43e5-b84e-01689a9c83e2"
> > 4: binding->type = 0x55e7189628d0 "patch"
> > (gdb)
> > 193                 continue;
> > 5: binding->logical_port = 0x55e718962820
> > "lrp-b3edbc9a-3248-43e5-b84e-01689a9c83e2"
> > 4: binding->type = 0x55e7189628d0 "patch"
> > (gdb)
> > 179         SBREC_PORT_BINDING_FOR_EACH (binding, ctx->ovnsb_idl) {
> > 5: binding->logical_port = 0x55e718962820
> > "lrp-b3edbc9a-3248-43e5-b84e-01689a9c83e2"
> > (gdb) n
> > 181             if (!strcmp(binding->type, "localnet")) {
> > 4: binding->type = 0x55e7189608b0 "patch"
> > (gdb) display binding->logical_port
> > 5: binding->logical_port = 0x55e718960650
> > "b3edbc9a-3248-43e5-b84e-01689a9c83e2"
> > (gdb) n 183             } else if (!strcmp(binding->type, "l2gateway")) {
> > 5: binding->logical_port = 0x55e718960650
> > "b3edbc9a-3248-43e5-b84e-01689a9c83e2"
> > 4: binding->type = 0x55e7189608b0 "patch"
> > (gdb)
> > 193                 continue;
> > 5: binding->logical_port = 0x55e718960650
> > "b3edbc9a-3248-43e5-b84e-01689a9c83e2"
> > 4: binding->type = 0x55e7189608b0 "patch"
> > (gdb)
> > 179         SBREC_PORT_BINDING_FOR_EACH (binding, ctx->ovnsb_idl) {
> > 5: binding->logical_port = 0x55e718960650
> > "b3edbc9a-3248-43e5-b84e-01689a9c83e2"
> > 4: binding->type = 0x55e7189608b0 "patch"
> > (gdb)
> > 181             if (!strcmp(binding->type, "localnet")) {
> > 5: binding->logical_port = 0x55e7189622d0
> > "lrp-3a938edc-8809-4b79-b1a6-8145066e4fe3"
> > 4: binding->type = 0x55e718962380 "patch"
> > (gdb)
> > 183             } else if (!strcmp(binding->type, "l2gateway")) { 5:
> > binding->logical_port = 0x55e7189622d0
> > "lrp-3a938edc-8809-4b79-b1a6-8145066e4fe3"
> > 4: binding->type = 0x55e718962380 "patch"
> > (gdb)
> > 193                 continue;
> > 5: binding->logical_port = 0x55e7189622d0
> > "lrp-3a938edc-8809-4b79-b1a6-8145066e4fe3"
> > 4: binding->type = 0x55e718962380 "patch"
> > (gdb)
> > 179         SBREC_PORT_BINDING_FOR_EACH (binding, ctx->ovnsb_idl) {
> > 5: binding->logical_port = 0x55e7189622d0
> > "lrp-3a938edc-8809-4b79-b1a6-8145066e4fe3"
> > 4: binding->type = 0x55e718962380 "patch"
> > (gdb)
> > 181             if (!strcmp(binding->type, "localnet")) {
> > 5: binding->logical_port = 0x55e718962820
> > "lrp-b3edbc9a-3248-43e5-b84e-01689a9c83e2"
> > 4: binding->type = 0x55e7189628d0 "patch"
> > (gdb)
> > 183             } else if (!strcmp(binding->type, "l2gateway")) {
> > 5: binding->logical_port = 0x55e718962820
> > "lrp-b3edbc9a-3248-43e5-b84e-01689a9c83e2"
> > 4: binding->type = 0x55e7189628d0 "patch"
> > (gdb)
> > 193                 continue;
> > 5: binding->logical_port = 0x55e718962820
> > "lrp-b3edbc9a-3248-43e5-b84e-01689a9c83e2"
> > 4: binding->type = 0x55e7189628d0 "patch"
> > (gdb)
> > 179         SBREC_PORT_BINDING_FOR_EACH (binding, ctx->ovnsb_idl) {
> > 5: binding->logical_port = 0x55e718962820
> > "lrp-b3edbc9a-3248-43e5-b84e-01689a9c83e2"
> > 4: binding->type = 0x55e7189628d0 "patch"
> > (gdb)
> > 181             if (!strcmp(binding->type, "localnet")) {
> > 5: binding->logical_port = 0x55e718961100
> > "3a938edc-8809-4b79-b1a6-8145066e4fe3"
> > 4: binding->type = 0x55e718961370 "patch"
> > (gdb)
> > 183             } else if (!strcmp(binding->type, "l2gateway")) {
> > 5: binding->logical_port = 0x55e718961100
> > "3a938edc-8809-4b79-b1a6-8145066e4fe3"
> > 193                 continue;
> > 5: binding->logical_port = 0x55e718961100
> > "3a938edc-8809-4b79-b1a6-8145066e4fe3"
> > 4: binding->type = 0x55e718961370 "patch"
> > (gdb)
> > 179         SBREC_PORT_BINDING_FOR_EACH (binding, ctx->ovnsb_idl) {
> > 5: binding->logical_port = 0x55e718961100
> > "3a938edc-8809-4b79-b1a6-8145066e4fe3"
> > 4: binding->type = 0x55e718961370 "patch"
> > (gdb)
> > 181             if (!strcmp(binding->type, "localnet")) {
> > 5: binding->logical_port = 0x55e718961b70
> > "cr-lrp-b3edbc9a-3248-43e5-b84e-01689a9c83e2"
> > 4: binding->type = 0x55e718961c60 "chassisredirect"
> > (gdb)
> > 183             } else if (!strcmp(binding->type, "l2gateway")) {
> > (gdb)
> > 193                 continue;
> > 5: binding->logical_port = 0x55e718961b70
> > "cr-lrp-b3edbc9a-3248-43e5-b84e-01689a9c83e2"
> > 4: binding->type = 0x55e718961c60 "chassisredirect"
> > (gdb)
> > 179         SBREC_PORT_BINDING_FOR_EACH (binding, ctx->ovnsb_idl) {
> > 5: binding->logical_port = 0x55e718961b70
> > "cr-lrp-b3edbc9a-3248-43e5-b84e-01689a9c83e2"
> > 4: binding->type = 0x55e718961c60 "chassisredirect"
> > (gdb)
> > 222         shash_destroy(&bridge_mappings);
> >
> > [root at node-1 ~]# ovn-sbctl list port_binding
> > _uuid               : a72d3348-ed6f-4e98-9d79-1515f7653ec3
> > chassis             : []
> > datapath            : 47447f44-5c5f-4501-9802-0e7822031f32
> > gateway_chassis     : []
> > logical_port        : "b3edbc9a-3248-43e5-b84e-01689a9c83e2"
> > mac                 : [router]
> > nat_addresses       : []
> > options             : {peer="lrp-b3edbc9a-3248-43e5-b84e-01689a9c83e2"}
> > parent_port         : []
> > tag                 : []
> > tunnel_key          : 2
> > type                : patch
> >
> > gateway_chassis     : []
> > logical_port        : "d94cb413-f53a-4943-9590-c75e60e63568"
> > mac                 : [""]
> > nat_addresses       : []
> > options             : {}
> > parent_port         : []
> > tag                 : []
> > tunnel_key          : 3
> > type                : ""
> >
> > _uuid               : 45d6d9ac-c432-406e-9e23-bf0abf0add3c
> > chassis             : []
> > datapath            : 47447f44-5c5f-4501-9802-0e7822031f32
> > external_ids        : {}
> > gateway_chassis     : []
> > logical_port        : "provnet-c6f21507-53c8-459e-9690-1257d389246f"
> > mac                 : [unknown]
> > nat_addresses       : []
> > options             : {network_name="physnet1"}
> > parent_port         : []
> > tag                 : []
> > tunnel_key          : 1
> > type                : *localnet *
> >
> > _uuid               : 60f823bd-ca39-48f1-bd04-6669d9a48e3d
> > gateway_chassis     : []
> > logical_port        : "18ea6e6a-76f3-4a10-9907-1d1dda038988"
> > mac                 : ["fa:16:3e:c1:f5:95 192.168.10.2"]
> > nat_addresses       : []
> > options             : {}
> > parent_port         : []
> > tag                 : []
> > tunnel_key          : 1
> > type                : ""
> >
> > _uuid               : c56b8f65-a11b-471f-ad8a-935602a1816c
> > chassis             : []
> > datapath            : ddee5a44-0cdc-440a-ab1b-c0d9a6b78ef9
> > external_ids        : {}
> > gateway_chassis     : []
> > logical_port        : "lrp-3a938edc-8809-4b79-b1a6-8145066e4fe3"
> > mac                 : []
> > nat_addresses       : []
> > options             : {peer="3a938edc-8809-4b79-b1a6-8145066e4fe3"}
> > parent_port         : []
> > tag                 : []
> > tunnel_key          : 3
> > type                : patch
> >
> > _uuid               : 4b603b6e-3420-41de-9382-b9b3fb4d5b35
> > gateway_chassis     : []
> > logical_port        : "3a938edc-8809-4b79-b1a6-8145066e4fe3"
> > mac                 : [router]
> > nat_addresses       : []
> > options             : {peer="lrp-3a938edc-8809-4b79-b1a6-8145066e4fe3"}
> > parent_port         : []
> > tag                 : []
> > tunnel_key          : 2
> > type                : patch
> >
> > _uuid               : 371de3de-20d4-4d76-8c0a-dbddd2ff2632
> > chassis             : []
> > gateway_chassis     : []
> > logical_port        : "lrp-b3edbc9a-3248-43e5-b84e-01689a9c83e2"
> > mac                 : []
> > nat_addresses       : []
> > options             : {peer="b3edbc9a-3248-43e5-b84e-01689a9c83e2"}
> > parent_port         : []
> > tag                 : []
> > tunnel_key          : 1
> > type                : patch
> >
> > _uuid               : f2a93fee-7ec0-4302-9db3-64d13037fa7b
> > chassis             : 391e99d0-fcef-4453-867a-875d54ddc316
> > datapath            : 6d042f46-86be-49ff-84f9-e923bb4b903a
> > external_ids        : {name="nic_1509949090.74", "neutron:cidrs"="
> > 192.168.10.3/24",
> > "neutron:device_id"="58f85bf0-e737-423a-ac05-f1a8d223eeab",
> > "neutron:port_name"="nic_1509949090.74",
> > "neutron:project_id"="0a87bdf15bcd4124944fde70f787cc49"}
> > gateway_chassis     : []
> > logical_port        : "989a951d-a8fc-4231-8494-c0ede61da7c2"
> > mac                 : ["fa:16:3e:e9:0e:15 192.168.10.3"]
> > nat_addresses       : []
> > options             : {}
> > parent_port         : []
> > tag                 : []
> > tunnel_key          : 3
> > type                : ""
> >
> > _uuid               : 6d396447-0ac4-4af1-bfaa-6746bfa6063b
> > chassis             : []
> > datapath            : ddee5a44-0cdc-440a-ab1b-c0d9a6b78ef9
> > external_ids        : {}
> > gateway_chassis     : [889addfe-e29b-4c08-a193-e33da211e3e6,
> > d9de02b0-df2c-4000-b91c-fed0cdc7168d]
> > logical_port        : "cr-lrp-b3edbc9a-3248-43e5-b84e-01689a9c83e2"
> > mac                 : []
> > nat_addresses       : []
> > options             :
> > {distributed-port="lrp-b3edbc9a-3248-43e5-b84e-01689a9c83e2"}
> > parent_port         : []
> > tag                 : []
> > tunnel_key          : 2
> > type                : chassisredirect
>
> > _______________________________________________
> > discuss mailing list
> > discuss at openvswitch.org
> > https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-discuss/attachments/20171109/1e4ec104/attachment-0001.html>


More information about the discuss mailing list