struct sk_buff;

struct net_device;



struct rb_node;

struct rb_node {
	long unsigned int          __rb_parent_color;    /*     0     8 */
	struct rb_node *           rb_right;             /*     8     8 */
	struct rb_node *           rb_left;              /*    16     8 */

	/* size: 24, cachelines: 1, members: 3 */
	/* last cacheline: 24 bytes */
};

struct list_head;

struct list_head {
	struct list_head *         next;                 /*     0     8 */
	struct list_head *         prev;                 /*     8     8 */

	/* size: 16, cachelines: 1, members: 2 */
	/* last cacheline: 16 bytes */
};

struct llist_node;

struct llist_node {
	struct llist_node *        next;                 /*     0     8 */

	/* size: 8, cachelines: 1, members: 1 */
	/* last cacheline: 8 bytes */
};


struct sock;


typedef long long int __s64;
typedef __s64 s64;
typedef s64 ktime_t;

typedef long long unsigned int __u64;
typedef __u64 u64;





typedef short unsigned int __u16;

typedef unsigned char __u8;

typedef unsigned int __u32;
typedef __u32 __wsum;



typedef __u16 __be16;


typedef __u16 u16;






typedef unsigned int sk_buff_data_t;

typedef struct {
	int                        counter;              /*     0     4 */

	/* size: 4, cachelines: 1, members: 1 */
	/* last cacheline: 4 bytes */
} atomic_t;

struct refcount_struct {
	atomic_t                   refs;                 /*     0     4 */

	/* size: 4, cachelines: 1, members: 1 */
	/* last cacheline: 4 bytes */
};
typedef struct refcount_struct refcount_t;

struct skb_ext;

struct sk_buff {
	union {
		struct {
			struct sk_buff * next;           /*     0     8 */
			struct sk_buff * prev;           /*     8     8 */
			union {
				struct net_device * dev; /*    16     8 */
				long unsigned int dev_scratch; /*    16     8 */
			};                               /*    16     8 */
		};                                       /*     0    24 */
		struct rb_node     rbnode;               /*     0    24 */
		struct list_head   list;                 /*     0    16 */
		struct llist_node  ll_node;              /*     0     8 */
	};                                               /*     0    24 */
	union {
		struct sock *      sk;                   /*    24     8 */
		int                ip_defrag_offset;     /*    24     4 */
	};                                               /*    24     8 */
	union {
		ktime_t            tstamp;               /*    32     8 */
		u64                skb_mstamp_ns;        /*    32     8 */
	};                                               /*    32     8 */
	char                       cb[48];               /*    40    48 */
	/* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */
	union {
		struct {
			long unsigned int _skb_refdst;   /*    88     8 */
			void       (*destructor)(struct sk_buff *); /*    96     8 */
		};                                       /*    88    16 */
		struct list_head   tcp_tsorted_anchor;   /*    88    16 */
		long unsigned int  _sk_redir;            /*    88     8 */
	};                                               /*    88    16 */
	long unsigned int          _nfct;                /*   104     8 */
	unsigned int               len;                  /*   112     4 */
	unsigned int               data_len;             /*   116     4 */
	__u16                      mac_len;              /*   120     2 */
	__u16                      hdr_len;              /*   122     2 */
	__u16                      queue_mapping;        /*   124     2 */
	__u8                       __cloned_offset[0];   /*   126     0 */
	__u8                       cloned:1;             /*   126: 0  1 */
	__u8                       nohdr:1;              /*   126: 1  1 */
	__u8                       fclone:2;             /*   126: 2  1 */
	__u8                       peeked:1;             /*   126: 4  1 */
	__u8                       head_frag:1;          /*   126: 5  1 */
	__u8                       pfmemalloc:1;         /*   126: 6  1 */
	__u8                       pp_recycle:1;         /*   126: 7  1 */
	__u8                       active_extensions;    /*   127     1 */
	/* --- cacheline 2 boundary (128 bytes) --- */
	union {
		struct {
			__u8       __pkt_type_offset[0]; /*   128     0 */
			__u8       pkt_type:3;           /*   128: 0  1 */
			__u8       ignore_df:1;          /*   128: 3  1 */
			__u8       nf_trace:1;           /*   128: 4  1 */
			__u8       ip_summed:2;          /*   128: 5  1 */
			__u8       ooo_okay:1;           /*   128: 7  1 */
			__u8       l4_hash:1;            /*   129: 0  1 */
			__u8       sw_hash:1;            /*   129: 1  1 */
			__u8       wifi_acked_valid:1;   /*   129: 2  1 */
			__u8       wifi_acked:1;         /*   129: 3  1 */
			__u8       no_fcs:1;             /*   129: 4  1 */
			__u8       encapsulation:1;      /*   129: 5  1 */
			__u8       encap_hdr_csum:1;     /*   129: 6  1 */
			__u8       csum_valid:1;         /*   129: 7  1 */
			__u8       __pkt_vlan_present_offset[0]; /*   130     0 */
			__u8       vlan_present:1;       /*   130: 0  1 */
			__u8       csum_complete_sw:1;   /*   130: 1  1 */
			__u8       csum_level:2;         /*   130: 2  1 */
			__u8       dst_pending_confirm:1; /*   130: 4  1 */
			__u8       mono_delivery_time:1; /*   130: 5  1 */
			__u8       tc_skip_classify:1;   /*   130: 6  1 */
			__u8       tc_at_ingress:1;      /*   130: 7  1 */
			__u8       ndisc_nodetype:2;     /*   131: 0  1 */
			__u8       ipvs_property:1;      /*   131: 2  1 */
			__u8       inner_protocol_type:1; /*   131: 3  1 */
			__u8       remcsum_offload:1;    /*   131: 4  1 */
			__u8       offload_fwd_mark:1;   /*   131: 5  1 */
			__u8       offload_l3_fwd_mark:1; /*   131: 6  1 */
			__u8       redirected:1;         /*   131: 7  1 */
			__u8       from_ingress:1;       /*   132: 0  1 */
			__u8       nf_skip_egress:1;     /*   132: 1  1 */
			__u8       decrypted:1;          /*   132: 2  1 */
			__u8       slow_gro:1;           /*   132: 3  1 */
			__u8       csum_not_inet:1;      /*   132: 4  1 */

			/* XXX 3 bits hole, try to pack */
			/* XXX 1 byte hole, try to pack */

			__u16      tc_index;             /*   134     2 */
			union {
				__wsum csum;             /*   136     4 */
				struct {
					__u16  csum_start; /*   136     2 */
					__u16  csum_offset; /*   138     2 */
				};                       /*   136     4 */
			};                               /*   136     4 */
			__u32      priority;             /*   140     4 */
			int        skb_iif;              /*   144     4 */
			__u32      hash;                 /*   148     4 */
			__be16     vlan_proto;           /*   152     2 */
			__u16      vlan_tci;             /*   154     2 */
			union {
				unsigned int napi_id;    /*   156     4 */
				unsigned int sender_cpu; /*   156     4 */
			};                               /*   156     4 */
			u16        alloc_cpu;            /*   160     2 */

			/* XXX 2 bytes hole, try to pack */

			__u32      secmark;              /*   164     4 */
			union {
				__u32 mark;              /*   168     4 */
				__u32 reserved_tailroom; /*   168     4 */
			};                               /*   168     4 */
			union {
				__be16 inner_protocol;   /*   172     2 */
				__u8 inner_ipproto;      /*   172     1 */
			};                               /*   172     2 */
			__u16      inner_transport_header; /*   174     2 */
			__u16      inner_network_header; /*   176     2 */
			__u16      inner_mac_header;     /*   178     2 */
			__be16     protocol;             /*   180     2 */
			__u16      transport_header;     /*   182     2 */
			__u16      network_header;       /*   184     2 */
			__u16      mac_header;           /*   186     2 */
		};                                       /*   128    60 */
		struct {
			__u8       __pkt_type_offset[0]; /*   128     0 */
			__u8       pkt_type:3;           /*   128: 0  1 */
			__u8       ignore_df:1;          /*   128: 3  1 */
			__u8       nf_trace:1;           /*   128: 4  1 */
			__u8       ip_summed:2;          /*   128: 5  1 */
			__u8       ooo_okay:1;           /*   128: 7  1 */
			__u8       l4_hash:1;            /*   129: 0  1 */
			__u8       sw_hash:1;            /*   129: 1  1 */
			__u8       wifi_acked_valid:1;   /*   129: 2  1 */
			__u8       wifi_acked:1;         /*   129: 3  1 */
			__u8       no_fcs:1;             /*   129: 4  1 */
			__u8       encapsulation:1;      /*   129: 5  1 */
			__u8       encap_hdr_csum:1;     /*   129: 6  1 */
			__u8       csum_valid:1;         /*   129: 7  1 */
			__u8       __pkt_vlan_present_offset[0]; /*   130     0 */
			__u8       vlan_present:1;       /*   130: 0  1 */
			__u8       csum_complete_sw:1;   /*   130: 1  1 */
			__u8       csum_level:2;         /*   130: 2  1 */
			__u8       dst_pending_confirm:1; /*   130: 4  1 */
			__u8       mono_delivery_time:1; /*   130: 5  1 */
			__u8       tc_skip_classify:1;   /*   130: 6  1 */
			__u8       tc_at_ingress:1;      /*   130: 7  1 */
			__u8       ndisc_nodetype:2;     /*   131: 0  1 */
			__u8       ipvs_property:1;      /*   131: 2  1 */
			__u8       inner_protocol_type:1; /*   131: 3  1 */
			__u8       remcsum_offload:1;    /*   131: 4  1 */
			__u8       offload_fwd_mark:1;   /*   131: 5  1 */
			__u8       offload_l3_fwd_mark:1; /*   131: 6  1 */
			__u8       redirected:1;         /*   131: 7  1 */
			__u8       from_ingress:1;       /*   132: 0  1 */
			__u8       nf_skip_egress:1;     /*   132: 1  1 */
			__u8       decrypted:1;          /*   132: 2  1 */
			__u8       slow_gro:1;           /*   132: 3  1 */
			__u8       csum_not_inet:1;      /*   132: 4  1 */

			/* XXX 3 bits hole, try to pack */
			/* XXX 1 byte hole, try to pack */

			__u16      tc_index;             /*   134     2 */
			union {
				__wsum csum;             /*   136     4 */
				struct {
					__u16  csum_start; /*   136     2 */
					__u16  csum_offset; /*   138     2 */
				};                       /*   136     4 */
			};                               /*   136     4 */
			__u32      priority;             /*   140     4 */
			int        skb_iif;              /*   144     4 */
			__u32      hash;                 /*   148     4 */
			__be16     vlan_proto;           /*   152     2 */
			__u16      vlan_tci;             /*   154     2 */
			union {
				unsigned int napi_id;    /*   156     4 */
				unsigned int sender_cpu; /*   156     4 */
			};                               /*   156     4 */
			u16        alloc_cpu;            /*   160     2 */

			/* XXX 2 bytes hole, try to pack */

			__u32      secmark;              /*   164     4 */
			union {
				__u32 mark;              /*   168     4 */
				__u32 reserved_tailroom; /*   168     4 */
			};                               /*   168     4 */
			union {
				__be16 inner_protocol;   /*   172     2 */
				__u8 inner_ipproto;      /*   172     1 */
			};                               /*   172     2 */
			__u16      inner_transport_header; /*   174     2 */
			__u16      inner_network_header; /*   176     2 */
			__u16      inner_mac_header;     /*   178     2 */
			__be16     protocol;             /*   180     2 */
			__u16      transport_header;     /*   182     2 */
			__u16      network_header;       /*   184     2 */
			__u16      mac_header;           /*   186     2 */
		} headers;                               /*   128    60 */
	};                                               /*   128    60 */
	sk_buff_data_t             tail;                 /*   188     4 */
	/* --- cacheline 3 boundary (192 bytes) --- */
	sk_buff_data_t             end;                  /*   192     4 */

	/* XXX 4 bytes hole, try to pack */

	unsigned char *            head;                 /*   200     8 */
	unsigned char *            data;                 /*   208     8 */
	unsigned int               truesize;             /*   216     4 */
	refcount_t                 users;                /*   220     4 */
	struct skb_ext *           extensions;           /*   224     8 */

	/* size: 232, cachelines: 4, members: 28 */
	/* sum members: 227, holes: 1, sum holes: 4 */
	/* sum bitfield members: 8 bits (1 bytes) */
	/* last cacheline: 40 bytes */
};


