Home
last modified time | relevance | path

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

1234

/Linux-v4.19/tools/lib/bpf/
Dnlattr.c29 static int nla_len(const struct nlattr *nla) in nla_len() argument
31 return nla->nla_len - NLA_HDRLEN; in nla_len()
34 static struct nlattr *nla_next(const struct nlattr *nla, int *remaining) in nla_next() argument
36 int totlen = NLA_ALIGN(nla->nla_len); in nla_next()
39 return (struct nlattr *) ((char *) nla + totlen); in nla_next()
42 static int nla_ok(const struct nlattr *nla, int remaining) in nla_ok() argument
44 return remaining >= sizeof(*nla) && in nla_ok()
45 nla->nla_len >= sizeof(*nla) && in nla_ok()
46 nla->nla_len <= remaining; in nla_ok()
49 static void *nla_data(const struct nlattr *nla) in nla_data() argument
[all …]
Dbpf.c507 struct nlattr *nla, *nla_xdp; in bpf_set_link_xdp_fd() local
557 nla = (struct nlattr *)(((char *)&req) in bpf_set_link_xdp_fd()
559 nla->nla_type = NLA_F_NESTED | IFLA_XDP; in bpf_set_link_xdp_fd()
560 nla->nla_len = NLA_HDRLEN; in bpf_set_link_xdp_fd()
563 nla_xdp = (struct nlattr *)((char *)nla + nla->nla_len); in bpf_set_link_xdp_fd()
567 nla->nla_len += nla_xdp->nla_len; in bpf_set_link_xdp_fd()
571 nla_xdp = (struct nlattr *)((char *)nla + nla->nla_len); in bpf_set_link_xdp_fd()
575 nla->nla_len += nla_xdp->nla_len; in bpf_set_link_xdp_fd()
578 req.nh.nlmsg_len += NLA_ALIGN(nla->nla_len); in bpf_set_link_xdp_fd()
/Linux-v4.19/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()
71 static int validate_nla(const struct nlattr *nla, int maxtype, in validate_nla() argument
75 int minlen = 0, attrlen = nla_len(nla), type = nla_type(nla); in validate_nla()
99 return validate_nla_bitfield32(nla, pt->validation_data); in validate_nla()
107 if (!minlen || memchr(nla_data(nla), '\0', minlen) == NULL) in validate_nla()
116 char *buf = nla_data(nla); in validate_nla()
138 nla = nla_data(nla) + NLA_ALIGN(pt->len); in validate_nla()
139 if (attrlen < NLA_ALIGN(pt->len) + NLA_HDRLEN + nla_len(nla)) in validate_nla()
179 const struct nlattr *nla; in nla_validate() local
[all …]
/Linux-v4.19/include/net/
Dnetlink.h254 size_t nla_strlcpy(char *dst, const struct nlattr *nla, size_t dstsize);
255 char *nla_strdup(const struct nlattr *nla, gfp_t flags);
257 int nla_memcmp(const struct nlattr *nla, const void *data, size_t size);
258 int nla_strcmp(const struct nlattr *nla, const char *str);
686 static inline int nla_type(const struct nlattr *nla) in nla_type() argument
688 return nla->nla_type & NLA_TYPE_MASK; in nla_type()
695 static inline void *nla_data(const struct nlattr *nla) in nla_data() argument
697 return (char *) nla + NLA_HDRLEN; in nla_data()
704 static inline int nla_len(const struct nlattr *nla) in nla_len() argument
706 return nla->nla_len - NLA_HDRLEN; in nla_len()
[all …]
/Linux-v4.19/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(tb, maxtype, nla, policy, NULL); 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-v4.19/net/netfilter/
Dnf_tables_api.c75 const struct nlattr * const *nla) in nft_ctx_init() argument
82 ctx->nla = nla; in nft_ctx_init()
259 if (msg_type == NFT_MSG_NEWRULE && ctx->nla[NFTA_RULE_ID] != NULL) { in nft_trans_rule_add()
261 ntohl(nla_get_be32(ctx->nla[NFTA_RULE_ID])); in nft_trans_rule_add()
310 if (msg_type == NFT_MSG_NEWSET && ctx->nla[NFTA_SET_ID] != NULL) { in nft_trans_set_add()
312 ntohl(nla_get_be32(ctx->nla[NFTA_SET_ID])); in nft_trans_set_add()
406 const struct nlattr *nla, in nft_table_lookup() argument
411 if (nla == NULL) in nft_table_lookup()
415 if (!nla_strcmp(nla, table->name) && in nft_table_lookup()
425 const struct nlattr *nla, in nft_table_lookup_byhandle() argument
[all …]
Dnft_log.c140 const struct nlattr *nla; in nft_log_init() local
153 nla = tb[NFTA_LOG_PREFIX]; in nft_log_init()
154 if (nla != NULL) { in nft_log_init()
155 priv->prefix = kmalloc(nla_len(nla) + 1, GFP_KERNEL); in nft_log_init()
158 nla_strlcpy(priv->prefix, nla, nla_len(nla) + 1); in nft_log_init()
/Linux-v4.19/net/wimax/
Dop-msg.c187 struct nlattr *nla; in wimax_msg_data_len() local
189 nla = nlmsg_find_attr(nlh, sizeof(struct genlmsghdr), in wimax_msg_data_len()
191 if (nla == NULL) { in wimax_msg_data_len()
195 *size = nla_len(nla); in wimax_msg_data_len()
196 return nla_data(nla); in wimax_msg_data_len()
209 struct nlattr *nla; in wimax_msg_data() local
211 nla = nlmsg_find_attr(nlh, sizeof(struct genlmsghdr), in wimax_msg_data()
213 if (nla == NULL) { in wimax_msg_data()
217 return nla_data(nla); in wimax_msg_data()
230 struct nlattr *nla; in wimax_msg_len() local
[all …]
/Linux-v4.19/net/ipv4/
Dmetrics.c12 struct nlattr *nla; in ip_metrics_convert() local
18 nla_for_each_attr(nla, fc_mx, fc_mx_len, remaining) { in ip_metrics_convert()
19 int type = nla_type(nla); in ip_metrics_convert()
30 nla_strlcpy(tmp, nla, sizeof(tmp)); in ip_metrics_convert()
35 if (nla_len(nla) != sizeof(u32)) in ip_metrics_convert()
37 val = nla_get_u32(nla); in ip_metrics_convert()
Dfib_semantics.c512 struct nlattr *nla, *attrs = rtnh_attrs(rtnh); in fib_get_nhs() local
514 nla = nla_find(attrs, attrlen, RTA_GATEWAY); in fib_get_nhs()
515 nexthop_nh->nh_gw = nla ? nla_get_in_addr(nla) : 0; in fib_get_nhs()
517 nla = nla_find(attrs, attrlen, RTA_FLOW); in fib_get_nhs()
518 nexthop_nh->nh_tclassid = nla ? nla_get_u32(nla) : 0; in fib_get_nhs()
522 nla = nla_find(attrs, attrlen, RTA_ENCAP); in fib_get_nhs()
523 if (nla) { in fib_get_nhs()
530 NL_SET_BAD_ATTR(extack, nla); in fib_get_nhs()
538 nla, AF_INET, cfg, in fib_get_nhs()
678 struct nlattr *nla, *attrs = rtnh_attrs(rtnh); in fib_nh_match() local
[all …]
/Linux-v4.19/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-v4.19/net/sched/
Dsch_fifo.c148 struct nlattr *nla; in fifo_set_limit() local
155 nla = kmalloc(nla_attr_size(sizeof(struct tc_fifo_qopt)), GFP_KERNEL); in fifo_set_limit()
156 if (nla) { in fifo_set_limit()
157 nla->nla_type = RTM_NEWQDISC; in fifo_set_limit()
158 nla->nla_len = nla_attr_size(sizeof(struct tc_fifo_qopt)); in fifo_set_limit()
159 ((struct tc_fifo_qopt *)nla_data(nla))->limit = limit; in fifo_set_limit()
161 ret = q->ops->change(q, nla, NULL); in fifo_set_limit()
162 kfree(nla); in fifo_set_limit()
Dact_bpf.c101 struct nlattr *nla; in tcf_bpf_dump_bpf_info() local
106 nla = nla_reserve(skb, TCA_ACT_BPF_OPS, prog->bpf_num_ops * in tcf_bpf_dump_bpf_info()
108 if (nla == NULL) in tcf_bpf_dump_bpf_info()
111 memcpy(nla_data(nla), prog->bpf_ops, nla_len(nla)); in tcf_bpf_dump_bpf_info()
119 struct nlattr *nla; in tcf_bpf_dump_ebpf_info() local
128 nla = nla_reserve(skb, TCA_ACT_BPF_TAG, sizeof(prog->filter->tag)); in tcf_bpf_dump_ebpf_info()
129 if (nla == NULL) in tcf_bpf_dump_ebpf_info()
132 memcpy(nla_data(nla), prog->filter->tag, nla_len(nla)); in tcf_bpf_dump_ebpf_info()
278 static int tcf_bpf_init(struct net *net, struct nlattr *nla, in tcf_bpf_init() argument
291 if (!nla) in tcf_bpf_init()
[all …]
Dact_tunnel_key.c71 tunnel_key_copy_geneve_opt(const struct nlattr *nla, void *dst, int dst_len, in tunnel_key_copy_geneve_opt() argument
79 nla, geneve_opt_policy, extack); in tunnel_key_copy_geneve_opt()
121 static int tunnel_key_copy_opts(const struct nlattr *nla, u8 *dst, in tunnel_key_copy_opts() argument
124 int err, rem, opt_len, len = nla_len(nla), opts_len = 0; in tunnel_key_copy_opts()
125 const struct nlattr *attr, *head = nla_data(nla); in tunnel_key_copy_opts()
161 static int tunnel_key_get_opts_len(struct nlattr *nla, in tunnel_key_get_opts_len() argument
164 return tunnel_key_copy_opts(nla, NULL, 0, extack); in tunnel_key_get_opts_len()
167 static int tunnel_key_opts_set(struct nlattr *nla, struct ip_tunnel_info *info, in tunnel_key_opts_set() argument
171 switch (nla_type(nla_data(nla))) { in tunnel_key_opts_set()
175 return tunnel_key_copy_opts(nla, ip_tunnel_info_opts(info), in tunnel_key_opts_set()
[all …]
Dem_meta.c696 static int meta_var_change(struct meta_value *dst, struct nlattr *nla) in meta_var_change() argument
698 int len = nla_len(nla); in meta_var_change()
700 dst->val = (unsigned long)kmemdup(nla_data(nla), len, GFP_KERNEL); in meta_var_change()
749 static int meta_int_change(struct meta_value *dst, struct nlattr *nla) in meta_int_change() argument
751 if (nla_len(nla) >= sizeof(unsigned long)) { in meta_int_change()
752 dst->val = *(unsigned long *) nla_data(nla); in meta_int_change()
754 } else if (nla_len(nla) == sizeof(u32)) { in meta_int_change()
755 dst->val = nla_get_u32(nla); in meta_int_change()
886 static inline int meta_change_data(struct meta_value *dst, struct nlattr *nla) in meta_change_data() argument
888 if (nla) { in meta_change_data()
[all …]
Dematch.c175 struct tcf_ematch *em, struct nlattr *nla, int idx) in tcf_em_validate() argument
178 struct tcf_ematch_hdr *em_hdr = nla_data(nla); in tcf_em_validate()
179 int data_len = nla_len(nla) - sizeof(*em_hdr); in tcf_em_validate()
304 int tcf_em_tree_validate(struct tcf_proto *tp, struct nlattr *nla, in tcf_em_tree_validate() argument
314 if (!nla) in tcf_em_tree_validate()
317 err = nla_parse_nested(tb, TCA_EMATCH_TREE_MAX, nla, em_policy, NULL); in tcf_em_tree_validate()
Dcls_bpf.c541 struct nlattr *nla; in cls_bpf_dump_bpf_info() local
546 nla = nla_reserve(skb, TCA_BPF_OPS, prog->bpf_num_ops * in cls_bpf_dump_bpf_info()
548 if (nla == NULL) in cls_bpf_dump_bpf_info()
551 memcpy(nla_data(nla), prog->bpf_ops, nla_len(nla)); in cls_bpf_dump_bpf_info()
559 struct nlattr *nla; in cls_bpf_dump_ebpf_info() local
568 nla = nla_reserve(skb, TCA_BPF_TAG, sizeof(prog->filter->tag)); in cls_bpf_dump_ebpf_info()
569 if (nla == NULL) in cls_bpf_dump_ebpf_info()
572 memcpy(nla_data(nla), prog->filter->tag, nla_len(nla)); in cls_bpf_dump_ebpf_info()
/Linux-v4.19/net/openvswitch/
Dflow_netlink.c66 struct nlattr *nla; in actions_may_change_flow() local
69 nla_for_each_nested(nla, actions, rem) { in actions_may_change_flow()
70 u16 action = nla_type(nla); in actions_may_change_flow()
476 const struct nlattr *nla; in __parse_flow_nlattrs() local
481 nla_for_each_nested(nla, attr, rem) { in __parse_flow_nlattrs()
482 u16 type = nla_type(nla); in __parse_flow_nlattrs()
497 if (!check_attr_len(nla_len(nla), expected_len)) { in __parse_flow_nlattrs()
499 type, nla_len(nla), expected_len); in __parse_flow_nlattrs()
503 if (!nz || !is_all_zero(nla_data(nla), expected_len)) { in __parse_flow_nlattrs()
505 a[type] = nla; in __parse_flow_nlattrs()
[all …]
Dmeter.c114 struct nlattr *nla; in ovs_meter_cmd_reply_stats() local
130 nla = nla_nest_start(reply, OVS_METER_ATTR_BANDS); in ovs_meter_cmd_reply_stats()
131 if (!nla) in ovs_meter_cmd_reply_stats()
146 nla_nest_end(reply, nla); in ovs_meter_cmd_reply_stats()
157 struct nlattr *nla, *band_nla; in ovs_meter_cmd_features() local
169 nla = nla_nest_start(reply, OVS_METER_ATTR_BANDS); in ovs_meter_cmd_features()
170 if (!nla) in ovs_meter_cmd_features()
180 nla_nest_end(reply, nla); in ovs_meter_cmd_features()
193 struct nlattr *nla; in dp_meter_create() local
204 nla_for_each_nested(nla, a[OVS_METER_ATTR_BANDS], rem) in dp_meter_create()
[all …]
/Linux-v4.19/net/core/
Ddrop_monitor.c75 struct nlattr *nla; in reset_per_cpu_data() local
96 nla = nla_reserve(skb, NLA_UNSPEC, in reset_per_cpu_data()
98 if (!nla) { in reset_per_cpu_data()
103 msg = nla_data(nla); in reset_per_cpu_data()
158 struct nlattr *nla; in trace_drop_common() local
173 nla = genlmsg_data(nlmsg_data(nlh)); in trace_drop_common()
174 msg = nla_data(nla); in trace_drop_common()
187 nla->nla_len += NLA_ALIGN(sizeof(struct net_dm_drop_point)); in trace_drop_common()
/Linux-v4.19/net/mpls/
Daf_mpls.c719 static int nla_get_via(const struct nlattr *nla, u8 *via_alen, u8 *via_table, in nla_get_via() argument
722 struct rtvia *via = nla_data(nla); in nla_get_via()
726 if (nla_len(nla) < offsetof(struct rtvia, rtvia_addr)) { in nla_get_via()
727 NL_SET_ERR_MSG_ATTR(extack, nla, in nla_get_via()
731 alen = nla_len(nla) - in nla_get_via()
734 NL_SET_ERR_MSG_ATTR(extack, nla, in nla_get_via()
846 struct nlattr *nla, *attrs = rtnh_attrs(rtnh); in mpls_count_nexthops() local
851 nla = nla_find(attrs, attrlen, RTA_VIA); in mpls_count_nexthops()
852 if (nla && nla_len(nla) >= in mpls_count_nexthops()
854 int via_alen = nla_len(nla) - in mpls_count_nexthops()
[all …]
/Linux-v4.19/net/ipv6/
Dseg6_local.c666 struct nlattr *nla; in put_nla_srh() local
672 nla = nla_reserve(skb, SEG6_LOCAL_SRH, len); in put_nla_srh()
673 if (!nla) in put_nla_srh()
676 memcpy(nla_data(nla), srh, len); in put_nla_srh()
724 struct nlattr *nla; in put_nla_nh4() local
726 nla = nla_reserve(skb, SEG6_LOCAL_NH4, sizeof(struct in_addr)); in put_nla_nh4()
727 if (!nla) in put_nla_nh4()
730 memcpy(nla_data(nla), &slwt->nh4, sizeof(struct in_addr)); in put_nla_nh4()
750 struct nlattr *nla; in put_nla_nh6() local
752 nla = nla_reserve(skb, SEG6_LOCAL_NH6, sizeof(struct in6_addr)); in put_nla_nh6()
[all …]
/Linux-v4.19/net/psample/
Dpsample.c265 struct nlattr *nla; in psample_sample_packet() local
267 nla = skb_put(nl_skb, nla_len); in psample_sample_packet()
268 nla->nla_type = PSAMPLE_ATTR_DATA; in psample_sample_packet()
269 nla->nla_len = nla_attr_size(data_len); in psample_sample_packet()
271 if (skb_copy_bits(skb, 0, nla_data(nla), data_len)) in psample_sample_packet()
/Linux-v4.19/drivers/net/
Dgtp.c861 static struct gtp_dev *gtp_find_dev(struct net *src_net, struct nlattr *nla[]) in gtp_find_dev() argument
870 if (nla[GTPA_NET_NS_FD]) in gtp_find_dev()
871 net = get_net_ns_by_fd(nla_get_u32(nla[GTPA_NET_NS_FD])); in gtp_find_dev()
879 dev = dev_get_by_index_rcu(net, nla_get_u32(nla[GTPA_LINK])); in gtp_find_dev()
1069 struct nlattr *nla[]) in gtp_find_pdp_by_link() argument
1073 gtp = gtp_find_dev(net, nla); in gtp_find_pdp_by_link()
1077 if (nla[GTPA_MS_ADDRESS]) { in gtp_find_pdp_by_link()
1078 __be32 ip = nla_get_be32(nla[GTPA_MS_ADDRESS]); in gtp_find_pdp_by_link()
1081 } else if (nla[GTPA_VERSION]) { in gtp_find_pdp_by_link()
1082 u32 gtp_version = nla_get_u32(nla[GTPA_VERSION]); in gtp_find_pdp_by_link()
[all …]

1234