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

2017-11-10 Thread Hui Xiang
By manually adding nat-addresses=router for logical router type switch port
make it go further, above are not the problem now, thanks all.

On Thu, Nov 9, 2017 at 5:54 PM, Hui Xiang  wrote:

> The ovn-trace target to vm floatingip is finally identified as MC_unknown
> because there are only three lflows in the lswitch for public net, does it
> correct for normal case, where should I look next?
>
> lflow:
>   table=15(ls_in_l2_lkup  ), priority=100  , match=(eth.mcast),
> action=(outport = "_MC_flood"; output;)
>   table=15(ls_in_l2_lkup  ), priority=50   , match=(eth.dst ==
> fa:16:3e:2e:ea:e9 && 
> is_chassis_resident("cr-lrp-640d0475-ff83-47b7-8a4d-9ea0e770fb24")),
> action=(outport = "640d0475-ff83-47b7-8a4d-9ea0e770fb24"; output;)
>   table=15(ls_in_l2_lkup  ), priority=0, match=(1),
> action=(outport = "_MC_unknown"; output;)
>
>
> vm floatingip detail:
> | b20f8e5d-8e91-4f12-84b1-409728706844 |   |
> fa:16:3e:23:33:fa | {"subnet_id": "3659502b-a41b-4c3f-964c-457e6782ae79",
> "ip_address": "172.16.0.131"} |
>
>
>
> [root@node-1 ~]# ovn-trace --detail 9ac587cd-becc-4584-99c9-24282f8707e2
> 'inport == "provnet-668bf1b8-cfec-44d1-b659-30a42c83e29f" && eth.src ==
> 96:95:d8:7d:b9:4c && ip4.src == 172.16.0.2 && eth.dst == fa:16:3e:23:33:fa
> && ip4.dst == 172.16.0.131 && ip.ttl == 32'
> # ip,reg14=0x1,vlan_tci=0x,dl_src=96:95:d8:7d:b9:4c,dl_
> dst=fa:16:3e:23:33:fa,nw_src=172.16.0.2,nw_dst=172.16.0.
> 131,nw_proto=0,nw_tos=0,nw_ecn=0,nw_ttl=32
>
> ingress(dp="public", inport="provnet-668bf1")
> -
>  0. ls_in_port_sec_l2 (ovn-northd.c:3556): inport == "provnet-668bf1",
> priority 50, uuid 25b99b9a
> next;
> 10. ls_in_arp_rsp (ovn-northd.c:3588): inport == "provnet-668bf1",
> priority 100, uuid b3607f68
> next;
> 15. ls_in_l2_lkup (ovn-northd.c:3975): 1, priority 0, uuid 83de4750
> outport = "_MC_unknown";
> output;
>
> multicast(dp="public", mcgroup="_MC_unknown")
> -
>
> egress(dp="public", inport="provnet-668bf1", outport="provnet-668bf1")
> --
> /* omitting output because inport == outport && !flags.loopback */
>
>
> On Thu, Nov 9, 2017 at 5:26 PM, Hui Xiang  wrote:
>
>> Hi Numan,
>>
>>   Yes, it is the openstack setup with networking-ovn.
>>   "ovn-nbctl list logical_router_port | grep redirect-chassis"  has
>> null, and I had followed your command to set the redirect-chassis, but
>> before that the patch ports for localnet are
>> created successfully because I am recreating the environment again.
>>
>>Last time the patch ports are deleted by not clear reason when I am
>> doing ofproto/trace. I am trying to do it again because the vm
>> dnat_and_snat doesn't work in my openstack
>> and ovn environment.
>>
>>   ovn: 2.8.1,  networking-ovn: master(with most latest patches)
>>
>>   VM: | dcb35bb8-12d5-444b-96ba-22b60c70f950 | A| ACTIVE | -
>>   | Running | private=20.0.0.2, 172.16.0.131 |
>>
>>
>>
>>   [root@node-1 ~]# ovn-nbctl list logical_router_port
>>   _uuid   : e0c7e73e-42a7-469c-9b01-86dd9cc5563e
>>   enabled : []
>>   external_ids: {}
>>   gateway_chassis : []
>>   mac : "fa:16:3e:b5:99:71"
>>   name: "lrp-82f21142-a15a-4cbc-9c59-c4cbf88e2348"
>>   networks: ["20.0.0.1/24"]
>>   options : {redirect-chassis="f49d19ac-d1
>> 40-44d4-9f1c-3601a23d67d1"}
>>   peer: []
>>
>>   _uuid   : 6d67d962-38a5-4a29-86b5-067dc26f78d4
>>   enabled : []
>>   external_ids: {}
>>   gateway_chassis : [22ab4c4e-3bbc-4b41-8f65-09ddc060efb0]
>>   mac : "fa:16:3e:2e:ea:e9"
>>   name: "lrp-640d0475-ff83-47b7-8a4d-9ea0e770fb24"
>>   networks: ["172.16.0.130/16"]
>>   options : {}
>>   peer: []
>>
>>   [root@node-1 ~]# ovn-nbctl show
>>   switch 9ac587cd-becc-4584-99c9-24282f8707e2
>> (neutron-668bf1b8-cfec-44d1-b659-30a42c83e29f) (aka public)
>>   port provnet-668bf1b8-cfec-44d1-b659-30a42c83e29f
>>   type: localnet
>>   addresses: ["unknown"]
>>   port 9572b4f3-0e02-4803-acab-1bf1d0b716cb (aka internal_gw)
>>   addresses: [""]
>>   port 640d0475-ff83-47b7-8a4d-9ea0e770fb24
>>   type: router
>>   router-port: lrp-640d0475-ff83-47b7-8a4d-9ea0e770fb24
>>   switch 1a4ccee6-86ff-4ec4-9e42-3fffa1709d59
>> (neutron-599de5c1-200d-4962-a3ae-ca3e0434cc0a) (aka private)
>>   port 6fd717e1-572e-4bad-8e74-cdda95d1ce49 (aka nic_1510210943.93)
>>   addresses: ["fa:16:3e:b9:c2:dd 20.0.0.2"]
>>   port 82f21142-a15a-4cbc-9c59-c4cbf88e2348
>>   type: router
>>   router-port: lrp-82f21142-a15a-4cbc-9c59-c4cbf88e2348
>>   router e2acff1f-b71e-4c74-83cf-0481b66a004b
>> 

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

2017-11-09 Thread Hui Xiang
The ovn-trace target to vm floatingip is finally identified as MC_unknown
because there are only three lflows in the lswitch for public net, does it
correct for normal case, where should I look next?

lflow:
  table=15(ls_in_l2_lkup  ), priority=100  , match=(eth.mcast),
action=(outport = "_MC_flood"; output;)
  table=15(ls_in_l2_lkup  ), priority=50   , match=(eth.dst ==
fa:16:3e:2e:ea:e9 &&
is_chassis_resident("cr-lrp-640d0475-ff83-47b7-8a4d-9ea0e770fb24")),
action=(outport = "640d0475-ff83-47b7-8a4d-9ea0e770fb24"; output;)
  table=15(ls_in_l2_lkup  ), priority=0, match=(1), action=(outport
= "_MC_unknown"; output;)


vm floatingip detail:
| b20f8e5d-8e91-4f12-84b1-409728706844 |   |
fa:16:3e:23:33:fa | {"subnet_id": "3659502b-a41b-4c3f-964c-457e6782ae79",
"ip_address": "172.16.0.131"} |



[root@node-1 ~]# ovn-trace --detail 9ac587cd-becc-4584-99c9-24282f8707e2
'inport == "provnet-668bf1b8-cfec-44d1-b659-30a42c83e29f" && eth.src ==
96:95:d8:7d:b9:4c && ip4.src == 172.16.0.2 && eth.dst == fa:16:3e:23:33:fa
&& ip4.dst == 172.16.0.131 && ip.ttl == 32'
#
ip,reg14=0x1,vlan_tci=0x,dl_src=96:95:d8:7d:b9:4c,dl_dst=fa:16:3e:23:33:fa,nw_src=172.16.0.2,nw_dst=172.16.0.131,nw_proto=0,nw_tos=0,nw_ecn=0,nw_ttl=32

ingress(dp="public", inport="provnet-668bf1")
-
 0. ls_in_port_sec_l2 (ovn-northd.c:3556): inport == "provnet-668bf1",
priority 50, uuid 25b99b9a
next;
10. ls_in_arp_rsp (ovn-northd.c:3588): inport == "provnet-668bf1", priority
100, uuid b3607f68
next;
15. ls_in_l2_lkup (ovn-northd.c:3975): 1, priority 0, uuid 83de4750
outport = "_MC_unknown";
output;

multicast(dp="public", mcgroup="_MC_unknown")
-

egress(dp="public", inport="provnet-668bf1", outport="provnet-668bf1")
--
/* omitting output because inport == outport && !flags.loopback */


On Thu, Nov 9, 2017 at 5:26 PM, Hui Xiang  wrote:

> Hi Numan,
>
>   Yes, it is the openstack setup with networking-ovn.
>   "ovn-nbctl list logical_router_port | grep redirect-chassis"  has null,
> and I had followed your command to set the redirect-chassis, but before
> that the patch ports for localnet are
> created successfully because I am recreating the environment again.
>
>Last time the patch ports are deleted by not clear reason when I am
> doing ofproto/trace. I am trying to do it again because the vm
> dnat_and_snat doesn't work in my openstack
> and ovn environment.
>
>   ovn: 2.8.1,  networking-ovn: master(with most latest patches)
>
>   VM: | dcb35bb8-12d5-444b-96ba-22b60c70f950 | A| ACTIVE | -
> | Running | private=20.0.0.2, 172.16.0.131 |
>
>
>
>   [root@node-1 ~]# ovn-nbctl list logical_router_port
>   _uuid   : e0c7e73e-42a7-469c-9b01-86dd9cc5563e
>   enabled : []
>   external_ids: {}
>   gateway_chassis : []
>   mac : "fa:16:3e:b5:99:71"
>   name: "lrp-82f21142-a15a-4cbc-9c59-c4cbf88e2348"
>   networks: ["20.0.0.1/24"]
>   options : {redirect-chassis="f49d19ac-
> d140-44d4-9f1c-3601a23d67d1"}
>   peer: []
>
>   _uuid   : 6d67d962-38a5-4a29-86b5-067dc26f78d4
>   enabled : []
>   external_ids: {}
>   gateway_chassis : [22ab4c4e-3bbc-4b41-8f65-09ddc060efb0]
>   mac : "fa:16:3e:2e:ea:e9"
>   name: "lrp-640d0475-ff83-47b7-8a4d-9ea0e770fb24"
>   networks: ["172.16.0.130/16"]
>   options : {}
>   peer: []
>
>   [root@node-1 ~]# ovn-nbctl show
>   switch 9ac587cd-becc-4584-99c9-24282f8707e2 
> (neutron-668bf1b8-cfec-44d1-b659-30a42c83e29f)
> (aka public)
>   port provnet-668bf1b8-cfec-44d1-b659-30a42c83e29f
>   type: localnet
>   addresses: ["unknown"]
>   port 9572b4f3-0e02-4803-acab-1bf1d0b716cb (aka internal_gw)
>   addresses: [""]
>   port 640d0475-ff83-47b7-8a4d-9ea0e770fb24
>   type: router
>   router-port: lrp-640d0475-ff83-47b7-8a4d-9ea0e770fb24
>   switch 1a4ccee6-86ff-4ec4-9e42-3fffa1709d59 
> (neutron-599de5c1-200d-4962-a3ae-ca3e0434cc0a)
> (aka private)
>   port 6fd717e1-572e-4bad-8e74-cdda95d1ce49 (aka nic_1510210943.93)
>   addresses: ["fa:16:3e:b9:c2:dd 20.0.0.2"]
>   port 82f21142-a15a-4cbc-9c59-c4cbf88e2348
>   type: router
>   router-port: lrp-82f21142-a15a-4cbc-9c59-c4cbf88e2348
>   router e2acff1f-b71e-4c74-83cf-0481b66a004b 
> (neutron-18bb9c8c-30f7-4ada-bd64-c02dfa198e75)
> (aka shared_router)
>   port lrp-640d0475-ff83-47b7-8a4d-9ea0e770fb24
>   mac: "fa:16:3e:2e:ea:e9"
>   networks: ["172.16.0.130/16"]
>   port lrp-82f21142-a15a-4cbc-9c59-c4cbf88e2348
>   mac: "fa:16:3e:b5:99:71"
>   networks: ["20.0.0.1/24"]
>   nat 78d9f764-ff99-4718-a8e2-9c769a26b675
>

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

2017-11-09 Thread Hui Xiang
Thanks Ben.

After adding sbrec_port_binding_add_clause_type(, 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  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
> > 

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

2017-11-08 Thread Numan Siddique
Is this openstack setup with networking-ovn ?

Can you run "ovn-nbctl list logical_router_port | grep redirect-chassis"
and make sure that networking-ovn has scheduled the gateway router port to
the desired chassis ?

May be the gateway router port is scheduled to some other chassis.

You can can run "ovn-nbctl set logical_router_port
options:redirect-chassis="CHASSIS_UUID_WHERE_YOU_WANT_TO_SCHEDULE" to
schedule it to your desired chassis.

Thanks
Numan



On Wed, Nov 8, 2017 at 8:41 AM, Ben Pfaff  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: 

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

2017-11-07 Thread Hui Xiang
Seems it even doesn't get the "" type, just only patch and chassisredirect.

gateway_chassis : []
logical_port: "d94cb413-f53a-4943-9590-c75e60e63568"
mac : [""]
nat_addresses   : []
options : {}
parent_port : []
tag : []
tunnel_key  : 3
type: ""

On Tue, Nov 7, 2017 at 4:36 PM, 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 

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

2017-11-07 Thread Hui Xiang
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 =