Home
last modified time | relevance | path

Searched refs:nla (Results 1 – 25 of 101) sorted by relevance

12345

/Linux-v5.4/lib/
Dnlattr.c47 static int validate_nla_bitfield32(const struct nlattr *nla, in validate_nla_bitfield32() argument
50 const struct nla_bitfield32 *bf = nla_data(nla); in validate_nla_bitfield32()
100 const struct nlattr *nla, in nla_validate_int_range() argument
113 value = nla_get_u8(nla); in nla_validate_int_range()
116 value = nla_get_u16(nla); in nla_validate_int_range()
119 value = nla_get_u32(nla); in nla_validate_int_range()
122 value = nla_get_s8(nla); in nla_validate_int_range()
125 value = nla_get_s16(nla); in nla_validate_int_range()
128 value = nla_get_s32(nla); in nla_validate_int_range()
131 value = nla_get_s64(nla); in nla_validate_int_range()
[all …]
/Linux-v5.4/tools/lib/bpf/
Dnlattr.c24 static struct nlattr *nla_next(const struct nlattr *nla, int *remaining) in nla_next() argument
26 int totlen = NLA_ALIGN(nla->nla_len); in nla_next()
29 return (struct nlattr *) ((char *) nla + totlen); in nla_next()
32 static int nla_ok(const struct nlattr *nla, int remaining) in nla_ok() argument
34 return remaining >= sizeof(*nla) && in nla_ok()
35 nla->nla_len >= sizeof(*nla) && in nla_ok()
36 nla->nla_len <= remaining; in nla_ok()
39 static int nla_type(const struct nlattr *nla) in nla_type() argument
41 return nla->nla_type & NLA_TYPE_MASK; in nla_type()
44 static int validate_nla(struct nlattr *nla, int maxtype, in validate_nla() argument
[all …]
Dnlattr.h69 static inline void *libbpf_nla_data(const struct nlattr *nla) in libbpf_nla_data() argument
71 return (char *) nla + NLA_HDRLEN; in libbpf_nla_data()
74 static inline uint8_t libbpf_nla_getattr_u8(const struct nlattr *nla) in libbpf_nla_getattr_u8() argument
76 return *(uint8_t *)libbpf_nla_data(nla); in libbpf_nla_getattr_u8()
79 static inline uint32_t libbpf_nla_getattr_u32(const struct nlattr *nla) in libbpf_nla_getattr_u32() argument
81 return *(uint32_t *)libbpf_nla_data(nla); in libbpf_nla_getattr_u32()
84 static inline const char *libbpf_nla_getattr_str(const struct nlattr *nla) in libbpf_nla_getattr_str() argument
86 return (const char *)libbpf_nla_data(nla); in libbpf_nla_getattr_str()
93 static inline int libbpf_nla_len(const struct nlattr *nla) in libbpf_nla_len() argument
95 return nla->nla_len - NLA_HDRLEN; in libbpf_nla_len()
[all …]
Dnetlink.c134 struct nlattr *nla, *nla_xdp; in bpf_set_link_xdp_fd() local
156 nla = (struct nlattr *)(((char *)&req) in bpf_set_link_xdp_fd()
158 nla->nla_type = NLA_F_NESTED | IFLA_XDP; in bpf_set_link_xdp_fd()
159 nla->nla_len = NLA_HDRLEN; in bpf_set_link_xdp_fd()
162 nla_xdp = (struct nlattr *)((char *)nla + nla->nla_len); in bpf_set_link_xdp_fd()
166 nla->nla_len += nla_xdp->nla_len; in bpf_set_link_xdp_fd()
170 nla_xdp = (struct nlattr *)((char *)nla + nla->nla_len); in bpf_set_link_xdp_fd()
174 nla->nla_len += nla_xdp->nla_len; in bpf_set_link_xdp_fd()
177 req.nh.nlmsg_len += NLA_ALIGN(nla->nla_len); in bpf_set_link_xdp_fd()
/Linux-v5.4/drivers/block/drbd/
Ddrbd_nla.c7 static int drbd_nla_check_mandatory(int maxtype, struct nlattr *nla) in drbd_nla_check_mandatory() argument
9 struct nlattr *head = nla_data(nla); in drbd_nla_check_mandatory()
10 int len = nla_len(nla); in drbd_nla_check_mandatory()
21 nla_for_each_attr(nla, head, len, rem) { in drbd_nla_check_mandatory()
22 if (nla->nla_type & DRBD_GENLA_F_MANDATORY) { in drbd_nla_check_mandatory()
23 nla->nla_type &= ~DRBD_GENLA_F_MANDATORY; in drbd_nla_check_mandatory()
24 if (nla_type(nla) > maxtype) in drbd_nla_check_mandatory()
31 int drbd_nla_parse_nested(struct nlattr *tb[], int maxtype, struct nlattr *nla, in drbd_nla_parse_nested() argument
36 err = drbd_nla_check_mandatory(maxtype, nla); in drbd_nla_parse_nested()
38 err = nla_parse_nested_deprecated(tb, maxtype, nla, policy, in drbd_nla_parse_nested()
[all …]
Ddrbd_nla.h5 extern int drbd_nla_parse_nested(struct nlattr *tb[], int maxtype, struct nlattr *nla,
7 extern struct nlattr *drbd_nla_find_nested(int maxtype, struct nlattr *nla, int attrtype);
/Linux-v5.4/include/net/
Dnetlink.h442 size_t nla_strlcpy(char *dst, const struct nlattr *nla, size_t dstsize);
443 char *nla_strdup(const struct nlattr *nla, gfp_t flags);
445 int nla_memcmp(const struct nlattr *nla, const void *data, size_t size);
446 int nla_strcmp(const struct nlattr *nla, const char *str);
1063 static inline int nla_type(const struct nlattr *nla) in nla_type() argument
1065 return nla->nla_type & NLA_TYPE_MASK; in nla_type()
1072 static inline void *nla_data(const struct nlattr *nla) in nla_data() argument
1074 return (char *) nla + NLA_HDRLEN; in nla_data()
1081 static inline int nla_len(const struct nlattr *nla) in nla_len() argument
1083 return nla->nla_len - NLA_HDRLEN; in nla_len()
[all …]
/Linux-v5.4/net/netfilter/
Dnf_tables_api.c91 const struct nlattr * const *nla) in nft_ctx_init() argument
98 ctx->nla = nla; in nft_ctx_init()
299 if (msg_type == NFT_MSG_NEWRULE && ctx->nla[NFTA_RULE_ID] != NULL) { in nft_trans_rule_add()
301 ntohl(nla_get_be32(ctx->nla[NFTA_RULE_ID])); in nft_trans_rule_add()
353 if (msg_type == NFT_MSG_NEWSET && ctx->nla[NFTA_SET_ID] != NULL) { in nft_trans_set_add()
355 ntohl(nla_get_be32(ctx->nla[NFTA_SET_ID])); in nft_trans_set_add()
449 const struct nlattr *nla, in nft_table_lookup() argument
454 if (nla == NULL) in nft_table_lookup()
458 if (!nla_strcmp(nla, table->name) && in nft_table_lookup()
468 const struct nlattr *nla, in nft_table_lookup_byhandle() argument
[all …]
Dnft_log.c137 const struct nlattr *nla; in nft_log_init() local
150 nla = tb[NFTA_LOG_PREFIX]; in nft_log_init()
151 if (nla != NULL) { in nft_log_init()
152 priv->prefix = kmalloc(nla_len(nla) + 1, GFP_KERNEL); in nft_log_init()
155 nla_strlcpy(priv->prefix, nla, nla_len(nla) + 1); in nft_log_init()
/Linux-v5.4/net/wimax/
Dop-msg.c172 struct nlattr *nla; in wimax_msg_data_len() local
174 nla = nlmsg_find_attr(nlh, sizeof(struct genlmsghdr), in wimax_msg_data_len()
176 if (nla == NULL) { in wimax_msg_data_len()
180 *size = nla_len(nla); in wimax_msg_data_len()
181 return nla_data(nla); in wimax_msg_data_len()
194 struct nlattr *nla; in wimax_msg_data() local
196 nla = nlmsg_find_attr(nlh, sizeof(struct genlmsghdr), in wimax_msg_data()
198 if (nla == NULL) { in wimax_msg_data()
202 return nla_data(nla); in wimax_msg_data()
215 struct nlattr *nla; in wimax_msg_len() local
[all …]
/Linux-v5.4/net/ipv4/
Dmetrics.c14 struct nlattr *nla; in ip_metrics_convert() local
20 nla_for_each_attr(nla, fc_mx, fc_mx_len, remaining) { in ip_metrics_convert()
21 int type = nla_type(nla); in ip_metrics_convert()
34 nla_strlcpy(tmp, nla, sizeof(tmp)); in ip_metrics_convert()
41 if (nla_len(nla) != sizeof(u32)) { in ip_metrics_convert()
42 NL_SET_ERR_MSG_ATTR(extack, nla, in ip_metrics_convert()
46 val = nla_get_u32(nla); in ip_metrics_convert()
Dfib_semantics.c689 struct nlattr *nla, *nlav, *attrs = rtnh_attrs(rtnh); in fib_get_nhs() local
691 nla = nla_find(attrs, attrlen, RTA_GATEWAY); in fib_get_nhs()
693 if (nla && nlav) { in fib_get_nhs()
698 if (nla) { in fib_get_nhs()
699 fib_cfg.fc_gw4 = nla_get_in_addr(nla); in fib_get_nhs()
708 nla = nla_find(attrs, attrlen, RTA_FLOW); in fib_get_nhs()
709 if (nla) in fib_get_nhs()
710 fib_cfg.fc_flow = nla_get_u32(nla); in fib_get_nhs()
713 nla = nla_find(attrs, attrlen, RTA_ENCAP_TYPE); in fib_get_nhs()
714 if (nla) in fib_get_nhs()
[all …]
/Linux-v5.4/include/linux/
Dgenl_magic_func.h101 #define DPRINT_FIELD(dir, nla_type, name, s, nla) \ argument
105 else if (nla) \
108 : nla_data(nla)); \
111 #define DPRINT_ARRAY(dir, nla_type, name, s, nla) \ argument
116 else if (nla) \
118 nla_data(nla), nla_len(nla)); \
122 #define DPRINT_FIELD(dir, nla_type, name, s, nla) do {} while (0) argument
123 #define DPRINT_ARRAY(dir, nla_type, name, s, nla) do {} while (0) argument
145 struct nlattr *nla; \
170 nla = ntb[attr_nr]; \
[all …]
/Linux-v5.4/net/sched/
Dsch_fifo.c144 struct nlattr *nla; in fifo_set_limit() local
151 nla = kmalloc(nla_attr_size(sizeof(struct tc_fifo_qopt)), GFP_KERNEL); in fifo_set_limit()
152 if (nla) { in fifo_set_limit()
153 nla->nla_type = RTM_NEWQDISC; in fifo_set_limit()
154 nla->nla_len = nla_attr_size(sizeof(struct tc_fifo_qopt)); in fifo_set_limit()
155 ((struct tc_fifo_qopt *)nla_data(nla))->limit = limit; in fifo_set_limit()
157 ret = q->ops->change(q, nla, NULL); in fifo_set_limit()
158 kfree(nla); in fifo_set_limit()
Dact_bpf.c98 struct nlattr *nla; in tcf_bpf_dump_bpf_info() local
103 nla = nla_reserve(skb, TCA_ACT_BPF_OPS, prog->bpf_num_ops * in tcf_bpf_dump_bpf_info()
105 if (nla == NULL) in tcf_bpf_dump_bpf_info()
108 memcpy(nla_data(nla), prog->bpf_ops, nla_len(nla)); in tcf_bpf_dump_bpf_info()
116 struct nlattr *nla; in tcf_bpf_dump_ebpf_info() local
125 nla = nla_reserve(skb, TCA_ACT_BPF_TAG, sizeof(prog->filter->tag)); in tcf_bpf_dump_ebpf_info()
126 if (nla == NULL) in tcf_bpf_dump_ebpf_info()
129 memcpy(nla_data(nla), prog->filter->tag, nla_len(nla)); in tcf_bpf_dump_ebpf_info()
275 static int tcf_bpf_init(struct net *net, struct nlattr *nla, in tcf_bpf_init() argument
290 if (!nla) in tcf_bpf_init()
[all …]
Dact_tunnel_key.c68 tunnel_key_copy_geneve_opt(const struct nlattr *nla, void *dst, int dst_len, in tunnel_key_copy_geneve_opt() argument
77 nla, geneve_opt_policy, extack); in tunnel_key_copy_geneve_opt()
119 static int tunnel_key_copy_opts(const struct nlattr *nla, u8 *dst, in tunnel_key_copy_opts() argument
122 int err, rem, opt_len, len = nla_len(nla), opts_len = 0; in tunnel_key_copy_opts()
123 const struct nlattr *attr, *head = nla_data(nla); in tunnel_key_copy_opts()
163 static int tunnel_key_get_opts_len(struct nlattr *nla, in tunnel_key_get_opts_len() argument
166 return tunnel_key_copy_opts(nla, NULL, 0, extack); in tunnel_key_get_opts_len()
169 static int tunnel_key_opts_set(struct nlattr *nla, struct ip_tunnel_info *info, in tunnel_key_opts_set() argument
173 switch (nla_type(nla_data(nla))) { in tunnel_key_opts_set()
177 return tunnel_key_copy_opts(nla, ip_tunnel_info_opts(info), in tunnel_key_opts_set()
[all …]
Dem_meta.c692 static int meta_var_change(struct meta_value *dst, struct nlattr *nla) in meta_var_change() argument
694 int len = nla_len(nla); in meta_var_change()
696 dst->val = (unsigned long)kmemdup(nla_data(nla), len, GFP_KERNEL); in meta_var_change()
745 static int meta_int_change(struct meta_value *dst, struct nlattr *nla) in meta_int_change() argument
747 if (nla_len(nla) >= sizeof(unsigned long)) { in meta_int_change()
748 dst->val = *(unsigned long *) nla_data(nla); in meta_int_change()
750 } else if (nla_len(nla) == sizeof(u32)) { in meta_int_change()
751 dst->val = nla_get_u32(nla); in meta_int_change()
882 static inline int meta_change_data(struct meta_value *dst, struct nlattr *nla) in meta_change_data() argument
884 if (nla) { in meta_change_data()
[all …]
Dematch.c171 struct tcf_ematch *em, struct nlattr *nla, int idx) in tcf_em_validate() argument
174 struct tcf_ematch_hdr *em_hdr = nla_data(nla); in tcf_em_validate()
175 int data_len = nla_len(nla) - sizeof(*em_hdr); in tcf_em_validate()
300 int tcf_em_tree_validate(struct tcf_proto *tp, struct nlattr *nla, in tcf_em_tree_validate() argument
310 if (!nla) in tcf_em_tree_validate()
313 err = nla_parse_nested_deprecated(tb, TCA_EMATCH_TREE_MAX, nla, in tcf_em_tree_validate()
Dcls_bpf.c545 struct nlattr *nla; in cls_bpf_dump_bpf_info() local
550 nla = nla_reserve(skb, TCA_BPF_OPS, prog->bpf_num_ops * in cls_bpf_dump_bpf_info()
552 if (nla == NULL) in cls_bpf_dump_bpf_info()
555 memcpy(nla_data(nla), prog->bpf_ops, nla_len(nla)); in cls_bpf_dump_bpf_info()
563 struct nlattr *nla; in cls_bpf_dump_ebpf_info() local
572 nla = nla_reserve(skb, TCA_BPF_TAG, sizeof(prog->filter->tag)); in cls_bpf_dump_ebpf_info()
573 if (nla == NULL) in cls_bpf_dump_ebpf_info()
576 memcpy(nla_data(nla), prog->filter->tag, nla_len(nla)); in cls_bpf_dump_ebpf_info()
/Linux-v5.4/net/openvswitch/
Dflow_netlink.c53 struct nlattr *nla; in actions_may_change_flow() local
56 nla_for_each_nested(nla, actions, rem) { in actions_may_change_flow()
57 u16 action = nla_type(nla); in actions_may_change_flow()
465 const struct nlattr *nla; in __parse_flow_nlattrs() local
470 nla_for_each_nested(nla, attr, rem) { in __parse_flow_nlattrs()
471 u16 type = nla_type(nla); in __parse_flow_nlattrs()
486 if (!check_attr_len(nla_len(nla), expected_len)) { in __parse_flow_nlattrs()
488 type, nla_len(nla), expected_len); in __parse_flow_nlattrs()
492 if (!nz || !is_all_zero(nla_data(nla), nla_len(nla))) { in __parse_flow_nlattrs()
494 a[type] = nla; in __parse_flow_nlattrs()
[all …]
Dmeter.c111 struct nlattr *nla; in ovs_meter_cmd_reply_stats() local
127 nla = nla_nest_start_noflag(reply, OVS_METER_ATTR_BANDS); in ovs_meter_cmd_reply_stats()
128 if (!nla) in ovs_meter_cmd_reply_stats()
143 nla_nest_end(reply, nla); in ovs_meter_cmd_reply_stats()
154 struct nlattr *nla, *band_nla; in ovs_meter_cmd_features() local
166 nla = nla_nest_start_noflag(reply, OVS_METER_ATTR_BANDS); in ovs_meter_cmd_features()
167 if (!nla) in ovs_meter_cmd_features()
177 nla_nest_end(reply, nla); in ovs_meter_cmd_features()
190 struct nlattr *nla; in dp_meter_create() local
201 nla_for_each_nested(nla, a[OVS_METER_ATTR_BANDS], rem) in dp_meter_create()
[all …]
/Linux-v5.4/net/mpls/
Daf_mpls.c718 static int nla_get_via(const struct nlattr *nla, u8 *via_alen, u8 *via_table, in nla_get_via() argument
721 struct rtvia *via = nla_data(nla); in nla_get_via()
725 if (nla_len(nla) < offsetof(struct rtvia, rtvia_addr)) { in nla_get_via()
726 NL_SET_ERR_MSG_ATTR(extack, nla, in nla_get_via()
730 alen = nla_len(nla) - in nla_get_via()
733 NL_SET_ERR_MSG_ATTR(extack, nla, in nla_get_via()
845 struct nlattr *nla, *attrs = rtnh_attrs(rtnh); in mpls_count_nexthops() local
850 nla = nla_find(attrs, attrlen, RTA_VIA); in mpls_count_nexthops()
851 if (nla && nla_len(nla) >= in mpls_count_nexthops()
853 int via_alen = nla_len(nla) - in mpls_count_nexthops()
[all …]
/Linux-v5.4/net/ipv6/
Dseg6_local.c672 struct nlattr *nla; in put_nla_srh() local
678 nla = nla_reserve(skb, SEG6_LOCAL_SRH, len); in put_nla_srh()
679 if (!nla) in put_nla_srh()
682 memcpy(nla_data(nla), srh, len); in put_nla_srh()
730 struct nlattr *nla; in put_nla_nh4() local
732 nla = nla_reserve(skb, SEG6_LOCAL_NH4, sizeof(struct in_addr)); in put_nla_nh4()
733 if (!nla) in put_nla_nh4()
736 memcpy(nla_data(nla), &slwt->nh4, sizeof(struct in_addr)); in put_nla_nh4()
756 struct nlattr *nla; in put_nla_nh6() local
758 nla = nla_reserve(skb, SEG6_LOCAL_NH6, sizeof(struct in6_addr)); in put_nla_nh6()
[all …]
/Linux-v5.4/net/psample/
Dpsample.c271 struct nlattr *nla; in psample_sample_packet() local
273 nla = skb_put(nl_skb, nla_len); in psample_sample_packet()
274 nla->nla_type = PSAMPLE_ATTR_DATA; in psample_sample_packet()
275 nla->nla_len = nla_attr_size(data_len); in psample_sample_packet()
277 if (skb_copy_bits(skb, 0, nla_data(nla), data_len)) in psample_sample_packet()
/Linux-v5.4/drivers/net/
Dgtp.c876 static struct gtp_dev *gtp_find_dev(struct net *src_net, struct nlattr *nla[]) in gtp_find_dev() argument
885 if (nla[GTPA_NET_NS_FD]) in gtp_find_dev()
886 net = get_net_ns_by_fd(nla_get_u32(nla[GTPA_NET_NS_FD])); in gtp_find_dev()
894 dev = dev_get_by_index_rcu(net, nla_get_u32(nla[GTPA_LINK])); in gtp_find_dev()
1086 struct nlattr *nla[]) in gtp_find_pdp_by_link() argument
1090 gtp = gtp_find_dev(net, nla); in gtp_find_pdp_by_link()
1094 if (nla[GTPA_MS_ADDRESS]) { in gtp_find_pdp_by_link()
1095 __be32 ip = nla_get_be32(nla[GTPA_MS_ADDRESS]); in gtp_find_pdp_by_link()
1098 } else if (nla[GTPA_VERSION]) { in gtp_find_pdp_by_link()
1099 u32 gtp_version = nla_get_u32(nla[GTPA_VERSION]); in gtp_find_pdp_by_link()
[all …]

12345