* [PATCH net-next v2 0/2] Add helper functions to parse netlink msg of ip_tunnel
@ 2022-09-28 3:39 Liu Jian
2022-09-28 3:39 ` [PATCH net-next v2 1/2] net: Add helper function to parse netlink msg of ip_tunnel_encap Liu Jian
2022-09-28 3:39 ` [PATCH net-next v2 2/2] net: Add helper function to parse netlink msg of ip_tunnel_parm Liu Jian
0 siblings, 2 replies; 6+ messages in thread
From: Liu Jian @ 2022-09-28 3:39 UTC (permalink / raw)
To: davem, yoshfuji, dsahern, edumazet, kuba, pabeni, netdev; +Cc: liujian56
Add helper functions to parse netlink msg of ip_tunnel
v1->v2: Move the implementation of the helper function to ip_tunnel_core.c
Liu Jian (2):
net: Add helper function to parse netlink msg of ip_tunnel_encap
net: Add helper function to parse netlink msg of ip_tunnel_parm
include/net/ip_tunnels.h | 6 ++++
net/ipv4/ip_tunnel_core.c | 67 +++++++++++++++++++++++++++++++++++++++
net/ipv4/ipip.c | 62 ++----------------------------------
net/ipv6/ip6_tunnel.c | 37 ++-------------------
net/ipv6/sit.c | 65 ++-----------------------------------
5 files changed, 81 insertions(+), 156 deletions(-)
--
2.17.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH net-next v2 1/2] net: Add helper function to parse netlink msg of ip_tunnel_encap
2022-09-28 3:39 [PATCH net-next v2 0/2] Add helper functions to parse netlink msg of ip_tunnel Liu Jian
@ 2022-09-28 3:39 ` Liu Jian
2022-09-29 13:12 ` Paolo Abeni
2022-09-28 3:39 ` [PATCH net-next v2 2/2] net: Add helper function to parse netlink msg of ip_tunnel_parm Liu Jian
1 sibling, 1 reply; 6+ messages in thread
From: Liu Jian @ 2022-09-28 3:39 UTC (permalink / raw)
To: davem, yoshfuji, dsahern, edumazet, kuba, pabeni, netdev; +Cc: liujian56
Add ip_tunnel_netlink_encap_parms to parse netlink msg of ip_tunnel_encap.
Reduces duplicate code, no actual functional changes.
Signed-off-by: Liu Jian <liujian56@huawei.com>
---
v1->v2: Move the implementation of the helper function to ip_tunnel_core.c
include/net/ip_tunnels.h | 3 +++
net/ipv4/ip_tunnel_core.c | 35 +++++++++++++++++++++++++++++++++++
net/ipv4/ipip.c | 38 ++------------------------------------
net/ipv6/ip6_tunnel.c | 37 ++-----------------------------------
net/ipv6/sit.c | 38 ++------------------------------------
5 files changed, 44 insertions(+), 107 deletions(-)
diff --git a/include/net/ip_tunnels.h b/include/net/ip_tunnels.h
index ced80e2f8b58..51da2957cf48 100644
--- a/include/net/ip_tunnels.h
+++ b/include/net/ip_tunnels.h
@@ -302,6 +302,9 @@ int ip_tunnel_newlink(struct net_device *dev, struct nlattr *tb[],
struct ip_tunnel_parm *p, __u32 fwmark);
void ip_tunnel_setup(struct net_device *dev, unsigned int net_id);
+bool ip_tunnel_netlink_encap_parms(struct nlattr *data[],
+ struct ip_tunnel_encap *encap);
+
extern const struct header_ops ip_tunnel_header_ops;
__be16 ip_tunnel_parse_protocol(const struct sk_buff *skb);
diff --git a/net/ipv4/ip_tunnel_core.c b/net/ipv4/ip_tunnel_core.c
index cc1caab4a654..526e6a52a973 100644
--- a/net/ipv4/ip_tunnel_core.c
+++ b/net/ipv4/ip_tunnel_core.c
@@ -1079,3 +1079,38 @@ EXPORT_SYMBOL(ip_tunnel_parse_protocol);
const struct header_ops ip_tunnel_header_ops = { .parse_protocol = ip_tunnel_parse_protocol };
EXPORT_SYMBOL(ip_tunnel_header_ops);
+
+/* This function returns true when ENCAP attributes are present in the nl msg */
+bool ip_tunnel_netlink_encap_parms(struct nlattr *data[],
+ struct ip_tunnel_encap *encap)
+{
+ bool ret = false;
+
+ memset(encap, 0, sizeof(*encap));
+
+ if (!data)
+ return ret;
+
+ if (data[IFLA_IPTUN_ENCAP_TYPE]) {
+ ret = true;
+ encap->type = nla_get_u16(data[IFLA_IPTUN_ENCAP_TYPE]);
+ }
+
+ if (data[IFLA_IPTUN_ENCAP_FLAGS]) {
+ ret = true;
+ encap->flags = nla_get_u16(data[IFLA_IPTUN_ENCAP_FLAGS]);
+ }
+
+ if (data[IFLA_IPTUN_ENCAP_SPORT]) {
+ ret = true;
+ encap->sport = nla_get_be16(data[IFLA_IPTUN_ENCAP_SPORT]);
+ }
+
+ if (data[IFLA_IPTUN_ENCAP_DPORT]) {
+ ret = true;
+ encap->dport = nla_get_be16(data[IFLA_IPTUN_ENCAP_DPORT]);
+ }
+
+ return ret;
+}
+EXPORT_SYMBOL(ip_tunnel_netlink_encap_parms);
diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c
index 123ea63a04cb..7c64ca06adf3 100644
--- a/net/ipv4/ipip.c
+++ b/net/ipv4/ipip.c
@@ -448,40 +448,6 @@ static void ipip_netlink_parms(struct nlattr *data[],
*fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]);
}
-/* This function returns true when ENCAP attributes are present in the nl msg */
-static bool ipip_netlink_encap_parms(struct nlattr *data[],
- struct ip_tunnel_encap *ipencap)
-{
- bool ret = false;
-
- memset(ipencap, 0, sizeof(*ipencap));
-
- if (!data)
- return ret;
-
- if (data[IFLA_IPTUN_ENCAP_TYPE]) {
- ret = true;
- ipencap->type = nla_get_u16(data[IFLA_IPTUN_ENCAP_TYPE]);
- }
-
- if (data[IFLA_IPTUN_ENCAP_FLAGS]) {
- ret = true;
- ipencap->flags = nla_get_u16(data[IFLA_IPTUN_ENCAP_FLAGS]);
- }
-
- if (data[IFLA_IPTUN_ENCAP_SPORT]) {
- ret = true;
- ipencap->sport = nla_get_be16(data[IFLA_IPTUN_ENCAP_SPORT]);
- }
-
- if (data[IFLA_IPTUN_ENCAP_DPORT]) {
- ret = true;
- ipencap->dport = nla_get_be16(data[IFLA_IPTUN_ENCAP_DPORT]);
- }
-
- return ret;
-}
-
static int ipip_newlink(struct net *src_net, struct net_device *dev,
struct nlattr *tb[], struct nlattr *data[],
struct netlink_ext_ack *extack)
@@ -491,7 +457,7 @@ static int ipip_newlink(struct net *src_net, struct net_device *dev,
struct ip_tunnel_encap ipencap;
__u32 fwmark = 0;
- if (ipip_netlink_encap_parms(data, &ipencap)) {
+ if (ip_tunnel_netlink_encap_parms(data, &ipencap)) {
int err = ip_tunnel_encap_setup(t, &ipencap);
if (err < 0)
@@ -512,7 +478,7 @@ static int ipip_changelink(struct net_device *dev, struct nlattr *tb[],
bool collect_md;
__u32 fwmark = t->fwmark;
- if (ipip_netlink_encap_parms(data, &ipencap)) {
+ if (ip_tunnel_netlink_encap_parms(data, &ipencap)) {
int err = ip_tunnel_encap_setup(t, &ipencap);
if (err < 0)
diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c
index 9e97f3b4c7e8..cc5d5e75b658 100644
--- a/net/ipv6/ip6_tunnel.c
+++ b/net/ipv6/ip6_tunnel.c
@@ -1988,39 +1988,6 @@ static void ip6_tnl_netlink_parms(struct nlattr *data[],
parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]);
}
-static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
- struct ip_tunnel_encap *ipencap)
-{
- bool ret = false;
-
- memset(ipencap, 0, sizeof(*ipencap));
-
- if (!data)
- return ret;
-
- if (data[IFLA_IPTUN_ENCAP_TYPE]) {
- ret = true;
- ipencap->type = nla_get_u16(data[IFLA_IPTUN_ENCAP_TYPE]);
- }
-
- if (data[IFLA_IPTUN_ENCAP_FLAGS]) {
- ret = true;
- ipencap->flags = nla_get_u16(data[IFLA_IPTUN_ENCAP_FLAGS]);
- }
-
- if (data[IFLA_IPTUN_ENCAP_SPORT]) {
- ret = true;
- ipencap->sport = nla_get_be16(data[IFLA_IPTUN_ENCAP_SPORT]);
- }
-
- if (data[IFLA_IPTUN_ENCAP_DPORT]) {
- ret = true;
- ipencap->dport = nla_get_be16(data[IFLA_IPTUN_ENCAP_DPORT]);
- }
-
- return ret;
-}
-
static int ip6_tnl_newlink(struct net *src_net, struct net_device *dev,
struct nlattr *tb[], struct nlattr *data[],
struct netlink_ext_ack *extack)
@@ -2033,7 +2000,7 @@ static int ip6_tnl_newlink(struct net *src_net, struct net_device *dev,
nt = netdev_priv(dev);
- if (ip6_tnl_netlink_encap_parms(data, &ipencap)) {
+ if (ip_tunnel_netlink_encap_parms(data, &ipencap)) {
err = ip6_tnl_encap_setup(nt, &ipencap);
if (err < 0)
return err;
@@ -2070,7 +2037,7 @@ static int ip6_tnl_changelink(struct net_device *dev, struct nlattr *tb[],
if (dev == ip6n->fb_tnl_dev)
return -EINVAL;
- if (ip6_tnl_netlink_encap_parms(data, &ipencap)) {
+ if (ip_tunnel_netlink_encap_parms(data, &ipencap)) {
int err = ip6_tnl_encap_setup(t, &ipencap);
if (err < 0)
diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
index 98f1cf40746f..a8a258f672fa 100644
--- a/net/ipv6/sit.c
+++ b/net/ipv6/sit.c
@@ -1534,40 +1534,6 @@ static void ipip6_netlink_parms(struct nlattr *data[],
*fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]);
}
-/* This function returns true when ENCAP attributes are present in the nl msg */
-static bool ipip6_netlink_encap_parms(struct nlattr *data[],
- struct ip_tunnel_encap *ipencap)
-{
- bool ret = false;
-
- memset(ipencap, 0, sizeof(*ipencap));
-
- if (!data)
- return ret;
-
- if (data[IFLA_IPTUN_ENCAP_TYPE]) {
- ret = true;
- ipencap->type = nla_get_u16(data[IFLA_IPTUN_ENCAP_TYPE]);
- }
-
- if (data[IFLA_IPTUN_ENCAP_FLAGS]) {
- ret = true;
- ipencap->flags = nla_get_u16(data[IFLA_IPTUN_ENCAP_FLAGS]);
- }
-
- if (data[IFLA_IPTUN_ENCAP_SPORT]) {
- ret = true;
- ipencap->sport = nla_get_be16(data[IFLA_IPTUN_ENCAP_SPORT]);
- }
-
- if (data[IFLA_IPTUN_ENCAP_DPORT]) {
- ret = true;
- ipencap->dport = nla_get_be16(data[IFLA_IPTUN_ENCAP_DPORT]);
- }
-
- return ret;
-}
-
#ifdef CONFIG_IPV6_SIT_6RD
/* This function returns true when 6RD attributes are present in the nl msg */
static bool ipip6_netlink_6rd_parms(struct nlattr *data[],
@@ -1619,7 +1585,7 @@ static int ipip6_newlink(struct net *src_net, struct net_device *dev,
nt = netdev_priv(dev);
- if (ipip6_netlink_encap_parms(data, &ipencap)) {
+ if (ip_tunnel_netlink_encap_parms(data, &ipencap)) {
err = ip_tunnel_encap_setup(nt, &ipencap);
if (err < 0)
return err;
@@ -1671,7 +1637,7 @@ static int ipip6_changelink(struct net_device *dev, struct nlattr *tb[],
if (dev == sitn->fb_tunnel_dev)
return -EINVAL;
- if (ipip6_netlink_encap_parms(data, &ipencap)) {
+ if (ip_tunnel_netlink_encap_parms(data, &ipencap)) {
err = ip_tunnel_encap_setup(t, &ipencap);
if (err < 0)
return err;
--
2.17.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH net-next v2 2/2] net: Add helper function to parse netlink msg of ip_tunnel_parm
2022-09-28 3:39 [PATCH net-next v2 0/2] Add helper functions to parse netlink msg of ip_tunnel Liu Jian
2022-09-28 3:39 ` [PATCH net-next v2 1/2] net: Add helper function to parse netlink msg of ip_tunnel_encap Liu Jian
@ 2022-09-28 3:39 ` Liu Jian
2022-09-29 13:16 ` Paolo Abeni
1 sibling, 1 reply; 6+ messages in thread
From: Liu Jian @ 2022-09-28 3:39 UTC (permalink / raw)
To: davem, yoshfuji, dsahern, edumazet, kuba, pabeni, netdev; +Cc: liujian56
Add ip_tunnel_netlink_parms to parse netlink msg of ip_tunnel_parm.
Reduces duplicate code, no actual functional changes.
Signed-off-by: Liu Jian <liujian56@huawei.com>
---
v1->v2: Move the implementation of the helper function to ip_tunnel_core.c
include/net/ip_tunnels.h | 3 +++
net/ipv4/ip_tunnel_core.c | 32 ++++++++++++++++++++++++++++++++
net/ipv4/ipip.c | 24 +-----------------------
net/ipv6/sit.c | 27 +--------------------------
4 files changed, 37 insertions(+), 49 deletions(-)
diff --git a/include/net/ip_tunnels.h b/include/net/ip_tunnels.h
index 51da2957cf48..fca357679816 100644
--- a/include/net/ip_tunnels.h
+++ b/include/net/ip_tunnels.h
@@ -305,6 +305,9 @@ void ip_tunnel_setup(struct net_device *dev, unsigned int net_id);
bool ip_tunnel_netlink_encap_parms(struct nlattr *data[],
struct ip_tunnel_encap *encap);
+void ip_tunnel_netlink_parms(struct nlattr *data[],
+ struct ip_tunnel_parm *parms);
+
extern const struct header_ops ip_tunnel_header_ops;
__be16 ip_tunnel_parse_protocol(const struct sk_buff *skb);
diff --git a/net/ipv4/ip_tunnel_core.c b/net/ipv4/ip_tunnel_core.c
index 526e6a52a973..1e1217e87885 100644
--- a/net/ipv4/ip_tunnel_core.c
+++ b/net/ipv4/ip_tunnel_core.c
@@ -1114,3 +1114,35 @@ bool ip_tunnel_netlink_encap_parms(struct nlattr *data[],
return ret;
}
EXPORT_SYMBOL(ip_tunnel_netlink_encap_parms);
+
+void ip_tunnel_netlink_parms(struct nlattr *data[],
+ struct ip_tunnel_parm *parms)
+{
+ if (data[IFLA_IPTUN_LINK])
+ parms->link = nla_get_u32(data[IFLA_IPTUN_LINK]);
+
+ if (data[IFLA_IPTUN_LOCAL])
+ parms->iph.saddr = nla_get_be32(data[IFLA_IPTUN_LOCAL]);
+
+ if (data[IFLA_IPTUN_REMOTE])
+ parms->iph.daddr = nla_get_be32(data[IFLA_IPTUN_REMOTE]);
+
+ if (data[IFLA_IPTUN_TTL]) {
+ parms->iph.ttl = nla_get_u8(data[IFLA_IPTUN_TTL]);
+ if (parms->iph.ttl)
+ parms->iph.frag_off = htons(IP_DF);
+ }
+
+ if (data[IFLA_IPTUN_TOS])
+ parms->iph.tos = nla_get_u8(data[IFLA_IPTUN_TOS]);
+
+ if (!data[IFLA_IPTUN_PMTUDISC] || nla_get_u8(data[IFLA_IPTUN_PMTUDISC]))
+ parms->iph.frag_off = htons(IP_DF);
+
+ if (data[IFLA_IPTUN_FLAGS])
+ parms->i_flags = nla_get_be16(data[IFLA_IPTUN_FLAGS]);
+
+ if (data[IFLA_IPTUN_PROTO])
+ parms->iph.protocol = nla_get_u8(data[IFLA_IPTUN_PROTO]);
+}
+EXPORT_SYMBOL(ip_tunnel_netlink_parms);
diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c
index 7c64ca06adf3..180f9daf5bec 100644
--- a/net/ipv4/ipip.c
+++ b/net/ipv4/ipip.c
@@ -417,29 +417,7 @@ static void ipip_netlink_parms(struct nlattr *data[],
if (!data)
return;
- if (data[IFLA_IPTUN_LINK])
- parms->link = nla_get_u32(data[IFLA_IPTUN_LINK]);
-
- if (data[IFLA_IPTUN_LOCAL])
- parms->iph.saddr = nla_get_in_addr(data[IFLA_IPTUN_LOCAL]);
-
- if (data[IFLA_IPTUN_REMOTE])
- parms->iph.daddr = nla_get_in_addr(data[IFLA_IPTUN_REMOTE]);
-
- if (data[IFLA_IPTUN_TTL]) {
- parms->iph.ttl = nla_get_u8(data[IFLA_IPTUN_TTL]);
- if (parms->iph.ttl)
- parms->iph.frag_off = htons(IP_DF);
- }
-
- if (data[IFLA_IPTUN_TOS])
- parms->iph.tos = nla_get_u8(data[IFLA_IPTUN_TOS]);
-
- if (data[IFLA_IPTUN_PROTO])
- parms->iph.protocol = nla_get_u8(data[IFLA_IPTUN_PROTO]);
-
- if (!data[IFLA_IPTUN_PMTUDISC] || nla_get_u8(data[IFLA_IPTUN_PMTUDISC]))
- parms->iph.frag_off = htons(IP_DF);
+ ip_tunnel_netlink_parms(data, parms);
if (data[IFLA_IPTUN_COLLECT_METADATA])
*collect_md = true;
diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
index a8a258f672fa..d27683e3fc97 100644
--- a/net/ipv6/sit.c
+++ b/net/ipv6/sit.c
@@ -1503,32 +1503,7 @@ static void ipip6_netlink_parms(struct nlattr *data[],
if (!data)
return;
- if (data[IFLA_IPTUN_LINK])
- parms->link = nla_get_u32(data[IFLA_IPTUN_LINK]);
-
- if (data[IFLA_IPTUN_LOCAL])
- parms->iph.saddr = nla_get_be32(data[IFLA_IPTUN_LOCAL]);
-
- if (data[IFLA_IPTUN_REMOTE])
- parms->iph.daddr = nla_get_be32(data[IFLA_IPTUN_REMOTE]);
-
- if (data[IFLA_IPTUN_TTL]) {
- parms->iph.ttl = nla_get_u8(data[IFLA_IPTUN_TTL]);
- if (parms->iph.ttl)
- parms->iph.frag_off = htons(IP_DF);
- }
-
- if (data[IFLA_IPTUN_TOS])
- parms->iph.tos = nla_get_u8(data[IFLA_IPTUN_TOS]);
-
- if (!data[IFLA_IPTUN_PMTUDISC] || nla_get_u8(data[IFLA_IPTUN_PMTUDISC]))
- parms->iph.frag_off = htons(IP_DF);
-
- if (data[IFLA_IPTUN_FLAGS])
- parms->i_flags = nla_get_be16(data[IFLA_IPTUN_FLAGS]);
-
- if (data[IFLA_IPTUN_PROTO])
- parms->iph.protocol = nla_get_u8(data[IFLA_IPTUN_PROTO]);
+ ip_tunnel_netlink_parms(data, parms);
if (data[IFLA_IPTUN_FWMARK])
*fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]);
--
2.17.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH net-next v2 1/2] net: Add helper function to parse netlink msg of ip_tunnel_encap
2022-09-28 3:39 ` [PATCH net-next v2 1/2] net: Add helper function to parse netlink msg of ip_tunnel_encap Liu Jian
@ 2022-09-29 13:12 ` Paolo Abeni
0 siblings, 0 replies; 6+ messages in thread
From: Paolo Abeni @ 2022-09-29 13:12 UTC (permalink / raw)
To: Liu Jian, davem, yoshfuji, dsahern, edumazet, kuba, netdev
On Wed, 2022-09-28 at 11:39 +0800, Liu Jian wrote:
> Add ip_tunnel_netlink_encap_parms to parse netlink msg of ip_tunnel_encap.
> Reduces duplicate code, no actual functional changes.
>
> Signed-off-by: Liu Jian <liujian56@huawei.com>
> ---
> v1->v2: Move the implementation of the helper function to ip_tunnel_core.c
> include/net/ip_tunnels.h | 3 +++
> net/ipv4/ip_tunnel_core.c | 35 +++++++++++++++++++++++++++++++++++
> net/ipv4/ipip.c | 38 ++------------------------------------
> net/ipv6/ip6_tunnel.c | 37 ++-----------------------------------
> net/ipv6/sit.c | 38 ++------------------------------------
> 5 files changed, 44 insertions(+), 107 deletions(-)
>
> diff --git a/include/net/ip_tunnels.h b/include/net/ip_tunnels.h
> index ced80e2f8b58..51da2957cf48 100644
> --- a/include/net/ip_tunnels.h
> +++ b/include/net/ip_tunnels.h
> @@ -302,6 +302,9 @@ int ip_tunnel_newlink(struct net_device *dev, struct nlattr *tb[],
> struct ip_tunnel_parm *p, __u32 fwmark);
> void ip_tunnel_setup(struct net_device *dev, unsigned int net_id);
>
> +bool ip_tunnel_netlink_encap_parms(struct nlattr *data[],
> + struct ip_tunnel_encap *encap);
> +
> extern const struct header_ops ip_tunnel_header_ops;
> __be16 ip_tunnel_parse_protocol(const struct sk_buff *skb);
>
> diff --git a/net/ipv4/ip_tunnel_core.c b/net/ipv4/ip_tunnel_core.c
> index cc1caab4a654..526e6a52a973 100644
> --- a/net/ipv4/ip_tunnel_core.c
> +++ b/net/ipv4/ip_tunnel_core.c
> @@ -1079,3 +1079,38 @@ EXPORT_SYMBOL(ip_tunnel_parse_protocol);
>
> const struct header_ops ip_tunnel_header_ops = { .parse_protocol = ip_tunnel_parse_protocol };
> EXPORT_SYMBOL(ip_tunnel_header_ops);
> +
> +/* This function returns true when ENCAP attributes are present in the nl msg */
> +bool ip_tunnel_netlink_encap_parms(struct nlattr *data[],
> + struct ip_tunnel_encap *encap)
> +{
> + bool ret = false;
> +
> + memset(encap, 0, sizeof(*encap));
> +
> + if (!data)
> + return ret;
> +
> + if (data[IFLA_IPTUN_ENCAP_TYPE]) {
> + ret = true;
> + encap->type = nla_get_u16(data[IFLA_IPTUN_ENCAP_TYPE]);
> + }
> +
> + if (data[IFLA_IPTUN_ENCAP_FLAGS]) {
> + ret = true;
> + encap->flags = nla_get_u16(data[IFLA_IPTUN_ENCAP_FLAGS]);
> + }
> +
> + if (data[IFLA_IPTUN_ENCAP_SPORT]) {
> + ret = true;
> + encap->sport = nla_get_be16(data[IFLA_IPTUN_ENCAP_SPORT]);
> + }
> +
> + if (data[IFLA_IPTUN_ENCAP_DPORT]) {
> + ret = true;
> + encap->dport = nla_get_be16(data[IFLA_IPTUN_ENCAP_DPORT]);
> + }
> +
> + return ret;
> +}
> +EXPORT_SYMBOL(ip_tunnel_netlink_encap_parms);
I think EXPORT_SYMBOL_GPL() fits better here.
Cheers,
Paolo
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net-next v2 2/2] net: Add helper function to parse netlink msg of ip_tunnel_parm
2022-09-28 3:39 ` [PATCH net-next v2 2/2] net: Add helper function to parse netlink msg of ip_tunnel_parm Liu Jian
@ 2022-09-29 13:16 ` Paolo Abeni
2022-09-29 13:38 ` liujian (CE)
0 siblings, 1 reply; 6+ messages in thread
From: Paolo Abeni @ 2022-09-29 13:16 UTC (permalink / raw)
To: Liu Jian, davem, yoshfuji, dsahern, edumazet, kuba, netdev
On Wed, 2022-09-28 at 11:39 +0800, Liu Jian wrote:
> Add ip_tunnel_netlink_parms to parse netlink msg of ip_tunnel_parm.
> Reduces duplicate code, no actual functional changes.
>
> Signed-off-by: Liu Jian <liujian56@huawei.com>
> ---
> v1->v2: Move the implementation of the helper function to ip_tunnel_core.c
> include/net/ip_tunnels.h | 3 +++
> net/ipv4/ip_tunnel_core.c | 32 ++++++++++++++++++++++++++++++++
> net/ipv4/ipip.c | 24 +-----------------------
> net/ipv6/sit.c | 27 +--------------------------
> 4 files changed, 37 insertions(+), 49 deletions(-)
>
> diff --git a/include/net/ip_tunnels.h b/include/net/ip_tunnels.h
> index 51da2957cf48..fca357679816 100644
> --- a/include/net/ip_tunnels.h
> +++ b/include/net/ip_tunnels.h
> @@ -305,6 +305,9 @@ void ip_tunnel_setup(struct net_device *dev, unsigned int net_id);
> bool ip_tunnel_netlink_encap_parms(struct nlattr *data[],
> struct ip_tunnel_encap *encap);
>
> +void ip_tunnel_netlink_parms(struct nlattr *data[],
> + struct ip_tunnel_parm *parms);
> +
> extern const struct header_ops ip_tunnel_header_ops;
> __be16 ip_tunnel_parse_protocol(const struct sk_buff *skb);
>
> diff --git a/net/ipv4/ip_tunnel_core.c b/net/ipv4/ip_tunnel_core.c
> index 526e6a52a973..1e1217e87885 100644
> --- a/net/ipv4/ip_tunnel_core.c
> +++ b/net/ipv4/ip_tunnel_core.c
> @@ -1114,3 +1114,35 @@ bool ip_tunnel_netlink_encap_parms(struct nlattr *data[],
> return ret;
> }
> EXPORT_SYMBOL(ip_tunnel_netlink_encap_parms);
> +
> +void ip_tunnel_netlink_parms(struct nlattr *data[],
> + struct ip_tunnel_parm *parms)
> +{
> + if (data[IFLA_IPTUN_LINK])
> + parms->link = nla_get_u32(data[IFLA_IPTUN_LINK]);
> +
> + if (data[IFLA_IPTUN_LOCAL])
> + parms->iph.saddr = nla_get_be32(data[IFLA_IPTUN_LOCAL]);
> +
> + if (data[IFLA_IPTUN_REMOTE])
> + parms->iph.daddr = nla_get_be32(data[IFLA_IPTUN_REMOTE]);
> +
> + if (data[IFLA_IPTUN_TTL]) {
> + parms->iph.ttl = nla_get_u8(data[IFLA_IPTUN_TTL]);
> + if (parms->iph.ttl)
> + parms->iph.frag_off = htons(IP_DF);
> + }
> +
> + if (data[IFLA_IPTUN_TOS])
> + parms->iph.tos = nla_get_u8(data[IFLA_IPTUN_TOS]);
> +
> + if (!data[IFLA_IPTUN_PMTUDISC] || nla_get_u8(data[IFLA_IPTUN_PMTUDISC]))
> + parms->iph.frag_off = htons(IP_DF);
> +
> + if (data[IFLA_IPTUN_FLAGS])
> + parms->i_flags = nla_get_be16(data[IFLA_IPTUN_FLAGS]);
> +
> + if (data[IFLA_IPTUN_PROTO])
> + parms->iph.protocol = nla_get_u8(data[IFLA_IPTUN_PROTO]);
> +}
> +EXPORT_SYMBOL(ip_tunnel_netlink_parms);
The same here, I think it should be EXPORT_SYMBOL_GPL()
Thanks,
Paolo
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH net-next v2 2/2] net: Add helper function to parse netlink msg of ip_tunnel_parm
2022-09-29 13:16 ` Paolo Abeni
@ 2022-09-29 13:38 ` liujian (CE)
0 siblings, 0 replies; 6+ messages in thread
From: liujian (CE) @ 2022-09-29 13:38 UTC (permalink / raw)
To: Paolo Abeni, davem, yoshfuji, dsahern, edumazet, kuba, netdev
> -----Original Message-----
> From: Paolo Abeni [mailto:pabeni@redhat.com]
> Sent: Thursday, September 29, 2022 9:17 PM
> To: liujian (CE) <liujian56@huawei.com>; davem@davemloft.net;
> yoshfuji@linux-ipv6.org; dsahern@kernel.org; edumazet@google.com;
> kuba@kernel.org; netdev@vger.kernel.org
> Subject: Re: [PATCH net-next v2 2/2] net: Add helper function to parse
> netlink msg of ip_tunnel_parm
>
> On Wed, 2022-09-28 at 11:39 +0800, Liu Jian wrote:
> > Add ip_tunnel_netlink_parms to parse netlink msg of ip_tunnel_parm.
> > Reduces duplicate code, no actual functional changes.
> >
> > Signed-off-by: Liu Jian <liujian56@huawei.com>
> > ---
> > v1->v2: Move the implementation of the helper function to
> > v1->ip_tunnel_core.c
> > include/net/ip_tunnels.h | 3 +++
> > net/ipv4/ip_tunnel_core.c | 32 ++++++++++++++++++++++++++++++++
> > net/ipv4/ipip.c | 24 +-----------------------
> > net/ipv6/sit.c | 27 +--------------------------
> > 4 files changed, 37 insertions(+), 49 deletions(-)
> >
> > diff --git a/include/net/ip_tunnels.h b/include/net/ip_tunnels.h index
> > 51da2957cf48..fca357679816 100644
> > --- a/include/net/ip_tunnels.h
> > +++ b/include/net/ip_tunnels.h
> > @@ -305,6 +305,9 @@ void ip_tunnel_setup(struct net_device *dev,
> > unsigned int net_id); bool ip_tunnel_netlink_encap_parms(struct nlattr
> *data[],
> > struct ip_tunnel_encap *encap);
> >
> > +void ip_tunnel_netlink_parms(struct nlattr *data[],
> > + struct ip_tunnel_parm *parms);
> > +
> > extern const struct header_ops ip_tunnel_header_ops;
> > __be16 ip_tunnel_parse_protocol(const struct sk_buff *skb);
> >
> > diff --git a/net/ipv4/ip_tunnel_core.c b/net/ipv4/ip_tunnel_core.c
> > index 526e6a52a973..1e1217e87885 100644
> > --- a/net/ipv4/ip_tunnel_core.c
> > +++ b/net/ipv4/ip_tunnel_core.c
> > @@ -1114,3 +1114,35 @@ bool ip_tunnel_netlink_encap_parms(struct
> nlattr *data[],
> > return ret;
> > }
> > EXPORT_SYMBOL(ip_tunnel_netlink_encap_parms);
> > +
> > +void ip_tunnel_netlink_parms(struct nlattr *data[],
> > + struct ip_tunnel_parm *parms) {
> > + if (data[IFLA_IPTUN_LINK])
> > + parms->link = nla_get_u32(data[IFLA_IPTUN_LINK]);
> > +
> > + if (data[IFLA_IPTUN_LOCAL])
> > + parms->iph.saddr = nla_get_be32(data[IFLA_IPTUN_LOCAL]);
> > +
> > + if (data[IFLA_IPTUN_REMOTE])
> > + parms->iph.daddr =
> nla_get_be32(data[IFLA_IPTUN_REMOTE]);
> > +
> > + if (data[IFLA_IPTUN_TTL]) {
> > + parms->iph.ttl = nla_get_u8(data[IFLA_IPTUN_TTL]);
> > + if (parms->iph.ttl)
> > + parms->iph.frag_off = htons(IP_DF);
> > + }
> > +
> > + if (data[IFLA_IPTUN_TOS])
> > + parms->iph.tos = nla_get_u8(data[IFLA_IPTUN_TOS]);
> > +
> > + if (!data[IFLA_IPTUN_PMTUDISC] ||
> nla_get_u8(data[IFLA_IPTUN_PMTUDISC]))
> > + parms->iph.frag_off = htons(IP_DF);
> > +
> > + if (data[IFLA_IPTUN_FLAGS])
> > + parms->i_flags = nla_get_be16(data[IFLA_IPTUN_FLAGS]);
> > +
> > + if (data[IFLA_IPTUN_PROTO])
> > + parms->iph.protocol =
> nla_get_u8(data[IFLA_IPTUN_PROTO]);
> > +}
> > +EXPORT_SYMBOL(ip_tunnel_netlink_parms);
>
> The same here, I think it should be EXPORT_SYMBOL_GPL()
OK, thanks for your review, I will send v3 for this.
>
> Thanks,
>
> Paolo
>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-09-29 13:38 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-28 3:39 [PATCH net-next v2 0/2] Add helper functions to parse netlink msg of ip_tunnel Liu Jian
2022-09-28 3:39 ` [PATCH net-next v2 1/2] net: Add helper function to parse netlink msg of ip_tunnel_encap Liu Jian
2022-09-29 13:12 ` Paolo Abeni
2022-09-28 3:39 ` [PATCH net-next v2 2/2] net: Add helper function to parse netlink msg of ip_tunnel_parm Liu Jian
2022-09-29 13:16 ` Paolo Abeni
2022-09-29 13:38 ` liujian (CE)
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.