I've fixed your quoting. On Thu, May 24, 2012 at 06:38:58PM +0200, ravi.ke...@telekom.com wrote: > Ben Pfaff writes: > > OF1.3 adds the ability to match on the MPLS "BOS" bit. Should we add that > > here too? > > My plan was to first get to 1.1 and later on to 1.2/1.3. I > think it is good to have a reference code for 1.1 just in case there > is a request for that. I haven't followed the discussion initiated > by Zoltan on this, will look into it. Do you think match capability > for "mpls ttl" should be added as well since it provides similar > purpose as layer-3?
OK, I'm fine with deferring this. It should only be a small incremental change. As for the TTL, I don't think that any OpenFlow version allows for matching on an IP TTL, so there is no support-by-analogy for matching on the MPLS TTL. Is there another reason to support matching on the MPLS TTL? > > It occurs to me that we could drop the NXAST_SET_MPLS_LABEL and > > NXAST_SET_MPLS_TC actions because these can be implemented through > > "register load" actions. OpenFlow 1.2 also dropped the similar > > OFPAT_ actions, for the same reason, so maybe we shouldn't bother > > with NXAST_ actions for them as they don't have any additional > > benefit for OpenFlow 1.0 with Nicira extensions. > > Same argument as above. In this case it isn't quite clear to me how > set_mpls_label and set_mpls_tc be implemented via reg_load. Any > pointers? In ovs-ofctl syntax, the "load" actions would look like this: load:123->NXM_OF_MPLS_TC[] load:5->NXM_OF_MPLS_LABEL[] > > I think that you can greatly simplify parse_remaining_mpls() to > > just this (not tested): > > > > while (b->size >= sizeof(struct mpls_hdr)) { > > struct mpls_hdr *mh = ofpbuf_pull(b, sizeof *mh); > > if (mh->mpls_lse & htonl(MPLS_STACK_MASK)) { > > break; > > } > > } > > I quite understand vlan implementation part, though mpls parsing > implementation is similar to vlan, the reason I had it was for ovs > to reject packets if there is nothing following mpls > header. Initially I checked for ipv4/ipv6 header version in > parse_mpls and later removed after discussion on mpls and non-IP > packets. Though 2 bytes isn't enough for sanity check, I just left > it as it is. OK, as-is it looks like a mistake, could you do something to indicate that it is not? For example, if there's a real minimum MPLS payload size, you could use that. Or otherwise add a comment. > > I don't think we should consider the MPLS label in > > flow_hash_symmetric_l4(), because there's no assurance that the MPLS > > labels would be the same in both directions. (Bruce Davie tells me > > that in fact that's unlikely.) > > I don't have strong opinion either way. Can we go with Bruce's opinion, then, and drop it? Thanks. > > In commit_mpls_push_action() and commit_mpls_pop_action(), I'm > > surprised that we can possibly log errors at this late stage. > > Shouldn't we catch these errors earlier? > > checks are performed in validate_action as well. OK, so we know at this point that it's correct? Can we drop the check, then, or switch it to an assertion? _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev