diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index f8a2245b70ac354231c7911e9684f756ed47de0f..3e398b8ac21273dc2dc4013bc7b97f901d90b996 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -13,6 +13,7 @@
 #ifndef _LINUX_ETHTOOL_H
 #define _LINUX_ETHTOOL_H
 
+#include <linux/kabi.h>
 #include <linux/bitmap.h>
 #include <linux/compat.h>
 #include <uapi/linux/ethtool.h>
@@ -412,5 +413,38 @@ struct ethtool_ops {
 				      struct ethtool_fecparam *);
 	void	(*get_ethtool_phy_stats)(struct net_device *,
 					 struct ethtool_stats *, u64 *);
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
+	KABI_RESERVE(5)
+	KABI_RESERVE(6)
+	KABI_RESERVE(7)
+	KABI_RESERVE(8)
+	KABI_RESERVE(9)
+	KABI_RESERVE(10)
+	KABI_RESERVE(11)
+	KABI_RESERVE(12)
+	KABI_RESERVE(13)
+	KABI_RESERVE(14)
+	KABI_RESERVE(15)
+	KABI_RESERVE(16)
+	KABI_RESERVE(17)
+	KABI_RESERVE(18)
+	KABI_RESERVE(19)
+	KABI_RESERVE(20)
+	KABI_RESERVE(21)
+	KABI_RESERVE(22)
+	KABI_RESERVE(23)
+	KABI_RESERVE(24)
+	KABI_RESERVE(25)
+	KABI_RESERVE(26)
+	KABI_RESERVE(27)
+	KABI_RESERVE(28)
+	KABI_RESERVE(29)
+	KABI_RESERVE(30)
+	KABI_RESERVE(31)
+	KABI_RESERVE(32)
 };
 #endif /* _LINUX_ETHTOOL_H */
diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h
index 8415bf1a9776245b810c8f92fa16c98eb038a45f..90eaabe33331f5316b8ee34240f406ce7db65f31 100644
--- a/include/linux/ipv6.h
+++ b/include/linux/ipv6.h
@@ -2,6 +2,7 @@
 #ifndef _IPV6_H
 #define _IPV6_H
 
+#include <linux/kabi.h>
 #include <uapi/linux/ipv6.h>
 
 #define ipv6_optlen(p)  (((p)->hdrlen+1) << 3)
@@ -76,6 +77,23 @@ struct ipv6_devconf {
 	__s32           ndisc_tclass;
 
 	struct ctl_table_header *sysctl_header;
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
+	KABI_RESERVE(5)
+	KABI_RESERVE(6)
+	KABI_RESERVE(7)
+	KABI_RESERVE(8)
+	KABI_RESERVE(9)
+	KABI_RESERVE(10)
+	KABI_RESERVE(11)
+	KABI_RESERVE(12)
+	KABI_RESERVE(13)
+	KABI_RESERVE(14)
+	KABI_RESERVE(15)
+	KABI_RESERVE(16)
 };
 
 struct ipv6_params {
diff --git a/include/linux/net.h b/include/linux/net.h
index e0930678c8bf6e6061020176e8013b6e33d8264d..f55bee9726fd0ea414319f0f83ade528c3a45858 100644
--- a/include/linux/net.h
+++ b/include/linux/net.h
@@ -18,6 +18,7 @@
 #ifndef _LINUX_NET_H
 #define _LINUX_NET_H
 
+#include <linux/kabi.h>
 #include <linux/stringify.h>
 #include <linux/random.h>
 #include <linux/wait.h>
@@ -198,6 +199,14 @@ struct proto_ops {
 	int		(*sendmsg_locked)(struct sock *sk, struct msghdr *msg,
 					  size_t size);
 	int		(*set_rcvlowat)(struct sock *sk, int val);
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
+	KABI_RESERVE(5)
+	KABI_RESERVE(6)
+	KABI_RESERVE(7)
 };
 
 #define DECLARE_SOCKADDR(type, dst, src)	\
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 8cbdea4708f647c24d11156bac1e54e28995bb56..a145b12076a8d3d6d4b9c73d4da729473325d425 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -25,6 +25,7 @@
 #ifndef _LINUX_NETDEVICE_H
 #define _LINUX_NETDEVICE_H
 
+#include <linux/kabi.h>
 #include <linux/timer.h>
 #include <linux/bug.h>
 #include <linux/delay.h>
@@ -274,6 +275,10 @@ struct header_ops {
 				const struct net_device *dev,
 				const unsigned char *haddr);
 	bool	(*validate)(const char *ll_header, unsigned int len);
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
 };
 
 /* These flag bits are private to the generic network queueing
@@ -339,6 +344,14 @@ struct napi_struct {
 	struct list_head	dev_list;
 	struct hlist_node	napi_hash_node;
 	unsigned int		napi_id;
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
+	KABI_RESERVE(5)
+	KABI_RESERVE(6)
+	KABI_RESERVE(7)
 };
 
 enum {
@@ -598,6 +611,15 @@ struct netdev_queue {
 #ifdef CONFIG_BQL
 	struct dql		dql;
 #endif
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
+	KABI_RESERVE(5)
+	KABI_RESERVE(6)
+	KABI_RESERVE(7)
+	KABI_RESERVE(8)
 } ____cacheline_aligned_in_smp;
 
 extern int sysctl_fb_tunnels_only_for_init_net;
@@ -712,6 +734,15 @@ struct netdev_rx_queue {
 	struct kobject			kobj;
 	struct net_device		*dev;
 	struct xdp_rxq_info		xdp_rxq;
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
+	KABI_RESERVE(5)
+	KABI_RESERVE(6)
+	KABI_RESERVE(7)
+	KABI_RESERVE(8)
 } ____cacheline_aligned_in_smp;
 
 /*
@@ -888,6 +919,14 @@ struct xfrmdev_ops {
 	bool	(*xdo_dev_offload_ok) (struct sk_buff *skb,
 				       struct xfrm_state *x);
 	void	(*xdo_dev_state_advance_esn) (struct xfrm_state *x);
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
+	KABI_RESERVE(5)
+	KABI_RESERVE(6)
+	KABI_RESERVE(7)
 };
 #endif
 
@@ -910,6 +949,14 @@ struct tlsdev_ops {
 			    enum tls_offload_ctx_dir direction);
 	void (*tls_dev_resync_rx)(struct net_device *netdev,
 				  struct sock *sk, u32 seq, u64 rcd_sn);
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
+	KABI_RESERVE(5)
+	KABI_RESERVE(6)
+	KABI_RESERVE(7)
 };
 #endif
 
@@ -1410,6 +1457,54 @@ struct net_device_ops {
 						u32 flags);
 	int			(*ndo_xsk_async_xmit)(struct net_device *dev,
 						      u32 queue_id);
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
+	KABI_RESERVE(5)
+	KABI_RESERVE(6)
+	KABI_RESERVE(7)
+	KABI_RESERVE(8)
+	KABI_RESERVE(9)
+	KABI_RESERVE(10)
+	KABI_RESERVE(11)
+	KABI_RESERVE(12)
+	KABI_RESERVE(13)
+	KABI_RESERVE(14)
+	KABI_RESERVE(15)
+	KABI_RESERVE(16)
+	KABI_RESERVE(17)
+	KABI_RESERVE(18)
+	KABI_RESERVE(19)
+	KABI_RESERVE(20)
+	KABI_RESERVE(21)
+	KABI_RESERVE(22)
+	KABI_RESERVE(23)
+	KABI_RESERVE(24)
+	KABI_RESERVE(25)
+	KABI_RESERVE(26)
+	KABI_RESERVE(27)
+	KABI_RESERVE(28)
+	KABI_RESERVE(29)
+	KABI_RESERVE(30)
+	KABI_RESERVE(31)
+	KABI_RESERVE(32)
+	KABI_RESERVE(33)
+	KABI_RESERVE(34)
+	KABI_RESERVE(35)
+	KABI_RESERVE(36)
+	KABI_RESERVE(37)
+	KABI_RESERVE(38)
+	KABI_RESERVE(39)
+	KABI_RESERVE(40)
+	KABI_RESERVE(41)
+	KABI_RESERVE(42)
+	KABI_RESERVE(43)
+	KABI_RESERVE(44)
+	KABI_RESERVE(45)
+	KABI_RESERVE(46)
+	KABI_RESERVE(47)
 };
 
 /**
@@ -2020,6 +2115,37 @@ struct net_device {
 	struct lock_class_key	*qdisc_running_key;
 	bool			proto_down;
 	unsigned		wol_enabled:1;
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
+	KABI_RESERVE(5)
+	KABI_RESERVE(6)
+	KABI_RESERVE(7)
+	KABI_RESERVE(8)
+	KABI_RESERVE(9)
+	KABI_RESERVE(10)
+	KABI_RESERVE(11)
+	KABI_RESERVE(12)
+	KABI_RESERVE(13)
+	KABI_RESERVE(14)
+	KABI_RESERVE(15)
+	KABI_RESERVE(16)
+	KABI_RESERVE(17)
+	KABI_RESERVE(18)
+	KABI_RESERVE(19)
+	KABI_RESERVE(20)
+	KABI_RESERVE(21)
+	KABI_RESERVE(22)
+	KABI_RESERVE(23)
+	KABI_RESERVE(24)
+	KABI_RESERVE(25)
+	KABI_RESERVE(26)
+	KABI_RESERVE(27)
+	KABI_RESERVE(28)
+	KABI_RESERVE(29)
+	KABI_RESERVE(30)
 };
 #define to_net_dev(d) container_of(d, struct net_device, dev)
 
@@ -2335,6 +2461,11 @@ struct packet_type {
 					    struct sock *sk);
 	void			*af_packet_priv;
 	struct list_head	list;
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
 };
 
 struct offload_callbacks {
diff --git a/include/net/dcbnl.h b/include/net/dcbnl.h
index e22a8a3c089b8c8484e0b0195fbfaed246458d78..8c7b96609ef711df85721913444107cac18285e0 100644
--- a/include/net/dcbnl.h
+++ b/include/net/dcbnl.h
@@ -19,6 +19,7 @@
 #ifndef __NET_DCBNL_H__
 #define __NET_DCBNL_H__
 
+#include <linux/kabi.h>
 #include <linux/dcbnl.h>
 
 struct dcb_app_type {
@@ -118,6 +119,22 @@ struct dcbnl_rtnl_ops {
 	/* buffer settings */
 	int (*dcbnl_getbuffer)(struct net_device *, struct dcbnl_buffer *);
 	int (*dcbnl_setbuffer)(struct net_device *, struct dcbnl_buffer *);
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
+	KABI_RESERVE(5)
+	KABI_RESERVE(6)
+	KABI_RESERVE(7)
+	KABI_RESERVE(8)
+	KABI_RESERVE(9)
+	KABI_RESERVE(10)
+	KABI_RESERVE(11)
+	KABI_RESERVE(12)
+	KABI_RESERVE(13)
+	KABI_RESERVE(14)
+	KABI_RESERVE(15)
 };
 
 #endif /* __NET_DCBNL_H__ */
diff --git a/include/net/dst.h b/include/net/dst.h
index 6cf0870414c783720026a151ba94307a2bb4ad30..797d9a1575e0265761a712e39d3a514bbaa4307e 100644
--- a/include/net/dst.h
+++ b/include/net/dst.h
@@ -9,6 +9,7 @@
 #ifndef _NET_DST_H
 #define _NET_DST_H
 
+#include <linux/kabi.h>
 #include <net/dst_ops.h>
 #include <linux/netdevice.h>
 #include <linux/rtnetlink.h>
@@ -88,6 +89,17 @@ struct dst_entry {
 #ifndef CONFIG_64BIT
 	atomic_t		__refcnt;	/* 32-bit offset 64 */
 #endif
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
+	KABI_RESERVE(5)
+	KABI_RESERVE(6)
+	KABI_RESERVE(7)
+	KABI_RESERVE(8)
+	KABI_RESERVE(9)
+	KABI_RESERVE(10)
 };
 
 struct dst_metrics {
diff --git a/include/net/dst_ops.h b/include/net/dst_ops.h
index 5ec645f27ee3841f9a4074c94e5dca37bb86fc2e..05a5c785102ddf49865e1c5114b748886b1bc930 100644
--- a/include/net/dst_ops.h
+++ b/include/net/dst_ops.h
@@ -1,6 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 #ifndef _NET_DST_OPS_H
 #define _NET_DST_OPS_H
+#include <linux/kabi.h>
 #include <linux/types.h>
 #include <linux/percpu_counter.h>
 #include <linux/cache.h>
@@ -40,6 +41,15 @@ struct dst_ops {
 	struct kmem_cache	*kmem_cachep;
 
 	struct percpu_counter	pcpuc_entries ____cacheline_aligned_in_smp;
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
+	KABI_RESERVE(5)
+	KABI_RESERVE(6)
+	KABI_RESERVE(7)
+	KABI_RESERVE(8)
 };
 
 static inline int dst_entries_get_fast(struct dst_ops *dst)
diff --git a/include/net/fib_rules.h b/include/net/fib_rules.h
index b473df5b95121f3f810d8ffe29f858369f5c8fd5..a5aaf9a0c1c1329073e95e8a3652b909a0d82678 100644
--- a/include/net/fib_rules.h
+++ b/include/net/fib_rules.h
@@ -2,6 +2,7 @@
 #ifndef __NET_FIB_RULES_H
 #define __NET_FIB_RULES_H
 
+#include <linux/kabi.h>
 #include <linux/types.h>
 #include <linux/slab.h>
 #include <linux/netdevice.h>
@@ -43,6 +44,15 @@ struct fib_rule {
 	struct fib_rule_port_range	sport_range;
 	struct fib_rule_port_range	dport_range;
 	struct rcu_head		rcu;
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
+	KABI_RESERVE(5)
+	KABI_RESERVE(6)
+	KABI_RESERVE(7)
+	KABI_RESERVE(8)
 };
 
 struct fib_lookup_arg {
diff --git a/include/net/flow.h b/include/net/flow.h
index 8ce21793094e32248ac2656ad5c7a9d986b35970..2310f0e7d3eac889e57f96f50a5e5d2360d2de57 100644
--- a/include/net/flow.h
+++ b/include/net/flow.h
@@ -8,6 +8,7 @@
 #ifndef _NET_FLOW_H
 #define _NET_FLOW_H
 
+#include <linux/kabi.h>
 #include <linux/socket.h>
 #include <linux/in6.h>
 #include <linux/atomic.h>
@@ -40,6 +41,9 @@ struct flowi_common {
 	__u32	flowic_secid;
 	struct flowi_tunnel flowic_tun_key;
 	kuid_t  flowic_uid;
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
 };
 
 union flowi_uli {
@@ -91,6 +95,9 @@ struct flowi4 {
 #define fl4_ipsec_spi		uli.spi
 #define fl4_mh_type		uli.mht.type
 #define fl4_gre_key		uli.gre_key
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
 } __attribute__((__aligned__(BITS_PER_LONG/8)));
 
 static inline void flowi4_init_output(struct flowi4 *fl4, int oif,
@@ -151,6 +158,9 @@ struct flowi6 {
 #define fl6_mh_type		uli.mht.type
 #define fl6_gre_key		uli.gre_key
 	__u32			mp_hash;
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
 } __attribute__((__aligned__(BITS_PER_LONG/8)));
 
 struct flowidn {
diff --git a/include/net/genetlink.h b/include/net/genetlink.h
index decf6012a40163c564900c3c39e50d2bf48aa64f..5aa6238b0de2f69fffaf88c78de35c1e74ca9c6d 100644
--- a/include/net/genetlink.h
+++ b/include/net/genetlink.h
@@ -2,6 +2,7 @@
 #ifndef __NET_GENERIC_NETLINK_H
 #define __NET_GENERIC_NETLINK_H
 
+#include <linux/kabi.h>
 #include <linux/genetlink.h>
 #include <net/netlink.h>
 #include <net/net_namespace.h>
@@ -71,6 +72,15 @@ struct genl_family {
 	unsigned int		n_mcgrps;
 	unsigned int		mcgrp_offset;	/* private */
 	struct module		*module;
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
+	KABI_RESERVE(5)
+	KABI_RESERVE(6)
+	KABI_RESERVE(7)
+	KABI_RESERVE(8)
 };
 
 struct nlattr **genl_family_attrbuf(const struct genl_family *family);
@@ -141,6 +151,14 @@ struct genl_ops {
 	u8			cmd;
 	u8			internal_flags;
 	u8			flags;
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
+	KABI_RESERVE(5)
+	KABI_RESERVE(6)
+	KABI_RESERVE(7)
 };
 
 int genl_register_family(struct genl_family *family);
diff --git a/include/net/l3mdev.h b/include/net/l3mdev.h
index 128487658ff7c2fa147fabd02bc4c9ef943656e3..a421e2fa06e33afed6c9211f0728fc484b93951f 100644
--- a/include/net/l3mdev.h
+++ b/include/net/l3mdev.h
@@ -11,6 +11,7 @@
 #ifndef _NET_L3MDEV_H_
 #define _NET_L3MDEV_H_
 
+#include <linux/kabi.h>
 #include <net/dst.h>
 #include <net/fib_rules.h>
 
@@ -37,6 +38,14 @@ struct l3mdev_ops {
 	/* IPv6 ops */
 	struct dst_entry * (*l3mdev_link_scope_lookup)(const struct net_device *dev,
 						 struct flowi6 *fl6);
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
+	KABI_RESERVE(5)
+	KABI_RESERVE(6)
+	KABI_RESERVE(7)
 };
 
 #ifdef CONFIG_NET_L3_MASTER_DEV
diff --git a/include/net/lwtunnel.h b/include/net/lwtunnel.h
index 33fd9ba7e0e5a29d5dd1705112a9213f08531612..1fb6f154b4232580486706ab77832869f525d853 100644
--- a/include/net/lwtunnel.h
+++ b/include/net/lwtunnel.h
@@ -2,6 +2,7 @@
 #ifndef __NET_LWTUNNEL_H
 #define __NET_LWTUNNEL_H 1
 
+#include <linux/kabi.h>
 #include <linux/lwtunnel.h>
 #include <linux/netdevice.h>
 #include <linux/skbuff.h>
@@ -30,6 +31,11 @@ struct lwtunnel_state {
 	int		(*orig_output)(struct net *net, struct sock *sk, struct sk_buff *skb);
 	int		(*orig_input)(struct sk_buff *);
 	struct		rcu_head rcu;
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
 	__u8            data[0];
 };
 
diff --git a/include/net/neighbour.h b/include/net/neighbour.h
index beeeed1268720ee2d699b287c0b1a7f68a36c63a..20b6b5681640302acb4d06a3e21785a018130cc2 100644
--- a/include/net/neighbour.h
+++ b/include/net/neighbour.h
@@ -2,6 +2,7 @@
 #ifndef _NET_NEIGHBOUR_H
 #define _NET_NEIGHBOUR_H
 
+#include <linux/kabi.h>
 #include <linux/neighbour.h>
 
 /*
@@ -156,6 +157,9 @@ struct neighbour {
 	const struct neigh_ops	*ops;
 	struct rcu_head		rcu;
 	struct net_device	*dev;
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
 	u8			primary_key[0];
 } __randomize_layout;
 
diff --git a/include/net/rtnetlink.h b/include/net/rtnetlink.h
index 0bbaa54884233a5dda59358da79554999a04e329..e8dbfa48b3a4b6517c038fe818b01387f1812bf8 100644
--- a/include/net/rtnetlink.h
+++ b/include/net/rtnetlink.h
@@ -2,6 +2,7 @@
 #ifndef __NET_RTNETLINK_H
 #define __NET_RTNETLINK_H
 
+#include <linux/kabi.h>
 #include <linux/rtnetlink.h>
 #include <net/netlink.h>
 
@@ -110,6 +111,22 @@ struct rtnl_link_ops {
 	int			(*fill_linkxstats)(struct sk_buff *skb,
 						   const struct net_device *dev,
 						   int *prividx, int attr);
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
+	KABI_RESERVE(5)
+	KABI_RESERVE(6)
+	KABI_RESERVE(7)
+	KABI_RESERVE(8)
+	KABI_RESERVE(9)
+	KABI_RESERVE(10)
+	KABI_RESERVE(11)
+	KABI_RESERVE(12)
+	KABI_RESERVE(13)
+	KABI_RESERVE(14)
+	KABI_RESERVE(15)
 };
 
 int __rtnl_link_register(struct rtnl_link_ops *ops);
diff --git a/include/net/sock.h b/include/net/sock.h
index 14eb911b625850276a77c6ae5c567b122e65afcb..a5d112270206873439821e3fb90b923aefada248 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -40,6 +40,7 @@
 #ifndef _SOCK_H
 #define _SOCK_H
 
+#include <linux/kabi.h>
 #include <linux/hardirq.h>
 #include <linux/kernel.h>
 #include <linux/list.h>
@@ -509,6 +510,23 @@ struct sock {
 	void                    (*sk_destruct)(struct sock *sk);
 	struct sock_reuseport __rcu	*sk_reuseport_cb;
 	struct rcu_head		sk_rcu;
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
+	KABI_RESERVE(5)
+	KABI_RESERVE(6)
+	KABI_RESERVE(7)
+	KABI_RESERVE(8)
+	KABI_RESERVE(9)
+	KABI_RESERVE(10)
+	KABI_RESERVE(11)
+	KABI_RESERVE(12)
+	KABI_RESERVE(13)
+	KABI_RESERVE(14)
+	KABI_RESERVE(15)
+	KABI_RESERVE(16)
 };
 
 enum sk_pacing {
@@ -1170,6 +1188,23 @@ struct proto {
 	atomic_t		socks;
 #endif
 	int			(*diag_destroy)(struct sock *sk, int err);
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
+	KABI_RESERVE(5)
+	KABI_RESERVE(6)
+	KABI_RESERVE(7)
+	KABI_RESERVE(8)
+	KABI_RESERVE(9)
+	KABI_RESERVE(10)
+	KABI_RESERVE(11)
+	KABI_RESERVE(12)
+	KABI_RESERVE(13)
+	KABI_RESERVE(14)
+	KABI_RESERVE(15)
+	KABI_RESERVE(16)
 } __randomize_layout;
 
 int proto_register(struct proto *prot, int alloc_slab);
diff --git a/include/net/switchdev.h b/include/net/switchdev.h
index d574ce63bf220d1069d2d2a5fa7177496984d92f..19d0b17d4188936b665bb9f5d186da1522275a6f 100644
--- a/include/net/switchdev.h
+++ b/include/net/switchdev.h
@@ -11,6 +11,7 @@
 #ifndef _LINUX_SWITCHDEV_H_
 #define _LINUX_SWITCHDEV_H_
 
+#include <linux/kabi.h>
 #include <linux/netdevice.h>
 #include <linux/notifier.h>
 #include <linux/list.h>
@@ -85,6 +86,11 @@ struct switchdev_obj {
 	u32 flags;
 	void *complete_priv;
 	void (*complete)(struct net_device *dev, int err, void *priv);
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
 };
 
 /* SWITCHDEV_OBJ_ID_PORT_VLAN */
@@ -137,6 +143,14 @@ struct switchdev_ops {
 					  struct switchdev_trans *trans);
 	int	(*switchdev_port_obj_del)(struct net_device *dev,
 					  const struct switchdev_obj *obj);
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
+	KABI_RESERVE(5)
+	KABI_RESERVE(6)
+	KABI_RESERVE(7)
 };
 
 enum switchdev_notifier_type {
diff --git a/include/net/tls.h b/include/net/tls.h
index 1469af57203630e9dc48b684106af6e4ee76702f..b283c9a35e913393d479d13f3870eef1d7f3d435 100644
--- a/include/net/tls.h
+++ b/include/net/tls.h
@@ -34,6 +34,7 @@
 #ifndef _TLS_OFFLOAD_H
 #define _TLS_OFFLOAD_H
 
+#include <linux/kabi.h>
 #include <linux/types.h>
 #include <asm/byteorder.h>
 #include <linux/crypto.h>
@@ -175,6 +176,11 @@ struct cipher_context {
 	char *iv;
 	u16 rec_seq_size;
 	char *rec_seq;
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
 };
 
 union tls_crypto_context {
diff --git a/include/net/xdp.h b/include/net/xdp.h
index 76b95256c266495431a1c375f14cfc7ed76b0247..42f4841bd9ffa312116cf9310d9c93ce1f885dd0 100644
--- a/include/net/xdp.h
+++ b/include/net/xdp.h
@@ -6,6 +6,7 @@
 #ifndef __LINUX_NET_XDP_H__
 #define __LINUX_NET_XDP_H__
 
+#include <linux/kabi.h>
 /**
  * DOC: XDP RX-queue information
  *
@@ -61,6 +62,13 @@ struct xdp_rxq_info {
 	u32 queue_index;
 	u32 reg_state;
 	struct xdp_mem_info mem;
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
+	KABI_RESERVE(5)
+	KABI_RESERVE(6)
 } ____cacheline_aligned; /* perf critical, avoid false-sharing */
 
 struct xdp_buff {
diff --git a/include/net/xfrm.h b/include/net/xfrm.h
index 5e3daf53b3d1ec1f0039fa8466ab95c2cad3c77c..5c82da75045e85d10f0afdb55e94d25f711582e7 100644
--- a/include/net/xfrm.h
+++ b/include/net/xfrm.h
@@ -2,6 +2,7 @@
 #ifndef _NET_XFRM_H
 #define _NET_XFRM_H
 
+#include <linux/kabi.h>
 #include <linux/compiler.h>
 #include <linux/xfrm.h>
 #include <linux/spinlock.h>
@@ -123,6 +124,8 @@ struct xfrm_state_walk {
 	u8			proto;
 	u32			seq;
 	struct xfrm_address_filter *filter;
+
+	KABI_RESERVE(1)
 };
 
 struct xfrm_state_offload {
@@ -130,6 +133,11 @@ struct xfrm_state_offload {
 	unsigned long		offload_handle;
 	unsigned int		num_exthdrs;
 	u8			flags;
+
+	KABI_RESERVE(1)
+	KABI_RESERVE(2)
+	KABI_RESERVE(3)
+	KABI_RESERVE(4)
 };
 
 /* Full description of state of transformer. */