/Linux-v4.19/tools/lib/bpf/ |
D | nlattr.c | 29 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 …]
|
D | bpf.c | 507 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/ |
D | nlattr.c | 47 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/ |
D | netlink.h | 254 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/ |
D | drbd_nla.c | 7 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 …]
|
D | drbd_nla.h | 5 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/ |
D | nf_tables_api.c | 75 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 …]
|
D | nft_log.c | 140 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/ |
D | op-msg.c | 187 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/ |
D | metrics.c | 12 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()
|
D | fib_semantics.c | 512 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/ |
D | genl_magic_func.h | 101 #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/ |
D | sch_fifo.c | 148 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()
|
D | act_bpf.c | 101 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 …]
|
D | act_tunnel_key.c | 71 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 …]
|
D | em_meta.c | 696 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 …]
|
D | ematch.c | 175 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()
|
D | cls_bpf.c | 541 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/ |
D | flow_netlink.c | 66 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 …]
|
D | meter.c | 114 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/ |
D | drop_monitor.c | 75 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/ |
D | af_mpls.c | 719 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/ |
D | seg6_local.c | 666 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/ |
D | psample.c | 265 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/ |
D | gtp.c | 861 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 …]
|