On Wed, Mar 06, 2013 at 02:57:59PM -0800, Ben Pfaff wrote:
> RFC 3443 says that an outgoing MPLS TTL of zero is invalid, so we must send
> packets that have such a TTL post-decrement to the controller rather than
> allowing them to continue through the OpenFlow tables.
> 
> Here is the text from RFC 3443 that implies this behavior:
> 
>    oTTL: This is the TTL value used as the outgoing TTL value (see
>    section 3.5 for exception).  It is always (iTTL - 1) unless otherwise
>    stated.
> 
>    oTTL Check: Check if oTTL is greater than 0.  If the oTTL Check is
>    false, then the packet is not forwarded.  Note that the oTTL check is
>    performed only if any outgoing TTL (either IP or MPLS) is set to oTTL
>    (see section 3.5 for exception).
> 
> That is, the output TTL is one less than the input TTL, and a packet with
> an output TTL of 0 must not be forwarded.
> 
> CC: Bruce Davie <b...@nicira.com>
> Signed-off-by: Ben Pfaff <b...@nicira.com>

No objections here.

Reviewed-by: Simon Horman <ho...@verge.net.au>

> ---
> I swear I sent this out earlier, but I don't see it in the archive
> or in my inbox.
> 
>  ofproto/ofproto-dpif.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
> index 10e4e23..38b8e55 100644
> --- a/ofproto/ofproto-dpif.c
> +++ b/ofproto/ofproto-dpif.c
> @@ -6062,7 +6062,7 @@ execute_dec_mpls_ttl_action(struct action_xlate_ctx 
> *ctx)
>          return false;
>      }
>  
> -    if (ttl > 0) {
> +    if (ttl > 1) {
>          ttl--;
>          set_mpls_lse_ttl(&ctx->flow.mpls_lse, ttl);
>          return false;
> -- 
> 1.7.2.5
> 
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
> 
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to