rtattr
static int adiantum_create(struct crypto_template *tmpl, struct rtattr **tb)
struct crypto_attr_type *crypto_get_attr_type(struct rtattr **tb)
struct rtattr *rta = tb[0];
int crypto_check_attr_type(struct rtattr **tb, u32 type, u32 *mask_ret)
const char *crypto_attr_alg_name(struct rtattr *rta)
struct rtattr *tb[CRYPTO_MAX_ATTRS + 2];
struct rtattr attr;
struct rtattr attr;
struct rtattr **tb)
struct rtattr *rta = (struct rtattr *)key;
struct rtattr **tb)
static int crypto_cbc_create(struct crypto_template *tmpl, struct rtattr **tb)
struct rtattr **tb,
static int crypto_ccm_create(struct crypto_template *tmpl, struct rtattr **tb)
struct rtattr **tb)
struct rtattr **tb)
static int cbcmac_create(struct crypto_template *tmpl, struct rtattr **tb)
static int chachapoly_create(struct crypto_template *tmpl, struct rtattr **tb,
static int rfc7539_create(struct crypto_template *tmpl, struct rtattr **tb)
static int rfc7539esp_create(struct crypto_template *tmpl, struct rtattr **tb)
static int cmac_create(struct crypto_template *tmpl, struct rtattr **tb)
struct rtattr **tb,
static int cryptd_create_hash(struct crypto_template *tmpl, struct rtattr **tb,
struct rtattr **tb,
static int cryptd_create(struct crypto_template *tmpl, struct rtattr **tb)
static int crypto_ctr_create(struct crypto_template *tmpl, struct rtattr **tb)
struct rtattr **tb)
static int crypto_cts_create(struct crypto_template *tmpl, struct rtattr **tb)
struct crypto_template *tmpl, struct rtattr **tb,
struct rtattr **tb)
struct rtattr **tb)
struct rtattr **tb)
struct rtattr **tb)
struct rtattr **tb)
static int crypto_ecb_create2(struct crypto_template *tmpl, struct rtattr **tb)
static int crypto_ecb_create(struct crypto_template *tmpl, struct rtattr **tb)
struct crypto_template *tmpl, struct rtattr **tb)
static int ecdsa_p1363_create(struct crypto_template *tmpl, struct rtattr **tb)
static int ecdsa_x962_create(struct crypto_template *tmpl, struct rtattr **tb)
struct rtattr **tb)
static int essiv_create(struct crypto_template *tmpl, struct rtattr **tb)
struct rtattr **tb)
struct rtattr **tb,
static int crypto_gcm_create(struct crypto_template *tmpl, struct rtattr **tb)
struct rtattr **tb)
struct rtattr **tb)
struct rtattr **tb)
static int hctr2_create_common(struct crypto_template *tmpl, struct rtattr **tb,
static int hctr2_create_base(struct crypto_template *tmpl, struct rtattr **tb)
static int hctr2_create(struct crypto_template *tmpl, struct rtattr **tb)
struct rtattr **tb, u32 mask)
static int hmac_create_ahash(struct crypto_template *tmpl, struct rtattr **tb,
static int hmac_create(struct crypto_template *tmpl, struct rtattr **tb)
static int hmac_create_shash(struct crypto_template *tmpl, struct rtattr **tb)
struct rtattr *rta;
struct rtattr *rta;
static int krb5enc_create(struct crypto_template *tmpl, struct rtattr **tb)
struct rtattr *rta = (struct rtattr *)key;
static int lrw_create(struct crypto_template *tmpl, struct rtattr **tb)
struct crypto_template *tmpl, struct rtattr **tb)
static int crypto_pcbc_create(struct crypto_template *tmpl, struct rtattr **tb)
static int pcrypt_create_aead(struct crypto_template *tmpl, struct rtattr **tb,
static int pcrypt_create(struct crypto_template *tmpl, struct rtattr **tb)
static int pkcs1pad_create(struct crypto_template *tmpl, struct rtattr **tb)
static int rsassa_pkcs1_create(struct crypto_template *tmpl, struct rtattr **tb)
static int seqiv_aead_create(struct crypto_template *tmpl, struct rtattr **tb)
struct crypto_template *tmpl, struct rtattr **tb)
static int xcbc_create(struct crypto_template *tmpl, struct rtattr **tb)
static int crypto_xctr_create(struct crypto_template *tmpl, struct rtattr **tb)
static int xts_create(struct crypto_template *tmpl, struct rtattr **tb)
struct rtattr *rta;
rta = (struct rtattr *)p;
struct crypto_attr_type *crypto_get_attr_type(struct rtattr **tb);
int crypto_check_attr_type(struct rtattr **tb, u32 type, u32 *mask_ret);
const char *crypto_attr_alg_name(struct rtattr *rta);
struct rtattr;
int (*create)(struct crypto_template *tmpl, struct rtattr **tb);
struct rtattr;
struct rtattr **tb);
struct rtattr;
struct crypto_template *tmpl, struct rtattr **tb);
struct crypto_template *tmpl, struct rtattr **tb);
#define IFA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifaddrmsg))))
#define IFLA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg))))
#define RTA_OK(rta,len) ((len) >= (int)sizeof(struct rtattr) && \
(rta)->rta_len >= sizeof(struct rtattr) && \
(struct rtattr*)(((char*)(rta)) + RTA_ALIGN((rta)->rta_len)))
#define RTA_LENGTH(len) (RTA_ALIGN(sizeof(struct rtattr)) + (len))
#define RTM_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct rtmsg))))
#define RTNH_DATA(rtnh) ((struct rtattr*)(((char*)(rtnh)) + RTNH_LENGTH(0)))
#define TCA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcmsg))))
#define TA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcamsg))))
struct rtattr *rta;
struct rtattr *rta;
rt_attr = (struct rtattr *)RTM_RTA(rt_msg);
struct rtattr *rt_attr;
rt_attr = (struct rtattr *)RTM_RTA(rt_msg);
struct rtattr *rt_attr;
#define IFA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifaddrmsg))))
#define IFLA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg))))
#define RTA_OK(rta,len) ((len) >= (int)sizeof(struct rtattr) && \
(rta)->rta_len >= sizeof(struct rtattr) && \
(struct rtattr*)(((char*)(rta)) + RTA_ALIGN((rta)->rta_len)))
#define RTA_LENGTH(len) (RTA_ALIGN(sizeof(struct rtattr)) + (len))
#define RTM_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct rtmsg))))
#define RTNH_DATA(rtnh) ((struct rtattr*)(((char*)(rtnh)) + RTNH_LENGTH(0)))
#define TCA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcmsg))))
#define TA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcamsg))))
struct rtattr *rta;
struct rtattr *addattr_nest(struct nlmsghdr *n, int maxlen, int type)
struct rtattr *nest = NLMSG_TAIL(n);
int addattr_nest_end(struct nlmsghdr *n, struct rtattr *nest)
((struct rtattr *) (((void *) (nmsg)) + NLMSG_ALIGN((nmsg)->nlmsg_len)))
struct rtattr *addattr_nest(struct nlmsghdr *n, int maxlen, int type);
int addattr_nest_end(struct nlmsghdr *n, struct rtattr *nest);
struct rtattr *linkinfo, *data;
struct rtattr *linkinfo, *data, *peer_info;
static struct rtattr *rtattr_add(struct nlmsghdr *nh, unsigned short type,
struct rtattr *rta =
(struct rtattr *)((uint8_t *)nh + RTA_ALIGN(nh->nlmsg_len));
static struct rtattr *rtattr_add_str(struct nlmsghdr *nh, unsigned short type,
struct rtattr *rta = rtattr_add(nh, type, strlen(s));
static struct rtattr *rtattr_begin(struct nlmsghdr *nh, unsigned short type)
static void rtattr_end(struct nlmsghdr *nh, struct rtattr *attr)
struct rtattr *link_info, *info_data;
struct rtattr *rta;
rta = (struct rtattr *)(((char *)&req) + NLMSG_ALIGN(req.nh.nlmsg_len));
struct rtattr *attr;
attr = (struct rtattr *)(udr + 1);
struct rtattr *attr = (void *)req.attrbuf;
static inline struct rtattr *rtattr_hdr(struct nlmsghdr *nh)
return (struct rtattr *)((char *)(nh) + RTA_ALIGN((nh)->nlmsg_len));
struct rtattr *attr = rtattr_hdr(nh);
static struct rtattr *_rtattr_begin(struct nlmsghdr *nh, size_t req_sz,
struct rtattr *ret = rtattr_hdr(nh);
static inline struct rtattr *rtattr_begin(struct nlmsghdr *nh, size_t req_sz,
static inline void rtattr_end(struct nlmsghdr *nh, struct rtattr *attr)
struct rtattr *peer_attr;
struct rtattr *link_info, *info_data;
struct rtattr rta_proto;
static void parse_rtattr_flags(struct rtattr *tb[], int max, struct rtattr *rta,
memset(tb, 0, sizeof(struct rtattr *) * (max + 1));
static void print_subflow_info(struct rtattr *tb[])
struct rtattr *tb[INET_DIAG_MAX + 1];
parse_rtattr_flags(tb, INET_DIAG_MAX, (struct rtattr *)(r + 1),
struct rtattr *ulpinfo[INET_ULP_INFO_MAX + 1] = { 0 };
struct rtattr *sfinfo[MPTCP_SUBFLOW_ATTR_MAX + 1] = { 0 };
struct rtattr *attrs;
struct rtattr *attrs;
attrs = (struct rtattr *) ((char *) NLMSG_DATA(nh) +
struct rtattr *rta, *nest;
struct rtattr *rta;
struct rtattr *attrs;
attrs = (struct rtattr *) ((char *) NLMSG_DATA(nh) +
struct rtattr *rta = (void *)(data + off);
struct rtattr *rta, *nest;
attrs = (struct rtattr *) ((char *) ghdr + GENL_HDRLEN);
struct rtattr *attrs;
struct rtattr *grps;
struct rtattr *grp;
attrs = (struct rtattr *) ((char *) ghdr + GENL_HDRLEN);
struct rtattr *rta;
struct rtattr *rta, *addr;
struct rtattr *addr;
struct rtattr *rta;
struct rtattr *rta;
struct rtattr *rta, *addr;
struct rtattr *rta, *nest;
struct rtattr *attrs = (struct rtattr *)NLMSG_DATA(nh);
struct rtattr *rta, *nest;
static void print_addr(struct rtattr *attrs, int len)
struct rtattr *rta;
static struct rtattr *ovpn_nest_start(struct nlmsghdr *msg, size_t max_size,
struct rtattr *nest = nlmsg_tail(msg);
static void ovpn_nest_end(struct nlmsghdr *msg, struct rtattr *nest)
struct rtattr *linkinfo, *data;
static struct rtattr *rtattr_add(struct nlmsghdr *nh, unsigned short type,
struct rtattr *rta =
(struct rtattr *)((uint8_t *)nh + RTA_ALIGN(nh->nlmsg_len));
static struct rtattr *rtattr_begin(struct nlmsghdr *nh, unsigned short type)
static void rtattr_end(struct nlmsghdr *nh, struct rtattr *attr)
static struct rtattr *rtattr_add_str(struct nlmsghdr *nh, unsigned short type,
struct rtattr *rta;
static struct rtattr *rtattr_add_any(struct nlmsghdr *nh, unsigned short type,
struct rtattr *rta = rtattr_add(nh, type, len);
struct rtattr *link_info, *info_data;
static inline void rtattr_end(struct nlmsghdr *nh, struct rtattr *attr)
struct rtattr *peer_attr;
struct rtattr *link_info, *info_data;
struct rtattr *link_info, *info_data;
static inline struct rtattr *rtattr_hdr(struct nlmsghdr *nh)
return (struct rtattr *)((char *)(nh) + RTA_ALIGN((nh)->nlmsg_len));
struct rtattr *attr = rtattr_hdr(nh);
static struct rtattr *_rtattr_begin(struct nlmsghdr *nh, size_t req_sz,
struct rtattr *ret = rtattr_hdr(nh);
static inline struct rtattr *rtattr_begin(struct nlmsghdr *nh, size_t req_sz,