vxlan_build_gbp_hdr will be used by other modules to build gbp option in
vxlan header according to gbp flags.
Signed-off-by: Gavin Li <gavinl@nvidia.com>
Reviewed-by: Gavi Teitz <gavi@nvidia.com>
Reviewed-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Maor Dickman <maord@nvidia.com>
Acked-by: Saeed Mahameed <saeedm@nvidia.com>
---
drivers/net/vxlan/vxlan_core.c | 20 --------------------
include/net/vxlan.h | 20 ++++++++++++++++++++
2 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/drivers/net/vxlan/vxlan_core.c b/drivers/net/vxlan/vxlan_core.c
index b1b179effe2a..bd44467a5a39 100644
--- a/drivers/net/vxlan/vxlan_core.c
+++ b/drivers/net/vxlan/vxlan_core.c
@@ -2140,26 +2140,6 @@ static bool route_shortcircuit(struct net_device *dev, struct sk_buff *skb)
return false;
}
-static void vxlan_build_gbp_hdr(struct vxlanhdr *vxh, u32 vxflags,
- struct vxlan_metadata *md)
-{
- struct vxlanhdr_gbp *gbp;
-
- if (!md->gbp)
- return;
-
- gbp = (struct vxlanhdr_gbp *)vxh;
- vxh->vx_flags |= VXLAN_HF_GBP;
-
- if (md->gbp & VXLAN_GBP_DONT_LEARN)
- gbp->dont_learn = 1;
-
- if (md->gbp & VXLAN_GBP_POLICY_APPLIED)
- gbp->policy_applied = 1;
-
- gbp->policy_id = htons(md->gbp & VXLAN_GBP_ID_MASK);
-}
-
static int vxlan_build_gpe_hdr(struct vxlanhdr *vxh, u32 vxflags,
__be16 protocol)
{
diff --git a/include/net/vxlan.h b/include/net/vxlan.h
index bca5b01af247..02b01a6034a2 100644
--- a/include/net/vxlan.h
+++ b/include/net/vxlan.h
@@ -566,4 +566,24 @@ static inline bool vxlan_fdb_nh_path_select(struct nexthop *nh,
return true;
}
+static inline void vxlan_build_gbp_hdr(struct vxlanhdr *vxh, u32 vxflags,
+ const struct vxlan_metadata *md)
+{
+ struct vxlanhdr_gbp *gbp;
+
+ if (!md->gbp)
+ return;
+
+ gbp = (struct vxlanhdr_gbp *)vxh;
+ vxh->vx_flags |= VXLAN_HF_GBP;
+
+ if (md->gbp & VXLAN_GBP_DONT_LEARN)
+ gbp->dont_learn = 1;
+
+ if (md->gbp & VXLAN_GBP_POLICY_APPLIED)
+ gbp->policy_applied = 1;
+
+ gbp->policy_id = htons(md->gbp & VXLAN_GBP_ID_MASK);
+}
+
#endif
--
2.31.1
On Wed, 2023-02-15 at 11:41 +0200, Gavin Li wrote:
> vxlan_build_gbp_hdr will be used by other modules to build gbp option in
> vxlan header according to gbp flags.
>
> Signed-off-by: Gavin Li <gavinl@nvidia.com>
> Reviewed-by: Gavi Teitz <gavi@nvidia.com>
> Reviewed-by: Roi Dayan <roid@nvidia.com>
> Reviewed-by: Maor Dickman <maord@nvidia.com>
> Acked-by: Saeed Mahameed <saeedm@nvidia.com>
> ---
> drivers/net/vxlan/vxlan_core.c | 20 --------------------
> include/net/vxlan.h | 20 ++++++++++++++++++++
> 2 files changed, 20 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/net/vxlan/vxlan_core.c b/drivers/net/vxlan/vxlan_core.c
> index b1b179effe2a..bd44467a5a39 100644
> --- a/drivers/net/vxlan/vxlan_core.c
> +++ b/drivers/net/vxlan/vxlan_core.c
> @@ -2140,26 +2140,6 @@ static bool route_shortcircuit(struct net_device *dev, struct sk_buff *skb)
> return false;
> }
>
> -static void vxlan_build_gbp_hdr(struct vxlanhdr *vxh, u32 vxflags,
> - struct vxlan_metadata *md)
> -{
> - struct vxlanhdr_gbp *gbp;
> -
> - if (!md->gbp)
> - return;
> -
> - gbp = (struct vxlanhdr_gbp *)vxh;
> - vxh->vx_flags |= VXLAN_HF_GBP;
> -
> - if (md->gbp & VXLAN_GBP_DONT_LEARN)
> - gbp->dont_learn = 1;
> -
> - if (md->gbp & VXLAN_GBP_POLICY_APPLIED)
> - gbp->policy_applied = 1;
> -
> - gbp->policy_id = htons(md->gbp & VXLAN_GBP_ID_MASK);
> -}
> -
> static int vxlan_build_gpe_hdr(struct vxlanhdr *vxh, u32 vxflags,
> __be16 protocol)
> {
> diff --git a/include/net/vxlan.h b/include/net/vxlan.h
> index bca5b01af247..02b01a6034a2 100644
> --- a/include/net/vxlan.h
> +++ b/include/net/vxlan.h
> @@ -566,4 +566,24 @@ static inline bool vxlan_fdb_nh_path_select(struct nexthop *nh,
> return true;
> }
>
> +static inline void vxlan_build_gbp_hdr(struct vxlanhdr *vxh, u32 vxflags,
> + const struct vxlan_metadata *md)
Calling this helper causes a warning on patch 3 due to different types
for the 2nd argument. The warning could be addressed there with an
explicit cast but it looks like 'vxflags' is not used at all here.
I suggest to add a preparation patch dropping such argument (and the
same for vxlan_build_gpe_hdr(), still in the same patch), should be
cleaner.
Thanks,
Paolo
On 2/16/2023 7:57 PM, Paolo Abeni wrote:
> External email: Use caution opening links or attachments
>
>
> On Wed, 2023-02-15 at 11:41 +0200, Gavin Li wrote:
>> vxlan_build_gbp_hdr will be used by other modules to build gbp option in
>> vxlan header according to gbp flags.
>>
>> Signed-off-by: Gavin Li <gavinl@nvidia.com>
>> Reviewed-by: Gavi Teitz <gavi@nvidia.com>
>> Reviewed-by: Roi Dayan <roid@nvidia.com>
>> Reviewed-by: Maor Dickman <maord@nvidia.com>
>> Acked-by: Saeed Mahameed <saeedm@nvidia.com>
>> ---
>> drivers/net/vxlan/vxlan_core.c | 20 --------------------
>> include/net/vxlan.h | 20 ++++++++++++++++++++
>> 2 files changed, 20 insertions(+), 20 deletions(-)
>>
>> diff --git a/drivers/net/vxlan/vxlan_core.c b/drivers/net/vxlan/vxlan_core.c
>> index b1b179effe2a..bd44467a5a39 100644
>> --- a/drivers/net/vxlan/vxlan_core.c
>> +++ b/drivers/net/vxlan/vxlan_core.c
>> @@ -2140,26 +2140,6 @@ static bool route_shortcircuit(struct net_device *dev, struct sk_buff *skb)
>> return false;
>> }
>>
>> -static void vxlan_build_gbp_hdr(struct vxlanhdr *vxh, u32 vxflags,
>> - struct vxlan_metadata *md)
>> -{
>> - struct vxlanhdr_gbp *gbp;
>> -
>> - if (!md->gbp)
>> - return;
>> -
>> - gbp = (struct vxlanhdr_gbp *)vxh;
>> - vxh->vx_flags |= VXLAN_HF_GBP;
>> -
>> - if (md->gbp & VXLAN_GBP_DONT_LEARN)
>> - gbp->dont_learn = 1;
>> -
>> - if (md->gbp & VXLAN_GBP_POLICY_APPLIED)
>> - gbp->policy_applied = 1;
>> -
>> - gbp->policy_id = htons(md->gbp & VXLAN_GBP_ID_MASK);
>> -}
>> -
>> static int vxlan_build_gpe_hdr(struct vxlanhdr *vxh, u32 vxflags,
>> __be16 protocol)
>> {
>> diff --git a/include/net/vxlan.h b/include/net/vxlan.h
>> index bca5b01af247..02b01a6034a2 100644
>> --- a/include/net/vxlan.h
>> +++ b/include/net/vxlan.h
>> @@ -566,4 +566,24 @@ static inline bool vxlan_fdb_nh_path_select(struct nexthop *nh,
>> return true;
>> }
>>
>> +static inline void vxlan_build_gbp_hdr(struct vxlanhdr *vxh, u32 vxflags,
>> + const struct vxlan_metadata *md)
> Calling this helper causes a warning on patch 3 due to different types
> for the 2nd argument. The warning could be addressed there with an
> explicit cast but it looks like 'vxflags' is not used at all here.
>
> I suggest to add a preparation patch dropping such argument (and the
> same for vxlan_build_gpe_hdr(), still in the same patch), should be
> cleaner.
ACK
>
> Thanks,
>
> Paolo
>
© 2016 - 2026 Red Hat, Inc.