| /linux/lib/ |
| H A D | nlattr.c | 66 static int validate_nla_bitfield32(const struct nlattr *nla, in validate_nla_bitfield32() argument 69 const struct nla_bitfield32 *bf = nla_data(nla); in validate_nla_bitfield32() 171 const struct nlattr *nla, in nla_validate_range_unsigned() argument 180 value = nla_get_u8(nla); in nla_validate_range_unsigned() 183 value = nla_get_u16(nla); in nla_validate_range_unsigned() 186 value = nla_get_u32(nla); in nla_validate_range_unsigned() 189 value = nla_get_u64(nla); in nla_validate_range_unsigned() 192 value = nla_get_uint(nla); in nla_validate_range_unsigned() 195 value = nla_get_u64(nla); in nla_validate_range_unsigned() 198 value = nla_len(nla); in nla_validate_range_unsigned() [all …]
|
| /linux/tools/lib/bpf/ |
| H A D | nlattr.c | 25 static struct nlattr *nla_next(const struct nlattr *nla, int *remaining) in nla_next() argument 27 int totlen = NLA_ALIGN(nla->nla_len); in nla_next() 30 return (struct nlattr *)((void *)nla + totlen); in nla_next() 33 static int nla_ok(const struct nlattr *nla, int remaining) in nla_ok() argument 35 return remaining >= (int)sizeof(*nla) && in nla_ok() 36 nla->nla_len >= sizeof(*nla) && in nla_ok() 37 nla->nla_len <= remaining; in nla_ok() 40 static int nla_type(const struct nlattr *nla) in nla_type() argument 42 return nla in nla_type() 45 validate_nla(struct nlattr * nla,int maxtype,struct libbpf_nla_policy * policy) validate_nla() argument 107 struct nlattr *nla; libbpf_nla_parse() local 150 libbpf_nla_parse_nested(struct nlattr * tb[],int maxtype,struct nlattr * nla,struct libbpf_nla_policy * policy) libbpf_nla_parse_nested() argument [all...] |
| H A D | nlattr.h | 84 static inline void *libbpf_nla_data(const struct nlattr *nla) in libbpf_nla_data() argument 86 return (void *)nla + NLA_HDRLEN; in libbpf_nla_data() 89 static inline uint8_t libbpf_nla_getattr_u8(const struct nlattr *nla) in libbpf_nla_getattr_u8() argument 91 return *(uint8_t *)libbpf_nla_data(nla); in libbpf_nla_getattr_u8() 94 static inline uint16_t libbpf_nla_getattr_u16(const struct nlattr *nla) in libbpf_nla_getattr_u16() argument 96 return *(uint16_t *)libbpf_nla_data(nla); in libbpf_nla_getattr_u16() 99 static inline uint32_t libbpf_nla_getattr_u32(const struct nlattr *nla) in libbpf_nla_getattr_u32() argument 101 return *(uint32_t *)libbpf_nla_data(nla); in libbpf_nla_getattr_u32() 104 static inline uint64_t libbpf_nla_getattr_u64(const struct nlattr *nla) in libbpf_nla_getattr_u64() argument 106 return *(uint64_t *)libbpf_nla_data(nla); in libbpf_nla_getattr_u64() [all …]
|
| /linux/net/netfilter/ |
| H A D | nf_tables_api.c | 162 const struct nlattr * const *nla) in nft_ctx_init() argument 169 ctx->nla = nla; in nft_ctx_init() 667 if (ctx->nla[NFTA_CHAIN_ID]) { in nft_trans_chain_add() 669 ntohl(nla_get_be32(ctx->nla[NFTA_CHAIN_ID])); in nft_trans_chain_add() 739 if (msg_type == NFT_MSG_NEWRULE && ctx->nla[NFTA_RULE_ID] != NULL) { in nft_trans_rule_add() 741 ntohl(nla_get_be32(ctx->nla[NFTA_RULE_ID])); in nft_trans_rule_add() 811 if (msg_type == NFT_MSG_NEWSET && ctx->nla[NFTA_SET_ID] && !desc) { in __nft_trans_set_add() 813 ntohl(nla_get_be32(ctx->nla[NFTA_SET_ID])); in __nft_trans_set_add() 982 const struct nlattr *nla, in nft_table_lookup() argument 988 if (nla == NULL) in nft_table_lookup() [all …]
|
| H A D | nf_tables_trace.c | 33 struct nlattr *nla; in trace_fill_header() local 38 nla = nla_reserve(nlskb, type, len); in trace_fill_header() 39 if (!nla || skb_copy_bits(skb, off, nla_data(nla), len)) in trace_fill_header()
|
| H A D | nft_compat.c | 258 if (ctx->nla[NFTA_RULE_COMPAT]) { in nft_target_init() 259 ret = nft_parse_compat(ctx->nla[NFTA_RULE_COMPAT], &proto, &inv); in nft_target_init() 322 struct nlattr *nla; in nft_extension_dump_info() local 324 nla = nla_reserve(skb, attr, aligned_size); in nft_extension_dump_info() 325 if (!nla) in nft_extension_dump_info() 329 memcpy(nla_data(nla), info, info_size); in nft_extension_dump_info() 330 memset(nla_data(nla) + info_size, 0, aligned_size - info_size); in nft_extension_dump_info() 520 if (ctx->nla[NFTA_RULE_COMPAT]) { in __nft_match_init() 521 ret = nft_parse_compat(ctx->nla[NFTA_RULE_COMPAT], &proto, &inv); in __nft_match_init()
|
| /linux/net/sched/ |
| H A D | act_bpf.c | 100 struct nlattr *nla; in tcf_bpf_dump_bpf_info() local 105 nla = nla_reserve(skb, TCA_ACT_BPF_OPS, prog->bpf_num_ops * in tcf_bpf_dump_bpf_info() 107 if (nla == NULL) in tcf_bpf_dump_bpf_info() 110 memcpy(nla_data(nla), prog->bpf_ops, nla_len(nla)); in tcf_bpf_dump_bpf_info() 118 struct nlattr *nla; in tcf_bpf_dump_ebpf_info() local 127 nla = nla_reserve(skb, TCA_ACT_BPF_TAG, sizeof(prog->filter->tag)); in tcf_bpf_dump_ebpf_info() 128 if (nla == NULL) in tcf_bpf_dump_ebpf_info() 131 memcpy(nla_data(nla), prog->filter->tag, nla_len(nla)); in tcf_bpf_dump_ebpf_info() 277 static int tcf_bpf_init(struct net *net, struct nlattr *nla, in tcf_bpf_init() argument 293 if (!nla) in tcf_bpf_init() [all …]
|
| H A D | sch_fifo.c | 233 struct nlattr *nla; in fifo_set_limit() local 243 nla = kmalloc(nla_attr_size(sizeof(struct tc_fifo_qopt)), GFP_KERNEL); in fifo_set_limit() 244 if (nla) { in fifo_set_limit() 245 nla->nla_type = RTM_NEWQDISC; in fifo_set_limit() 246 nla->nla_len = nla_attr_size(sizeof(struct tc_fifo_qopt)); in fifo_set_limit() 247 ((struct tc_fifo_qopt *)nla_data(nla))->limit = limit; in fifo_set_limit() 249 ret = q->ops->change(q, nla, NULL); in fifo_set_limit() 250 kfree(nla); in fifo_set_limit()
|
| H A D | em_meta.c | 695 static int meta_var_change(struct meta_value *dst, struct nlattr *nla) in meta_var_change() argument 697 int len = nla_len(nla); in meta_var_change() 699 dst->val = (unsigned long)kmemdup(nla_data(nla), len, GFP_KERNEL); in meta_var_change() 748 static int meta_int_change(struct meta_value *dst, struct nlattr *nla) in meta_int_change() argument 750 if (nla_len(nla) >= sizeof(unsigned long)) { in meta_int_change() 751 dst->val = *(unsigned long *) nla_data(nla); in meta_int_change() 753 } else if (nla_len(nla) == sizeof(u32)) { in meta_int_change() 754 dst->val = nla_get_u32(nla); in meta_int_change() 885 static inline int meta_change_data(struct meta_value *dst, struct nlattr *nla) in meta_change_data() argument 887 if (nla) { in meta_change_data() [all …]
|
| H A D | ematch.c | 171 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() 305 int tcf_em_tree_validate(struct tcf_proto *tp, struct nlattr *nla, in tcf_em_tree_validate() argument 315 if (!nla) in tcf_em_tree_validate() 318 err = nla_parse_nested_deprecated(tb, TCA_EMATCH_TREE_MAX, nla, in tcf_em_tree_validate()
|
| H A 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()
|
| H A D | act_pedit.c | 42 static struct tcf_pedit_key_ex *tcf_pedit_keys_ex_parse(struct nlattr *nla, in tcf_pedit_keys_ex_parse() argument 51 if (!nla) in tcf_pedit_keys_ex_parse() 60 nla_for_each_nested(ka, nla, rem) { in tcf_pedit_keys_ex_parse() 82 if (NL_REQ_ATTR_CHECK(extack, nla, tb, TCA_PEDIT_KEY_EX_HTYPE)) { in tcf_pedit_keys_ex_parse() 88 if (NL_REQ_ATTR_CHECK(extack, nla, tb, TCA_PEDIT_KEY_EX_CMD)) { in tcf_pedit_keys_ex_parse() 156 static int tcf_pedit_init(struct net *net, struct nlattr *nla, in tcf_pedit_init() argument 173 if (!nla) { in tcf_pedit_init() 178 err = nla_parse_nested_deprecated(tb, TCA_PEDIT_MAX, nla, in tcf_pedit_init()
|
| H A D | act_api.c | 1334 struct tc_action_ops *tc_action_load_ops(struct nlattr *nla, u32 flags, in tc_action_load_ops() argument 1345 err = nla_parse_nested_deprecated(tb, TCA_ACT_MAX, nla, in tc_action_load_ops() 1398 struct nlattr *nla, struct nlattr *est, in tcf_action_init_1() argument 1412 err = nla_parse_nested_deprecated(tb, TCA_ACT_MAX, nla, in tcf_action_init_1() 1436 err = a_o->init(net, nla, est, &a, tp, userflags.value | flags, in tcf_action_init_1() 1466 int tcf_action_init(struct net *net, struct tcf_proto *tp, struct nlattr *nla, in tcf_action_init() argument 1479 err = nla_parse_nested_deprecated(tb, TCA_ACT_MAX_PRIO + 1, nla, NULL, in tcf_action_init() 1706 static struct tc_action *tcf_action_get_1(struct net *net, struct nlattr *nla, in tcf_action_get_1() argument 1716 err = nla_parse_nested_deprecated(tb, TCA_ACT_MAX, nla, in tcf_action_get_1() 1750 static int tca_action_flush(struct net *net, struct nlattr *nla, in tca_action_flush() argument [all …]
|
| H A D | act_connmark.c | 98 static int tcf_connmark_init(struct net *net, struct nlattr *nla, in tcf_connmark_init() argument 113 if (!nla) in tcf_connmark_init() 116 ret = nla_parse_nested_deprecated(tb, TCA_CONNMARK_MAX, nla, in tcf_connmark_init()
|
| /linux/net/openvswitch/ |
| H A D | vport.c | 313 struct nlattr *nla; in ovs_vport_get_upcall_stats() local 331 nla = nla_nest_start_noflag(skb, OVS_VPORT_ATTR_UPCALL_STATS); in ovs_vport_get_upcall_stats() 332 if (!nla) in ovs_vport_get_upcall_stats() 337 nla_nest_cancel(skb, nla); in ovs_vport_get_upcall_stats() 343 nla_nest_cancel(skb, nla); in ovs_vport_get_upcall_stats() 346 nla_nest_end(skb, nla); in ovs_vport_get_upcall_stats() 369 struct nlattr *nla; in ovs_vport_get_options() local 375 nla = nla_nest_start_noflag(skb, OVS_VPORT_ATTR_OPTIONS); in ovs_vport_get_options() 376 if (!nla) in ovs_vport_get_options() 381 nla_nest_cancel(skb, nla); in ovs_vport_get_options() [all...] |
| H A D | flow_netlink.c | 55 struct nlattr *nla; in actions_may_change_flow() local 58 nla_for_each_nested(nla, actions, rem) { in actions_may_change_flow() 59 u16 action = nla_type(nla); in actions_may_change_flow() 481 const struct nlattr *nla; in __parse_flow_nlattrs() local 486 nla_for_each_nested(nla, attr, rem) { in __parse_flow_nlattrs() 487 u16 type = nla_type(nla); in __parse_flow_nlattrs() 509 if (!check_attr_len(nla_len(nla), expected_len)) { in __parse_flow_nlattrs() 511 type, nla_len(nla), expected_len); in __parse_flow_nlattrs() 515 if (!nz || !is_all_zero(nla_data(nla), nla_len(nla))) { in __parse_flow_nlattrs() 517 a[type] = nla; in __parse_flow_nlattrs() [all …]
|
| H A D | meter.c | 235 struct nlattr *nla; in ovs_meter_cmd_reply_stats() local 250 nla = nla_nest_start_noflag(reply, OVS_METER_ATTR_BANDS); in ovs_meter_cmd_reply_stats() 251 if (!nla) in ovs_meter_cmd_reply_stats() 266 nla_nest_end(reply, nla); in ovs_meter_cmd_reply_stats() 277 struct nlattr *nla, *band_nla; in ovs_meter_cmd_features() local 303 nla = nla_nest_start_noflag(reply, OVS_METER_ATTR_BANDS); in ovs_meter_cmd_features() 304 if (!nla) in ovs_meter_cmd_features() 314 nla_nest_end(reply, nla); in ovs_meter_cmd_features() 328 struct nlattr *nla; in dp_meter_create() local 339 nla_for_each_nested(nla, a[OVS_METER_ATTR_BANDS], rem) in dp_meter_create() [all …]
|
| /linux/net/mpls/ |
| H A D | af_mpls.c | 752 static int nla_get_via(const struct nlattr *nla, u8 *via_alen, u8 *via_table, in nla_get_via() argument 755 struct rtvia *via = nla_data(nla); in nla_get_via() 759 if (nla_len(nla) < offsetof(struct rtvia, rtvia_addr)) { in nla_get_via() 760 NL_SET_ERR_MSG_ATTR(extack, nla, in nla_get_via() 764 alen = nla_len(nla) - in nla_get_via() 767 NL_SET_ERR_MSG_ATTR(extack, nla, in nla_get_via() 879 struct nlattr *nla, *attrs = rtnh_attrs(rtnh); in mpls_count_nexthops() local 884 nla = nla_find(attrs, attrlen, RTA_VIA); in mpls_count_nexthops() 885 if (nla && nla_len(nla) >= in mpls_count_nexthops() 887 int via_alen = nla_len(nla) - in mpls_count_nexthops() [all …]
|
| /linux/net/psample/ |
| H A D | psample.c | 293 struct nlattr *nla; in psample_ip_tun_to_nlattr() local 296 nla = nla_nest_start_noflag(skb, PSAMPLE_ATTR_TUNNEL); in psample_ip_tun_to_nlattr() 297 if (!nla) in psample_ip_tun_to_nlattr() 302 nla_nest_cancel(skb, nla); in psample_ip_tun_to_nlattr() 306 nla_nest_end(skb, nla); in psample_ip_tun_to_nlattr() 480 struct nlattr *nla; in psample_sample_packet() local 482 nla = skb_put(nl_skb, nla_len); in psample_sample_packet() 483 nla->nla_type = PSAMPLE_ATTR_DATA; in psample_sample_packet() 484 nla->nla_len = nla_attr_size(data_len); in psample_sample_packet() 486 if (skb_copy_bits(skb, 0, nla_data(nla), data_len)) in psample_sample_packet()
|
| /linux/net/handshake/ |
| H A D | tlshd.c | 66 struct nlattr *nla; in tls_handshake_remote_peerids() local 70 nla_for_each_attr(nla, head, len, rem) { in tls_handshake_remote_peerids() 71 if (nla_type(nla) == HANDSHAKE_A_DONE_REMOTE_AUTH) in tls_handshake_remote_peerids() 80 nla_for_each_attr(nla, head, len, rem) { in tls_handshake_remote_peerids() 81 if (nla_type(nla) == HANDSHAKE_A_DONE_REMOTE_AUTH) in tls_handshake_remote_peerids() 82 treq->th_peerid[i++] = nla_get_u32(nla); in tls_handshake_remote_peerids()
|
| /linux/net/ipv6/ |
| H A D | rpl_iptunnel.c | 67 static int rpl_build_state(struct net *net, struct nlattr *nla, in rpl_build_state() argument 81 err = nla_parse_nested(tb, RPL_IPTUNNEL_MAX, nla, in rpl_build_state() 328 struct nlattr *nla; in nla_put_rpl_srh() local 333 nla = nla_reserve(skb, attrtype, len); in nla_put_rpl_srh() 334 if (!nla) in nla_put_rpl_srh() 337 data = nla_data(nla); in nla_put_rpl_srh()
|
| /linux/include/net/ |
| H A D | fib_rules.h | 134 static inline u32 frh_get_table(struct fib_rule_hdr *frh, struct nlattr **nla) in frh_get_table() argument 136 if (nla[FRA_TABLE]) in frh_get_table() 137 return nla_get_u32(nla[FRA_TABLE]); in frh_get_table()
|
| H A D | act_api.h | 126 int (*init)(struct net *net, struct nlattr *nla, 215 int tcf_action_init(struct net *net, struct tcf_proto *tp, struct nlattr *nla, 219 struct tc_action_ops *tc_action_load_ops(struct nlattr *nla, u32 flags, 222 struct nlattr *nla, struct nlattr *est,
|
| /linux/tools/testing/selftests/net/openvswitch/ |
| H A D | ovs-dpctl.py | 28 from pyroute2.netlink import nla 364 class ovsactions(nla): 396 class psample(nla): 429 class sample(nla): 472 class ctact(nla): 488 class natattr(nla): 573 class userspace(nla): 899 class ovskey(nla): 937 class ovs_key_proto(nla): 960 nla.__init__( [all …]
|
| /linux/net/core/ |
| H A D | net_namespace.c | 857 struct nlattr *nla; in rtnl_net_newid() local 873 nla = tb[NETNSA_PID]; in rtnl_net_newid() 876 nla = tb[NETNSA_FD]; in rtnl_net_newid() 882 NL_SET_BAD_ATTR(extack, nla); in rtnl_net_newid() 891 NL_SET_BAD_ATTR(extack, nla); in rtnl_net_newid() 1007 struct nlattr *nla; in rtnl_net_getid() local 1016 nla = tb[NETNSA_PID]; in rtnl_net_getid() 1019 nla = tb[NETNSA_FD]; in rtnl_net_getid() 1024 nla = tb[NETNSA_NSID]; in rtnl_net_getid() 1031 NL_SET_BAD_ATTR(extack, nla); in rtnl_net_getid()
|