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@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 > disc...@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-discuss _______________________________________________ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss