On Thu, Dec 27, 2012 at 03:29:18PM -0500, Jesse Gross wrote: > On Thu, Dec 27, 2012 at 2:37 PM, Ethan Jackson <et...@nicira.com> wrote: > > > >> Why shouldn't we give up in trace, as we do in the packet receive > >> path, if the port can't be found? "trace" is supposed to match the > >> packet receive path (otherwise it isn't as useful). I guess the > >> reason is that we don't have to, since the user specified the ofproto > >> name, but I think that we should anyway. > > > > > > There seems to be some contention on this point. Currently, the unit tests > > rely on this behavior. Specifically, you can do a trace without specifying > > an in_port and it will implicitly use OFPP_NONE. In previous rounds of > > review, I had suggested that we remove this option, and require a valid > > in_port to trace. Jesse suggested that this feature is important. I really > > don't care either way. Could you two please make a decision on the point? > > I think the problem is that trace has historically been pretty loose > about whether the data that it is interpreting is userspace level > (i.e. OpenFlow) or kernel level. It wasn't that important before > since they matched up pretty closely but with the single datapath > changes it's important that it's clear. > > * Userspace format: Anything that is logged by the core of userspace, > which will be after ODP/vlan/tunnel translation. This can also > include exact match OpenFlow flows. Here it's important to support > omitting the input port since it is commonly used with packet outs > (this is what I was talking about before). We also shouldn't try to > do any translation and instead will take an ofproto and OpenFlow port. > > * Kernel format: Packets coming up from the kernel or existing flows. > These definitely require translation and shouldn't require an ofproto > since it is implicit. Miss upcalls should always have an input port. > There is one possible case for not having an input port, which is a > packet out that then gets sent to userspace, such as for sFlow. It > probably doesn't make a lot of sense to trace these packets since > they're in the middle of an action list (and sFlow will just throw > them away anyways) so we could just disallow it. > > * Full packet: This one currently confuses the above two formats > since it expects both a userspace flow and kernel metadata like mark > and priority. This will become a problem soon since with IPsec flow > based tunneling the mark can determine the input port. In an ideal > world we would support both of the above modes independently and not > allow cross over. > > If we start making the sematics clear that it will be a lot easier to > determine the right behavior. For example, in the case of the unit > tests we should switch then from kernel style to userspace style.
This sounds like a good analysis. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev