All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: Shmulik Ladkani <shmulik@metanetworks.com>
Cc: dsahern@gmail.com, netdev@vger.kernel.org,
	shmulik.ladkani@metanetworks.com,
	Shmulik Ladkani <shmulik.ladkani@gmail.com>
Subject: Re: [PATCH iproute2-next] iproute_lwtunnel: allow specifying 'src' for 'encap ip' / 'encap ip6'
Date: Fri, 17 Aug 2018 08:00:22 -0700	[thread overview]
Message-ID: <20180817080022.18e9992d@xeon-e3> (raw)
In-Reply-To: <20180817073134.19569-1-shmulik.ladkani@gmail.com>

On Fri, 17 Aug 2018 10:31:34 +0300
Shmulik Ladkani <shmulik@metanetworks.com> wrote:

> This allows the user to specify the LWTUNNEL_IP_SRC/LWTUNNEL_IP6_SRC
> when setting an lwtunnel encapsulation route.
> 
> Signed-off-by: Shmulik Ladkani <shmulik.ladkani@gmail.com>
> ---
>  ip/iproute_lwtunnel.c | 22 ++++++++++++++++++++--
>  1 file changed, 20 insertions(+), 2 deletions(-)
> 
> diff --git a/ip/iproute_lwtunnel.c b/ip/iproute_lwtunnel.c
> index 740da7c6..20d5545c 100644
> --- a/ip/iproute_lwtunnel.c
> +++ b/ip/iproute_lwtunnel.c
> @@ -671,7 +671,7 @@ static int parse_encap_mpls(struct rtattr *rta, size_t len,
>  static int parse_encap_ip(struct rtattr *rta, size_t len,
>  			  int *argcp, char ***argvp)
>  {
> -	int id_ok = 0, dst_ok = 0, tos_ok = 0, ttl_ok = 0;
> +	int id_ok = 0, dst_ok = 0, src_ok = 0, tos_ok = 0, ttl_ok = 0;
>  	char **argv = *argvp;
>  	int argc = *argcp;
>  
> @@ -694,6 +694,15 @@ static int parse_encap_ip(struct rtattr *rta, size_t len,
>  			get_addr(&addr, *argv, AF_INET);
>  			rta_addattr_l(rta, len, LWTUNNEL_IP_DST,
>  				      &addr.data, addr.bytelen);
> +		} else if (strcmp(*argv, "src") == 0) {
> +			inet_prefix addr;
> +
> +			NEXT_ARG();
> +			if (src_ok++)
> +				duparg2("src", *argv);
> +			get_addr(&addr, *argv, AF_INET);
> +			rta_addattr_l(rta, len, LWTUNNEL_IP_SRC,
> +				      &addr.data, addr.bytelen);
>  		} else if (strcmp(*argv, "tos") == 0) {
>  			__u32 tos;
>  
> @@ -805,7 +814,7 @@ static int parse_encap_ila(struct rtattr *rta, size_t len,
>  static int parse_encap_ip6(struct rtattr *rta, size_t len,
>  			   int *argcp, char ***argvp)
>  {
> -	int id_ok = 0, dst_ok = 0, tos_ok = 0, ttl_ok = 0;
> +	int id_ok = 0, dst_ok = 0, src_ok = 0, tos_ok = 0, ttl_ok = 0;
>  	char **argv = *argvp;
>  	int argc = *argcp;
>  
> @@ -828,6 +837,15 @@ static int parse_encap_ip6(struct rtattr *rta, size_t len,
>  			get_addr(&addr, *argv, AF_INET6);
>  			rta_addattr_l(rta, len, LWTUNNEL_IP6_DST,
>  				      &addr.data, addr.bytelen);
> +		} else if (strcmp(*argv, "src") == 0) {
> +			inet_prefix addr;
> +
> +			NEXT_ARG();
> +			if (src_ok++)
> +				duparg2("src", *argv);
> +			get_addr(&addr, *argv, AF_INET6);
> +			rta_addattr_l(rta, len, LWTUNNEL_IP6_SRC,
> +				      &addr.data, addr.bytelen);
>  		} else if (strcmp(*argv, "tc") == 0) {
>  			__u32 tc;
>  

If you accept an attribute on input you need to parse it and display it the
same way in the show command.

  reply	other threads:[~2018-08-17 18:04 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-17  7:31 [PATCH iproute2-next] iproute_lwtunnel: allow specifying 'src' for 'encap ip' / 'encap ip6' Shmulik Ladkani
2018-08-17 15:00 ` Stephen Hemminger [this message]
2018-08-17 17:37   ` Shmulik Ladkani
2018-08-17 20:20 ` David Ahern

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180817080022.18e9992d@xeon-e3 \
    --to=stephen@networkplumber.org \
    --cc=dsahern@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=shmulik.ladkani@gmail.com \
    --cc=shmulik.ladkani@metanetworks.com \
    --cc=shmulik@metanetworks.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.