diff --git a/libc/kernel/uapi/linux/xfrm.h b/libc/kernel/uapi/linux/xfrm.h
index 2d11fc0..3ab173a 100644
--- a/libc/kernel/uapi/linux/xfrm.h
+++ b/libc/kernel/uapi/linux/xfrm.h
@@ -21,23 +21,23 @@
 #include <linux/types.h>
 typedef union {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __be32 a4;
- __be32 a6[4];
+  __be32 a4;
+  __be32 a6[4];
 } xfrm_address_t;
 struct xfrm_id {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- xfrm_address_t daddr;
- __be32 spi;
- __u8 proto;
+  xfrm_address_t daddr;
+  __be32 spi;
+  __u8 proto;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct xfrm_sec_ctx {
- __u8 ctx_doi;
- __u8 ctx_alg;
- __u16 ctx_len;
+  __u8 ctx_doi;
+  __u8 ctx_alg;
+  __u16 ctx_len;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 ctx_sid;
- char ctx_str[0];
+  __u32 ctx_sid;
+  char ctx_str[0];
 };
 #define XFRM_SC_DOI_RESERVED 0
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
@@ -46,112 +46,112 @@
 #define XFRM_SC_ALG_SELINUX 1
 struct xfrm_selector {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- xfrm_address_t daddr;
- xfrm_address_t saddr;
- __be16 dport;
- __be16 dport_mask;
+  xfrm_address_t daddr;
+  xfrm_address_t saddr;
+  __be16 dport;
+  __be16 dport_mask;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __be16 sport;
- __be16 sport_mask;
- __u16 family;
- __u8 prefixlen_d;
+  __be16 sport;
+  __be16 sport_mask;
+  __u16 family;
+  __u8 prefixlen_d;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 prefixlen_s;
- __u8 proto;
- int ifindex;
- __kernel_uid32_t user;
+  __u8 prefixlen_s;
+  __u8 proto;
+  int ifindex;
+  __kernel_uid32_t user;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-#define XFRM_INF (~(__u64)0)
+#define XFRM_INF (~(__u64) 0)
 struct xfrm_lifetime_cfg {
- __u64 soft_byte_limit;
+  __u64 soft_byte_limit;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 hard_byte_limit;
- __u64 soft_packet_limit;
- __u64 hard_packet_limit;
- __u64 soft_add_expires_seconds;
+  __u64 hard_byte_limit;
+  __u64 soft_packet_limit;
+  __u64 hard_packet_limit;
+  __u64 soft_add_expires_seconds;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 hard_add_expires_seconds;
- __u64 soft_use_expires_seconds;
- __u64 hard_use_expires_seconds;
+  __u64 hard_add_expires_seconds;
+  __u64 soft_use_expires_seconds;
+  __u64 hard_use_expires_seconds;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct xfrm_lifetime_cur {
- __u64 bytes;
- __u64 packets;
- __u64 add_time;
+  __u64 bytes;
+  __u64 packets;
+  __u64 add_time;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u64 use_time;
+  __u64 use_time;
 };
 struct xfrm_replay_state {
- __u32 oseq;
+  __u32 oseq;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 seq;
- __u32 bitmap;
+  __u32 seq;
+  __u32 bitmap;
 };
 #define XFRMA_REPLAY_ESN_MAX 4096
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct xfrm_replay_state_esn {
- unsigned int bmp_len;
- __u32 oseq;
- __u32 seq;
+  unsigned int bmp_len;
+  __u32 oseq;
+  __u32 seq;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 oseq_hi;
- __u32 seq_hi;
- __u32 replay_window;
- __u32 bmp[0];
+  __u32 oseq_hi;
+  __u32 seq_hi;
+  __u32 replay_window;
+  __u32 bmp[0];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct xfrm_algo {
- char alg_name[64];
- unsigned int alg_key_len;
+  char alg_name[64];
+  unsigned int alg_key_len;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- char alg_key[0];
+  char alg_key[0];
 };
 struct xfrm_algo_auth {
- char alg_name[64];
+  char alg_name[64];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- unsigned int alg_key_len;
- unsigned int alg_trunc_len;
- char alg_key[0];
+  unsigned int alg_key_len;
+  unsigned int alg_trunc_len;
+  char alg_key[0];
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct xfrm_algo_aead {
- char alg_name[64];
- unsigned int alg_key_len;
- unsigned int alg_icv_len;
+  char alg_name[64];
+  unsigned int alg_key_len;
+  unsigned int alg_icv_len;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- char alg_key[0];
+  char alg_key[0];
 };
 struct xfrm_stats {
- __u32 replay_window;
+  __u32 replay_window;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 replay;
- __u32 integrity_failed;
+  __u32 replay;
+  __u32 integrity_failed;
 };
 enum {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRM_POLICY_TYPE_MAIN = 0,
- XFRM_POLICY_TYPE_SUB = 1,
- XFRM_POLICY_TYPE_MAX = 2,
- XFRM_POLICY_TYPE_ANY = 255
+  XFRM_POLICY_TYPE_MAIN = 0,
+  XFRM_POLICY_TYPE_SUB = 1,
+  XFRM_POLICY_TYPE_MAX = 2,
+  XFRM_POLICY_TYPE_ANY = 255
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 enum {
- XFRM_POLICY_IN = 0,
- XFRM_POLICY_OUT = 1,
+  XFRM_POLICY_IN = 0,
+  XFRM_POLICY_OUT = 1,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRM_POLICY_FWD = 2,
- XFRM_POLICY_MASK = 3,
- XFRM_POLICY_MAX = 3
+  XFRM_POLICY_FWD = 2,
+  XFRM_POLICY_MASK = 3,
+  XFRM_POLICY_MAX = 3
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum {
- XFRM_SHARE_ANY,
- XFRM_SHARE_SESSION,
- XFRM_SHARE_USER,
+  XFRM_SHARE_ANY,
+  XFRM_SHARE_SESSION,
+  XFRM_SHARE_USER,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRM_SHARE_UNIQUE
+  XFRM_SHARE_UNIQUE
 };
 #define XFRM_MODE_TRANSPORT 0
 #define XFRM_MODE_TUNNEL 1
@@ -162,227 +162,227 @@
 #define XFRM_MODE_MAX 5
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum {
- XFRM_MSG_BASE = 0x10,
- XFRM_MSG_NEWSA = 0x10,
+  XFRM_MSG_BASE = 0x10,
+  XFRM_MSG_NEWSA = 0x10,
 #define XFRM_MSG_NEWSA XFRM_MSG_NEWSA
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRM_MSG_DELSA,
+  XFRM_MSG_DELSA,
 #define XFRM_MSG_DELSA XFRM_MSG_DELSA
- XFRM_MSG_GETSA,
+  XFRM_MSG_GETSA,
 #define XFRM_MSG_GETSA XFRM_MSG_GETSA
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRM_MSG_NEWPOLICY,
+  XFRM_MSG_NEWPOLICY,
 #define XFRM_MSG_NEWPOLICY XFRM_MSG_NEWPOLICY
- XFRM_MSG_DELPOLICY,
+  XFRM_MSG_DELPOLICY,
 #define XFRM_MSG_DELPOLICY XFRM_MSG_DELPOLICY
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRM_MSG_GETPOLICY,
+  XFRM_MSG_GETPOLICY,
 #define XFRM_MSG_GETPOLICY XFRM_MSG_GETPOLICY
- XFRM_MSG_ALLOCSPI,
+  XFRM_MSG_ALLOCSPI,
 #define XFRM_MSG_ALLOCSPI XFRM_MSG_ALLOCSPI
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRM_MSG_ACQUIRE,
+  XFRM_MSG_ACQUIRE,
 #define XFRM_MSG_ACQUIRE XFRM_MSG_ACQUIRE
- XFRM_MSG_EXPIRE,
+  XFRM_MSG_EXPIRE,
 #define XFRM_MSG_EXPIRE XFRM_MSG_EXPIRE
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRM_MSG_UPDPOLICY,
+  XFRM_MSG_UPDPOLICY,
 #define XFRM_MSG_UPDPOLICY XFRM_MSG_UPDPOLICY
- XFRM_MSG_UPDSA,
+  XFRM_MSG_UPDSA,
 #define XFRM_MSG_UPDSA XFRM_MSG_UPDSA
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRM_MSG_POLEXPIRE,
+  XFRM_MSG_POLEXPIRE,
 #define XFRM_MSG_POLEXPIRE XFRM_MSG_POLEXPIRE
- XFRM_MSG_FLUSHSA,
+  XFRM_MSG_FLUSHSA,
 #define XFRM_MSG_FLUSHSA XFRM_MSG_FLUSHSA
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRM_MSG_FLUSHPOLICY,
+  XFRM_MSG_FLUSHPOLICY,
 #define XFRM_MSG_FLUSHPOLICY XFRM_MSG_FLUSHPOLICY
- XFRM_MSG_NEWAE,
+  XFRM_MSG_NEWAE,
 #define XFRM_MSG_NEWAE XFRM_MSG_NEWAE
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRM_MSG_GETAE,
+  XFRM_MSG_GETAE,
 #define XFRM_MSG_GETAE XFRM_MSG_GETAE
- XFRM_MSG_REPORT,
+  XFRM_MSG_REPORT,
 #define XFRM_MSG_REPORT XFRM_MSG_REPORT
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRM_MSG_MIGRATE,
+  XFRM_MSG_MIGRATE,
 #define XFRM_MSG_MIGRATE XFRM_MSG_MIGRATE
- XFRM_MSG_NEWSADINFO,
+  XFRM_MSG_NEWSADINFO,
 #define XFRM_MSG_NEWSADINFO XFRM_MSG_NEWSADINFO
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRM_MSG_GETSADINFO,
+  XFRM_MSG_GETSADINFO,
 #define XFRM_MSG_GETSADINFO XFRM_MSG_GETSADINFO
- XFRM_MSG_NEWSPDINFO,
+  XFRM_MSG_NEWSPDINFO,
 #define XFRM_MSG_NEWSPDINFO XFRM_MSG_NEWSPDINFO
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRM_MSG_GETSPDINFO,
+  XFRM_MSG_GETSPDINFO,
 #define XFRM_MSG_GETSPDINFO XFRM_MSG_GETSPDINFO
- XFRM_MSG_MAPPING,
+  XFRM_MSG_MAPPING,
 #define XFRM_MSG_MAPPING XFRM_MSG_MAPPING
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __XFRM_MSG_MAX
+  __XFRM_MSG_MAX
 };
 #define XFRM_MSG_MAX (__XFRM_MSG_MAX - 1)
 #define XFRM_NR_MSGTYPES (XFRM_MSG_MAX + 1 - XFRM_MSG_BASE)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct xfrm_user_sec_ctx {
- __u16 len;
- __u16 exttype;
- __u8 ctx_alg;
+  __u16 len;
+  __u16 exttype;
+  __u8 ctx_alg;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 ctx_doi;
- __u16 ctx_len;
+  __u8 ctx_doi;
+  __u16 ctx_len;
 };
 struct xfrm_user_tmpl {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct xfrm_id id;
- __u16 family;
- xfrm_address_t saddr;
- __u32 reqid;
+  struct xfrm_id id;
+  __u16 family;
+  xfrm_address_t saddr;
+  __u32 reqid;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 mode;
- __u8 share;
- __u8 optional;
- __u32 aalgos;
+  __u8 mode;
+  __u8 share;
+  __u8 optional;
+  __u32 aalgos;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 ealgos;
- __u32 calgos;
+  __u32 ealgos;
+  __u32 calgos;
 };
 struct xfrm_encap_tmpl {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u16 encap_type;
- __be16 encap_sport;
- __be16 encap_dport;
- xfrm_address_t encap_oa;
+  __u16 encap_type;
+  __be16 encap_sport;
+  __be16 encap_dport;
+  xfrm_address_t encap_oa;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 enum xfrm_ae_ftype_t {
- XFRM_AE_UNSPEC,
- XFRM_AE_RTHR=1,
+  XFRM_AE_UNSPEC,
+  XFRM_AE_RTHR = 1,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRM_AE_RVAL=2,
- XFRM_AE_LVAL=4,
- XFRM_AE_ETHR=8,
- XFRM_AE_CR=16,
+  XFRM_AE_RVAL = 2,
+  XFRM_AE_LVAL = 4,
+  XFRM_AE_ETHR = 8,
+  XFRM_AE_CR = 16,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRM_AE_CE=32,
- XFRM_AE_CU=64,
- __XFRM_AE_MAX
+  XFRM_AE_CE = 32,
+  XFRM_AE_CU = 64,
+  __XFRM_AE_MAX
 #define XFRM_AE_MAX (__XFRM_AE_MAX - 1)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct xfrm_userpolicy_type {
- __u8 type;
- __u16 reserved1;
+  __u8 type;
+  __u16 reserved1;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 reserved2;
+  __u8 reserved2;
 };
 enum xfrm_attr_type_t {
- XFRMA_UNSPEC,
+  XFRMA_UNSPEC,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRMA_ALG_AUTH,
- XFRMA_ALG_CRYPT,
- XFRMA_ALG_COMP,
- XFRMA_ENCAP,
+  XFRMA_ALG_AUTH,
+  XFRMA_ALG_CRYPT,
+  XFRMA_ALG_COMP,
+  XFRMA_ENCAP,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRMA_TMPL,
- XFRMA_SA,
- XFRMA_POLICY,
- XFRMA_SEC_CTX,
+  XFRMA_TMPL,
+  XFRMA_SA,
+  XFRMA_POLICY,
+  XFRMA_SEC_CTX,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRMA_LTIME_VAL,
- XFRMA_REPLAY_VAL,
- XFRMA_REPLAY_THRESH,
- XFRMA_ETIMER_THRESH,
+  XFRMA_LTIME_VAL,
+  XFRMA_REPLAY_VAL,
+  XFRMA_REPLAY_THRESH,
+  XFRMA_ETIMER_THRESH,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRMA_SRCADDR,
- XFRMA_COADDR,
- XFRMA_LASTUSED,
- XFRMA_POLICY_TYPE,
+  XFRMA_SRCADDR,
+  XFRMA_COADDR,
+  XFRMA_LASTUSED,
+  XFRMA_POLICY_TYPE,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRMA_MIGRATE,
- XFRMA_ALG_AEAD,
- XFRMA_KMADDRESS,
- XFRMA_ALG_AUTH_TRUNC,
+  XFRMA_MIGRATE,
+  XFRMA_ALG_AEAD,
+  XFRMA_KMADDRESS,
+  XFRMA_ALG_AUTH_TRUNC,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRMA_MARK,
- XFRMA_TFCPAD,
- XFRMA_REPLAY_ESN_VAL,
- XFRMA_SA_EXTRA_FLAGS,
+  XFRMA_MARK,
+  XFRMA_TFCPAD,
+  XFRMA_REPLAY_ESN_VAL,
+  XFRMA_SA_EXTRA_FLAGS,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRMA_PROTO,
- XFRMA_ADDRESS_FILTER,
- __XFRMA_MAX
+  XFRMA_PROTO,
+  XFRMA_ADDRESS_FILTER,
+  __XFRMA_MAX
 #define XFRMA_MAX (__XFRMA_MAX - 1)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct xfrm_mark {
- __u32 v;
- __u32 m;
+  __u32 v;
+  __u32 m;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 enum xfrm_sadattr_type_t {
- XFRMA_SAD_UNSPEC,
- XFRMA_SAD_CNT,
+  XFRMA_SAD_UNSPEC,
+  XFRMA_SAD_CNT,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRMA_SAD_HINFO,
- __XFRMA_SAD_MAX
+  XFRMA_SAD_HINFO,
+  __XFRMA_SAD_MAX
 #define XFRMA_SAD_MAX (__XFRMA_SAD_MAX - 1)
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct xfrmu_sadhinfo {
- __u32 sadhcnt;
- __u32 sadhmcnt;
+  __u32 sadhcnt;
+  __u32 sadhmcnt;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum xfrm_spdattr_type_t {
- XFRMA_SPD_UNSPEC,
- XFRMA_SPD_INFO,
- XFRMA_SPD_HINFO,
+  XFRMA_SPD_UNSPEC,
+  XFRMA_SPD_INFO,
+  XFRMA_SPD_HINFO,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- XFRMA_SPD_IPV4_HTHRESH,
- XFRMA_SPD_IPV6_HTHRESH,
- __XFRMA_SPD_MAX
+  XFRMA_SPD_IPV4_HTHRESH,
+  XFRMA_SPD_IPV6_HTHRESH,
+  __XFRMA_SPD_MAX
 #define XFRMA_SPD_MAX (__XFRMA_SPD_MAX - 1)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct xfrmu_spdinfo {
- __u32 incnt;
- __u32 outcnt;
+  __u32 incnt;
+  __u32 outcnt;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 fwdcnt;
- __u32 inscnt;
- __u32 outscnt;
- __u32 fwdscnt;
+  __u32 fwdcnt;
+  __u32 inscnt;
+  __u32 outscnt;
+  __u32 fwdscnt;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct xfrmu_spdhinfo {
- __u32 spdhcnt;
- __u32 spdhmcnt;
+  __u32 spdhcnt;
+  __u32 spdhmcnt;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct xfrmu_spdhthresh {
- __u8 lbits;
- __u8 rbits;
+  __u8 lbits;
+  __u8 rbits;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct xfrm_usersa_info {
- struct xfrm_selector sel;
- struct xfrm_id id;
+  struct xfrm_selector sel;
+  struct xfrm_id id;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- xfrm_address_t saddr;
- struct xfrm_lifetime_cfg lft;
- struct xfrm_lifetime_cur curlft;
- struct xfrm_stats stats;
+  xfrm_address_t saddr;
+  struct xfrm_lifetime_cfg lft;
+  struct xfrm_lifetime_cur curlft;
+  struct xfrm_stats stats;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 seq;
- __u32 reqid;
- __u16 family;
- __u8 mode;
+  __u32 seq;
+  __u32 reqid;
+  __u16 family;
+  __u8 mode;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 replay_window;
- __u8 flags;
+  __u8 replay_window;
+  __u8 flags;
 #define XFRM_STATE_NOECN 1
 #define XFRM_STATE_DECAP_DSCP 2
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
@@ -397,122 +397,122 @@
 #define XFRM_SA_XFLAG_DONT_ENCAP_DSCP 1
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct xfrm_usersa_id {
- xfrm_address_t daddr;
- __be32 spi;
- __u16 family;
+  xfrm_address_t daddr;
+  __be32 spi;
+  __u16 family;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 proto;
+  __u8 proto;
 };
 struct xfrm_aevent_id {
- struct xfrm_usersa_id sa_id;
+  struct xfrm_usersa_id sa_id;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- xfrm_address_t saddr;
- __u32 flags;
- __u32 reqid;
+  xfrm_address_t saddr;
+  __u32 flags;
+  __u32 reqid;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct xfrm_userspi_info {
- struct xfrm_usersa_info info;
- __u32 min;
- __u32 max;
+  struct xfrm_usersa_info info;
+  __u32 min;
+  __u32 max;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct xfrm_userpolicy_info {
- struct xfrm_selector sel;
- struct xfrm_lifetime_cfg lft;
+  struct xfrm_selector sel;
+  struct xfrm_lifetime_cfg lft;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct xfrm_lifetime_cur curlft;
- __u32 priority;
- __u32 index;
- __u8 dir;
+  struct xfrm_lifetime_cur curlft;
+  __u32 priority;
+  __u32 index;
+  __u8 dir;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 action;
+  __u8 action;
 #define XFRM_POLICY_ALLOW 0
 #define XFRM_POLICY_BLOCK 1
- __u8 flags;
+  __u8 flags;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define XFRM_POLICY_LOCALOK 1
 #define XFRM_POLICY_ICMP 2
- __u8 share;
+  __u8 share;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct xfrm_userpolicy_id {
- struct xfrm_selector sel;
- __u32 index;
- __u8 dir;
+  struct xfrm_selector sel;
+  __u32 index;
+  __u8 dir;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct xfrm_user_acquire {
- struct xfrm_id id;
- xfrm_address_t saddr;
+  struct xfrm_id id;
+  xfrm_address_t saddr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct xfrm_selector sel;
- struct xfrm_userpolicy_info policy;
- __u32 aalgos;
- __u32 ealgos;
+  struct xfrm_selector sel;
+  struct xfrm_userpolicy_info policy;
+  __u32 aalgos;
+  __u32 ealgos;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 calgos;
- __u32 seq;
+  __u32 calgos;
+  __u32 seq;
 };
 struct xfrm_user_expire {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct xfrm_usersa_info state;
- __u8 hard;
+  struct xfrm_usersa_info state;
+  __u8 hard;
 };
 struct xfrm_user_polexpire {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct xfrm_userpolicy_info pol;
- __u8 hard;
+  struct xfrm_userpolicy_info pol;
+  __u8 hard;
 };
 struct xfrm_usersa_flush {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 proto;
+  __u8 proto;
 };
 struct xfrm_user_report {
- __u8 proto;
+  __u8 proto;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- struct xfrm_selector sel;
+  struct xfrm_selector sel;
 };
 struct xfrm_user_kmaddress {
- xfrm_address_t local;
+  xfrm_address_t local;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- xfrm_address_t remote;
- __u32 reserved;
- __u16 family;
+  xfrm_address_t remote;
+  __u32 reserved;
+  __u16 family;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct xfrm_user_migrate {
- xfrm_address_t old_daddr;
- xfrm_address_t old_saddr;
- xfrm_address_t new_daddr;
+  xfrm_address_t old_daddr;
+  xfrm_address_t old_saddr;
+  xfrm_address_t new_daddr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- xfrm_address_t new_saddr;
- __u8 proto;
- __u8 mode;
- __u16 reserved;
+  xfrm_address_t new_saddr;
+  __u8 proto;
+  __u8 mode;
+  __u16 reserved;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u32 reqid;
- __u16 old_family;
- __u16 new_family;
+  __u32 reqid;
+  __u16 old_family;
+  __u16 new_family;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct xfrm_user_mapping {
- struct xfrm_usersa_id id;
- __u32 reqid;
- xfrm_address_t old_saddr;
+  struct xfrm_usersa_id id;
+  __u32 reqid;
+  xfrm_address_t old_saddr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- xfrm_address_t new_saddr;
- __be16 old_sport;
- __be16 new_sport;
+  xfrm_address_t new_saddr;
+  __be16 old_sport;
+  __be16 new_sport;
 };
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct xfrm_address_filter {
- xfrm_address_t saddr;
- xfrm_address_t daddr;
- __u16 family;
+  xfrm_address_t saddr;
+  xfrm_address_t daddr;
+  __u16 family;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- __u8 splen;
- __u8 dplen;
+  __u8 splen;
+  __u8 dplen;
 };
 #define XFRMGRP_ACQUIRE 1
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
@@ -522,29 +522,29 @@
 #define XFRMGRP_REPORT 0x20
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum xfrm_nlgroups {
- XFRMNLGRP_NONE,
+  XFRMNLGRP_NONE,
 #define XFRMNLGRP_NONE XFRMNLGRP_NONE
- XFRMNLGRP_ACQUIRE,
+  XFRMNLGRP_ACQUIRE,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define XFRMNLGRP_ACQUIRE XFRMNLGRP_ACQUIRE
- XFRMNLGRP_EXPIRE,
+  XFRMNLGRP_EXPIRE,
 #define XFRMNLGRP_EXPIRE XFRMNLGRP_EXPIRE
- XFRMNLGRP_SA,
+  XFRMNLGRP_SA,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define XFRMNLGRP_SA XFRMNLGRP_SA
- XFRMNLGRP_POLICY,
+  XFRMNLGRP_POLICY,
 #define XFRMNLGRP_POLICY XFRMNLGRP_POLICY
- XFRMNLGRP_AEVENTS,
+  XFRMNLGRP_AEVENTS,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define XFRMNLGRP_AEVENTS XFRMNLGRP_AEVENTS
- XFRMNLGRP_REPORT,
+  XFRMNLGRP_REPORT,
 #define XFRMNLGRP_REPORT XFRMNLGRP_REPORT
- XFRMNLGRP_MIGRATE,
+  XFRMNLGRP_MIGRATE,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define XFRMNLGRP_MIGRATE XFRMNLGRP_MIGRATE
- XFRMNLGRP_MAPPING,
+  XFRMNLGRP_MAPPING,
 #define XFRMNLGRP_MAPPING XFRMNLGRP_MAPPING
- __XFRMNLGRP_MAX
+  __XFRMNLGRP_MAX
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 #define XFRMNLGRP_MAX (__XFRMNLGRP_MAX - 1)
