Hi List, Recently we are testing sFlow on OVS 2.5.0, since OVS decide whether do sample based on ingress bridge, we then enable sFlow on br-tun, and encounter following crash:
#0 0x0000000000434ca8 in dpif_sflow_received (ds=0x4266100, packet=packet@entry=0x7f3cb3fc8e18, flow=flow@entry=0x7f3cb3fd8810, odp_in_port=<optimized out>, cookie=cookie@entry=0x7f3cb3fc3440, sflow_actions=0x7f3cb3fc36c0) at ofproto/ofproto-dpif-sflow.c:1292 #1 0x00000000004366c0 in process_upcall (udpif=udpif@entry=0x23bb570, upcall=upcall@entry=0x7f3cb3fe1210, odp_actions=odp_actions@entry=0x7f3cb3fe1280, wc=wc@entry=0x7f3cb3fe12c0) at ofproto/ofproto-dpif-upcall.c:1236 #2 0x0000000000437087 in recv_upcalls (handler=<error reading variable: Unhandled dwarf expression opcode 0xfa>, handler=<error reading variable: Unhandled dwarf expression opcode 0xfa>) at ofproto/ofproto-dpif-upcall.c:778 #3 0x000000000043752a in udpif_upcall_handler (arg=0x24a3490) at ofproto/ofproto-dpif-upcall.c:696 #4 0x00000000004bbc54 in ovsthread_wrapper (aux_=<optimized out>) at lib/ovs-thread.c:340 #5 0x00007f3cb9f96e0e in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0 #6 0x00007f3cba2940fd in clone () from /lib/x86_64-linux-gnu/libc.so.6 After navigate the code, we think the following commit cause the crash: 7321bda384c366ae36bbca445f235a65d8f2b1f8 Extend sFlow agent to report tunnel and MPLS structures It seems that in the following code assume in vsp have a value, however for tunnel port, in vsp will always be NULL since there is only on vxlan_sys_4789 datapath port. if (flow->tunnel.ip_dst) { memset(&tnlInElem, 0, sizeof(tnlInElem)); tnlInElem.tag = SFLFLOW_EX_IPV4_TUNNEL_INGRESS; tnlInProto = dpif_sflow_tunnel_proto(in_dsp->tunnel_type); // BUG: in_dsp will be NULL... dpif_sflow_tunnel_v4(tnlInProto, &flow->tunnel, &tnlInElem.flowType.ipv4); SFLADD_ELEMENT(&fs, &tnlInElem); if (flow->tunnel.tun_id) { memset(&vniInElem, 0, sizeof(vniInElem)); vniInElem.tag = SFLFLOW_EX_VNI_INGRESS; vniInElem.flowType.tunnel_vni.vni = ntohll(flow->tunnel.tun_id); SFLADD_ELEMENT(&fs, &vniInElem); } } Does anyone encounter the same value? I am wondering how we can get tunnel types from the datapath information. I will try to find a fix later.
_______________________________________________ discuss mailing list discuss@openvswitch.org http://openvswitch.org/mailman/listinfo/discuss