----- Original Message -----
> From: "Jesse Gross" <je...@nicira.com>
> To: "Romain Lenglet" <rleng...@vmware.com>
> Cc: "Neil Mckee" <neil.mc...@inmon.com>, dev@openvswitch.org
> Sent: Friday, October 18, 2013 6:23:23 PM
> Subject: Re: [ovs-dev] [PATCH] sFlow export: include standard tunnel 
> structures (for GRE, VXLAN etc.)
> 
> On Fri, Oct 18, 2013 at 5:58 PM, Romain Lenglet <rleng...@vmware.com> wrote:
> > ----- Original Message -----
> >> From: "Jesse Gross" <je...@nicira.com>
> >> To: "Romain Lenglet" <rleng...@vmware.com>
> >> Cc: "Neil Mckee" <neil.mc...@inmon.com>, dev@openvswitch.org
> >> Sent: Friday, October 18, 2013 5:50:05 PM
> >> Subject: Re: [ovs-dev] [PATCH] sFlow export: include standard tunnel
> >> structures (for GRE, VXLAN etc.)
> >>
> >> On Fri, Oct 18, 2013 at 5:43 PM, Romain Lenglet <rleng...@vmware.com>
> >> wrote:
> >> > ----- Original Message -----
> >> >> From: "Romain Lenglet" <rleng...@vmware.com>
> >> >> To: "Neil Mckee" <neil.mc...@inmon.com>
> >> >> Cc: dev@openvswitch.org
> >> >> Sent: Wednesday, October 9, 2013 10:30:17 AM
> >> >> Subject: Re: [ovs-dev] [PATCH] sFlow export: include standard tunnel
> >> >> structures (for GRE, VXLAN etc.)
> >> >>
> >> >> On Oct 8, 2013, at 10:09 PM, Neil Mckee <neil.mc...@inmon.com> wrote:
> >> >> > +    /* Indicate 0==unknown for the src_port. It may be set to a
> >> >> > random
> >> >> > +       number on a flow-by-flow basis to increase entropy for ECMP
> >> >> > fabrics.
> >> >> > +       The assumption being made here is that it is not so important
> >> >> > to
> >> >> > +       report this.  At least not important enough to justify the
> >> >> > effort
> >> >> > +       of making it accessible here. */
> >> >>
> >> >> Exporting the source UDP source port is essential.
> >> >> You also have to export the tunnel key: GRE key (32- or 64-bit), VNI
> >> >> (24-bit), etc.
> >> >> I don't see how this feature could be useful without the UDP source
> >> >> port
> >> >> and
> >> >> tunnel key.
> >> >
> >> > I thought more about this. Exporting the source UDP port is really
> >> > important. Since the source port is calculated in the tunnel port at
> >> > egress during encapsulation and is lost at ingress during decapsulation,
> >> > and the sampling here is done before encapsulation or after
> >> > decapsulation,
> >> > the easiest way I can imagine to determine the source port is to redo
> >> > the
> >> > hashing here. This would require factorizing the hashing code into a
> >> > function that can be used in userspace in this code.
> >>
> >> I don't think that it's really viable to regenerate the hash used to
> >> compute the source port. In the best case, we are the ones generating
> >> it but the kernel hash function might change or the hash might come
> >> from the NIC. In the worst case, when we receive a packet the hash
> >> could have been generated by a non-OVS device with an unknown hash
> >> algorithm
> >>
> >
> > Yes, agreed, that's a problem.
> > The only other alternative I can imagine to get the source UDP port is to
> > do
> > the sampling in the port (esp. in the tunnel port) in the datapath.
> > This would be quite intrusive and complicated, as it would require the
> > ports
> > to do sampling and upcalls.
> > I'd prefer to avoid that.
> > Do you see any other alternative?
> 
> I guess it's not entirely clear to me at this point why it's important
> to record the UDP source port. Can you explain?

Identifying all the flows for a tunnel in the network is useful to detect 
changes in the routing of tunnel flows, which can e.g. be due to network 
failures (e.g. a link went down, and the flows are rerouted), and might impact 
the tunnel as a whole. This is useful for root cause analysis.
If we didn't get all the tunnel flow headers from the hosts, we would lose some 
of the information.
--
Romain Lenglet
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to