devlink: Add IPv6 header for dpipe
This will be used by the IPv6 host table which will be introduced in the following patches. The fields in the header are added per-use. This header is global and can be reused by many drivers. Signed-off-by: Arkadi Sharshevsky <arkadis@mellanox.com> Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
84ccac6e78
commit
1797f5b3cf
|
@ -330,6 +330,7 @@ int devlink_dpipe_match_put(struct sk_buff *skb,
|
||||||
struct devlink_dpipe_match *match);
|
struct devlink_dpipe_match *match);
|
||||||
extern struct devlink_dpipe_header devlink_dpipe_header_ethernet;
|
extern struct devlink_dpipe_header devlink_dpipe_header_ethernet;
|
||||||
extern struct devlink_dpipe_header devlink_dpipe_header_ipv4;
|
extern struct devlink_dpipe_header devlink_dpipe_header_ipv4;
|
||||||
|
extern struct devlink_dpipe_header devlink_dpipe_header_ipv6;
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
|
|
@ -234,9 +234,14 @@ enum devlink_dpipe_field_ipv4_id {
|
||||||
DEVLINK_DPIPE_FIELD_IPV4_DST_IP,
|
DEVLINK_DPIPE_FIELD_IPV4_DST_IP,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum devlink_dpipe_field_ipv6_id {
|
||||||
|
DEVLINK_DPIPE_FIELD_IPV6_DST_IP,
|
||||||
|
};
|
||||||
|
|
||||||
enum devlink_dpipe_header_id {
|
enum devlink_dpipe_header_id {
|
||||||
DEVLINK_DPIPE_HEADER_ETHERNET,
|
DEVLINK_DPIPE_HEADER_ETHERNET,
|
||||||
DEVLINK_DPIPE_HEADER_IPV4,
|
DEVLINK_DPIPE_HEADER_IPV4,
|
||||||
|
DEVLINK_DPIPE_HEADER_IPV6,
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _UAPI_LINUX_DEVLINK_H_ */
|
#endif /* _UAPI_LINUX_DEVLINK_H_ */
|
||||||
|
|
|
@ -63,6 +63,23 @@ struct devlink_dpipe_header devlink_dpipe_header_ipv4 = {
|
||||||
};
|
};
|
||||||
EXPORT_SYMBOL(devlink_dpipe_header_ipv4);
|
EXPORT_SYMBOL(devlink_dpipe_header_ipv4);
|
||||||
|
|
||||||
|
static struct devlink_dpipe_field devlink_dpipe_fields_ipv6[] = {
|
||||||
|
{
|
||||||
|
.name = "destination ip",
|
||||||
|
.id = DEVLINK_DPIPE_FIELD_IPV6_DST_IP,
|
||||||
|
.bitwidth = 128,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
struct devlink_dpipe_header devlink_dpipe_header_ipv6 = {
|
||||||
|
.name = "ipv6",
|
||||||
|
.id = DEVLINK_DPIPE_HEADER_IPV6,
|
||||||
|
.fields = devlink_dpipe_fields_ipv6,
|
||||||
|
.fields_count = ARRAY_SIZE(devlink_dpipe_fields_ipv6),
|
||||||
|
.global = true,
|
||||||
|
};
|
||||||
|
EXPORT_SYMBOL(devlink_dpipe_header_ipv6);
|
||||||
|
|
||||||
EXPORT_TRACEPOINT_SYMBOL_GPL(devlink_hwmsg);
|
EXPORT_TRACEPOINT_SYMBOL_GPL(devlink_hwmsg);
|
||||||
|
|
||||||
static LIST_HEAD(devlink_list);
|
static LIST_HEAD(devlink_list);
|
||||||
|
|
Loading…
Reference in New Issue