On 9/20/17, 4:45 AM, "Guoshuai Li" <l...@dtdream.com> wrote:
yes, Distributed gateway. I config my gateway router port with 'redirect-chassis'option in ovn-nb. Logical_Router_Port table _uuid enabled external_ids gateway_chassis mac name networks options peer ------------------------------------ ------- ------------ --------------- ------------------- ------------------------------------------ -------------------- -------------------------------------------------------------------------------------- ---- 85c04f4e-6109-4049-b651-3a1495a7901c [] {} [] "fa:16:3e:5d:65:b2" "lrp-8712a984-c019-4362-befe-8969e5fd0f11" ["192.168.2.254/24"] {} [] 93324dc3-6863-4831-b990-86645f4b234b [] {} [] "fa:16:3e:9f:10:13" "lrp-107688b6-07e5-4a5b-9fa7-a1b25f56b6de" ["10.157.13.0/24"] {physical-network="physnet2", redirect-chassis="f0e5148b-b6a8-46a1-9561-de76c22245bd"} [] 32de97cf-1de6-4b92-b8dc-05c95b920587 [] {} [] "fa:16:3e:d4:cb:56" "lrp-6c2f6700-cc1e-44c6-ada7-da2889aa9278" ["10.157.13.0/24"] {physical-network="physnet2", redirect-chassis="f0e5148b-b6a8-46a1-9561-de76c22245bd"} [] 55824043-c7d9-40f7-8530-0872efc47edc [] {} [] "fa:16:3e:e4:ec:cd" "lrp-e84181ad-fa35-4b34-81e8-1e44218fc504" ["192.168.0.254/24"] {} [] My kernel datapath flows, less than DPDK: recirc_id(0),tunnel(tun_id=0x2,src=10.157.145.211,dst=10.157.12.111,geneve({class=0x102,type=0x80,len=4,0x30005/0x7fffffff}),flags(-df+csum+key)),in_port(2),eth_type(0x0800),ipv4(src=192.168.0.6,frag=no), packets:21, bytes:2058, used:0.637s, actions:ct(zone=10,nat),recirc(0x24) recirc_id(0x24),tunnel(tun_id=0x2,src=10.157.145.211,dst=10.157.12.111,geneve({}{}),flags(-df+csum+key)),in_port(2),eth_type(0x0800),ipv4(src=192.168.0.6,frag=no), packets:21, bytes:2058, used:0.638s, actions:ct(commit,zone=3,nat(src=10.157.13.4)),recirc(0x25) recirc_id(0x25),tunnel(tun_id=0x2,src=10.157.145.211,dst=10.157.12.111,geneve({}{}),flags(-df+csum+key)),in_port(2),eth(src=00:00:00:00:00:00/01:00:00:00:00:00,dst=fa:16:3e:d4:cb:56),eth_type(0x0800),ipv4(src=10.157.13.0/255.255.255.128,dst=10.157.13.7,proto=1,ttl=63,frag=no), packets:21, bytes:2058, used:0.638s, actions:ct(zone=3,nat),recirc(0x26) recirc_id(0x26),tunnel(tun_id=0x2,src=10.157.145.211,dst=10.157.12.111,geneve({}{}),flags(-df+csum+key)),in_port(2),eth_type(0x0800),ipv4(dst=10.157.13.7,frag=no), packets:21, bytes:2058, used:0.638s, actions:ct(commit,zone=10,nat(dst=192.168.0.10)),recirc(0x27) recirc_id(0x27),tunnel(tun_id=0x2,src=10.157.145.211,dst=10.157.12.111,geneve({class=0x102,type=0x80,len=4,0x30005}),flags(-df+csum+key)),in_port(2),ct_state(-new+est-rel-rpl-inv+trk),ct_label(0/0x1),eth(src=fa:16:3e:d4:cb:56,dst=fa:16:3e:d4:cb:56),eth_type(0x0800),ipv4(dst=192.168.0.10,tos=0/0x3,ttl=63,frag=no), packets:20, bytes:1960, used:0.638s, actions:set(tunnel(tun_id=0x1,dst=10.157.145.212,ttl=64,tp_src=37366,tp_dst=6081,geneve({class=0x102,type=0x80,len=4,0x10002}),flags(df|csum|key))),set(eth(src=fa:16:3e:e4:ec:cd,dst=fa:16:3e:ed:4b:8a)),set(ipv4(dst=192.168.0.10,tos=0/0x3,ttl=62)),2 [Darrell] The difference is the native tunneling, so it seems to make sense. Does #define MAX_RECIRC_DEPTH 6 work in all cases that you checked ? Maybe setting to 7 leaves a margin of error and can also can alert if there is a bug or inefficiency ? 在 2017/9/20 9:23, Darrell Ball : > Distributed gateway ? > What do the kernel datapath flows look like ? > > > On 9/18/17, 11:29 PM, "ovs-dev-boun...@openvswitch.org on behalf of Guoshuai Li" <ovs-dev-boun...@openvswitch.org on behalf of l...@dtdream.com> wrote: > > In an ovn gateway node with DPDK, the RECIRC_DEPTH may be greater than 5. > > Scenes: > VM ping self floating IP, or > VM ping Floating IP of VMs with the same network. > > It need process UNDNAT SNAT in LRouter egress and > UNSNAT DNAT in LRouter ingress, and > output to geneve tunnel also need recirc. > > This has an WARN: > dpif_netdev(pmd36)|WARN|Packet dropped. Max recirculation depth exceeded. > --- > lib/dpif-netdev.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c > index ca74df8c7..2ad8c3143 100644 > --- a/lib/dpif-netdev.c > +++ b/lib/dpif-netdev.c > @@ -82,7 +82,7 @@ VLOG_DEFINE_THIS_MODULE(dpif_netdev); > > #define FLOW_DUMP_MAX_BATCH 50 > /* Use per thread recirc_depth to prevent recirculation loop. */ > -#define MAX_RECIRC_DEPTH 5 > +#define MAX_RECIRC_DEPTH 10 > > I guess the MAX_RECIRC_DEPTH should be as small as possible for valid use cases – 6 ? > The check is ‘less than’. > > DEFINE_STATIC_PER_THREAD_DATA(uint32_t, recirc_depth, 0) > > /* Configuration parameters. */ > -- > > This is my flows by ovs-appctl dpctl/dump-flows: > tunnel(tun_id=0x2,src=10.157.145.211,dst=10.157.145.214,geneve({class=0x102,type=0x80,len=4,0x30005/0x7fffffff}),flags(-df+csum+key)),recirc_id(0),in_port(7),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=192.168.0.6,frag=no), packets:3, bytes:294, used:0.242s, actions:ct(zone=10,nat),recirc(0x10) > tunnel(tun_id=0x2,src=10.157.145.211,dst=10.157.145.214,geneve({}),flags(-df+csum+key)),recirc_id(0x10),in_port(7),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=192.168.0.6,frag=no), packets:3, bytes:294, used:0.242s, actions:ct(commit,zone=3,nat(src=10.157.13.4)),recirc(0x11) > tunnel(tun_id=0x2,src=10.157.145.211,dst=10.157.145.214,geneve({}),flags(-df+csum+key)),recirc_id(0x11),in_port(7),packet_type(ns=0,id=0),eth(src=fa:16:3e:d4:cb:56/01:00:00:00:00:00,dst=fa:16:3e:d4:cb:56),eth_type(0x0800),ipv4(src=10.157.13.4/255.255.255.128,dst=10.157.13.7,proto=1,ttl=63,frag=no), packets:3, bytes:294, used:0.242s, actions:ct(zone=3,nat),recirc(0x12) > tunnel(tun_id=0x2,src=10.157.145.211,dst=10.157.145.214,geneve({}),flags(-df+csum+key)),recirc_id(0x12),in_port(7),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=10.157.13.7,frag=no), packets:3, bytes:294, used:0.242s, actions:ct(commit,zone=10,nat(dst=192.168.0.10)),recirc(0x13) > tunnel(tun_id=0x2,src=10.157.145.211,dst=10.157.145.214,geneve({class=0x102,type=0x80,len=4,0x30005}),flags(-df+csum+key)),ct_state(-new+est-rel-rpl-inv+trk),ct_label(0/0x1),recirc_id(0x13),in_port(7),packet_type(ns=0,id=0),eth(src=fa:16:3e:d4:cb:56,dst=fa:16:3e:d4:cb:56),eth_type(0x0800),ipv4(dst=192.168.0.10,tos=0/0x3,ttl=63,frag=no), packets:2, bytes:196, used:0.241s, actions:set(eth(src=fa:16:3e:e4:ec:cd,dst=fa:16:3e:ed:4b:8a)),set(ipv4(dst=192.168.0.10,tos=0/0x3,ttl=62)),clone(tnl_push(tnl_port(7),header(size=58,type=5,eth(dst=6c:92:bf:13:be:0a,src=6c:92:bf:04:4c:b2,dl_type=0x0800),ipv4(src=10.157.145.214,dst=10.157.145.212,proto=17,tos=0,ttl=64,frag=0x4000),udp(src=0,dst=6081,csum=0xffff),geneve(crit,vni=0x1,options({class=0x102,type=0x80,len=4,0x10002}))),out_port(4)),push_vlan(vid=2515,pcp=0),hash(hash_l4(0)),recirc(0x1)) > recirc_id(0x1),dp_hash(0x79f1a62d/0xff),in_port(4),packet_type(ns=0,id=0),eth_type(0x8100),vlan(vid=2515,pcp=0),encap(eth_type(0x0800),ipv4(frag=no)), packets:2, bytes:320, used:0.242s, actions:5 > > > 2.13.2.windows.1 > > _______________________________________________ > dev mailing list > d...@openvswitch.org > https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.openvswitch.org_mailman_listinfo_ovs-2Ddev&d=DwICAg&c=uilaK90D4TOVoH58JNXRgQ&r=BVhFA09CGX7JQ5Ih-uZnsw&m=1O8U7S-DkEKfm_1rUi8wJWAG6DdtrvTUn3WqjRZ44jg&s=y3uThLIiu-kTEYgJZtkU7dfmyJ1BmhfSP0xFgYuBawo&e= > > > > > > _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev