Lines Matching refs:a

614 	struct nlattr **a = info->attrs;  in ovs_packet_cmd_execute()  local
625 bool log = !a[OVS_PACKET_ATTR_PROBE]; in ovs_packet_cmd_execute()
628 if (!a[OVS_PACKET_ATTR_PACKET] || !a[OVS_PACKET_ATTR_KEY] || in ovs_packet_cmd_execute()
629 !a[OVS_PACKET_ATTR_ACTIONS]) in ovs_packet_cmd_execute()
632 len = nla_len(a[OVS_PACKET_ATTR_PACKET]); in ovs_packet_cmd_execute()
639 nla_memcpy(__skb_put(packet, len), a[OVS_PACKET_ATTR_PACKET], len); in ovs_packet_cmd_execute()
642 if (a[OVS_PACKET_ATTR_MRU]) { in ovs_packet_cmd_execute()
643 mru = nla_get_u16(a[OVS_PACKET_ATTR_MRU]); in ovs_packet_cmd_execute()
648 if (a[OVS_PACKET_ATTR_HASH]) { in ovs_packet_cmd_execute()
649 hash = nla_get_u64(a[OVS_PACKET_ATTR_HASH]); in ovs_packet_cmd_execute()
657 nla_get_u32_default(a[OVS_PACKET_ATTR_UPCALL_PID], 0); in ovs_packet_cmd_execute()
665 err = ovs_flow_key_extract_userspace(net, a[OVS_PACKET_ATTR_KEY], in ovs_packet_cmd_execute()
670 err = ovs_nla_copy_actions(net, a[OVS_PACKET_ATTR_ACTIONS], in ovs_packet_cmd_execute()
998 struct nlattr **a = info->attrs; in ovs_flow_cmd_new() local
1007 u32 ufid_flags = ovs_nla_get_ufid_flags(a[OVS_FLOW_ATTR_UFID_FLAGS]); in ovs_flow_cmd_new()
1009 bool log = !a[OVS_FLOW_ATTR_PROBE]; in ovs_flow_cmd_new()
1013 if (!a[OVS_FLOW_ATTR_KEY]) { in ovs_flow_cmd_new()
1017 if (!a[OVS_FLOW_ATTR_ACTIONS]) { in ovs_flow_cmd_new()
1039 error = ovs_nla_get_match(net, &match, a[OVS_FLOW_ATTR_KEY], in ovs_flow_cmd_new()
1040 a[OVS_FLOW_ATTR_MASK], log); in ovs_flow_cmd_new()
1047 error = ovs_nla_get_identifier(&new_flow->id, a[OVS_FLOW_ATTR_UFID], in ovs_flow_cmd_new()
1053 error = ovs_nla_copy_actions(net, a[OVS_FLOW_ATTR_ACTIONS], in ovs_flow_cmd_new()
1168 const struct nlattr *a, in get_flow_actions() argument
1178 error = ovs_nla_copy_actions(net, a, &masked_key, &acts, log); in get_flow_actions()
1205 struct nlattr **a, in ovs_nla_init_match_and_action() argument
1212 if (a[OVS_FLOW_ATTR_KEY]) { in ovs_nla_init_match_and_action()
1214 error = ovs_nla_get_match(net, match, a[OVS_FLOW_ATTR_KEY], in ovs_nla_init_match_and_action()
1215 a[OVS_FLOW_ATTR_MASK], log); in ovs_nla_init_match_and_action()
1220 if (a[OVS_FLOW_ATTR_ACTIONS]) { in ovs_nla_init_match_and_action()
1221 if (!a[OVS_FLOW_ATTR_KEY]) { in ovs_nla_init_match_and_action()
1228 *acts = get_flow_actions(net, a[OVS_FLOW_ATTR_ACTIONS], key, in ovs_nla_init_match_and_action()
1245 struct nlattr **a = info->attrs; in ovs_flow_cmd_set() local
1254 u32 ufid_flags = ovs_nla_get_ufid_flags(a[OVS_FLOW_ATTR_UFID_FLAGS]); in ovs_flow_cmd_set()
1256 bool log = !a[OVS_FLOW_ATTR_PROBE]; in ovs_flow_cmd_set()
1259 ufid_present = ovs_nla_get_ufid(&sfid, a[OVS_FLOW_ATTR_UFID], log); in ovs_flow_cmd_set()
1260 if (!a[OVS_FLOW_ATTR_KEY] && !ufid_present) { in ovs_flow_cmd_set()
1266 error = ovs_nla_init_match_and_action(net, &match, &key, a, in ovs_flow_cmd_set()
1324 if (a[OVS_FLOW_ATTR_CLEAR]) in ovs_flow_cmd_set()
1346 struct nlattr **a = info->attrs; in ovs_flow_cmd_get() local
1355 u32 ufid_flags = ovs_nla_get_ufid_flags(a[OVS_FLOW_ATTR_UFID_FLAGS]); in ovs_flow_cmd_get()
1357 bool log = !a[OVS_FLOW_ATTR_PROBE]; in ovs_flow_cmd_get()
1360 ufid_present = ovs_nla_get_ufid(&ufid, a[OVS_FLOW_ATTR_UFID], log); in ovs_flow_cmd_get()
1361 if (a[OVS_FLOW_ATTR_KEY]) { in ovs_flow_cmd_get()
1363 err = ovs_nla_get_match(net, &match, a[OVS_FLOW_ATTR_KEY], NULL, in ovs_flow_cmd_get()
1405 struct nlattr **a = info->attrs; in ovs_flow_cmd_del() local
1414 u32 ufid_flags = ovs_nla_get_ufid_flags(a[OVS_FLOW_ATTR_UFID_FLAGS]); in ovs_flow_cmd_del()
1416 bool log = !a[OVS_FLOW_ATTR_PROBE]; in ovs_flow_cmd_del()
1419 ufid_present = ovs_nla_get_ufid(&ufid, a[OVS_FLOW_ATTR_UFID], log); in ovs_flow_cmd_del()
1420 if (a[OVS_FLOW_ATTR_KEY]) { in ovs_flow_cmd_del()
1422 err = ovs_nla_get_match(net, &match, a[OVS_FLOW_ATTR_KEY], in ovs_flow_cmd_del()
1435 if (unlikely(!a[OVS_FLOW_ATTR_KEY] && !ufid_present)) { in ovs_flow_cmd_del()
1485 struct nlattr *a[__OVS_FLOW_ATTR_MAX]; in ovs_flow_cmd_dump() local
1492 err = genlmsg_parse_deprecated(cb->nlh, &dp_flow_genl_family, a, in ovs_flow_cmd_dump()
1496 ufid_flags = ovs_nla_get_ufid_flags(a[OVS_FLOW_ATTR_UFID_FLAGS]); in ovs_flow_cmd_dump()
1654 struct nlattr *a[OVS_DP_ATTR_MAX + 1]) in lookup_datapath()
1658 if (!a[OVS_DP_ATTR_NAME]) in lookup_datapath()
1663 vport = ovs_vport_locate(net, nla_data(a[OVS_DP_ATTR_NAME])); in lookup_datapath()
1736 static int ovs_dp_change(struct datapath *dp, struct nlattr *a[]) in ovs_dp_change() argument
1741 if (a[OVS_DP_ATTR_USER_FEATURES]) { in ovs_dp_change()
1742 user_features = nla_get_u32(a[OVS_DP_ATTR_USER_FEATURES]); in ovs_dp_change()
1756 if (a[OVS_DP_ATTR_MASKS_CACHE_SIZE]) { in ovs_dp_change()
1760 cache_size = nla_get_u32(a[OVS_DP_ATTR_MASKS_CACHE_SIZE]); in ovs_dp_change()
1769 a[OVS_DP_ATTR_PER_CPU_PIDS]) { in ovs_dp_change()
1772 a[OVS_DP_ATTR_PER_CPU_PIDS]); in ovs_dp_change()
1814 struct nlattr **a = info->attrs; in ovs_dp_cmd_new() local
1823 if (!a[OVS_DP_ATTR_NAME] || !a[OVS_DP_ATTR_UPCALL_PID]) in ovs_dp_cmd_new()
1855 parms.name = nla_data(a[OVS_DP_ATTR_NAME]); in ovs_dp_cmd_new()
1860 parms.upcall_portids = a[OVS_DP_ATTR_UPCALL_PID]; in ovs_dp_cmd_new()
1861 parms.desired_ifindex = nla_get_s32_default(a[OVS_DP_ATTR_IFINDEX], 0); in ovs_dp_cmd_new()
1866 err = ovs_dp_change(dp, a); in ovs_dp_cmd_new()
2215 struct nlattr *a[OVS_VPORT_ATTR_MAX + 1]) in lookup_vport()
2220 if (a[OVS_VPORT_ATTR_IFINDEX]) in lookup_vport()
2222 if (a[OVS_VPORT_ATTR_NAME]) { in lookup_vport()
2223 vport = ovs_vport_locate(net, nla_data(a[OVS_VPORT_ATTR_NAME])); in lookup_vport()
2230 } else if (a[OVS_VPORT_ATTR_PORT_NO]) { in lookup_vport()
2231 u32 port_no = nla_get_u32(a[OVS_VPORT_ATTR_PORT_NO]); in lookup_vport()
2285 struct nlattr **a = info->attrs; in ovs_vport_cmd_new() local
2295 if (!a[OVS_VPORT_ATTR_NAME] || !a[OVS_VPORT_ATTR_TYPE] || in ovs_vport_cmd_new()
2296 !a[OVS_VPORT_ATTR_UPCALL_PID]) in ovs_vport_cmd_new()
2299 parms.type = nla_get_u32(a[OVS_VPORT_ATTR_TYPE]); in ovs_vport_cmd_new()
2301 if (a[OVS_VPORT_ATTR_IFINDEX] && parms.type != OVS_VPORT_TYPE_INTERNAL) in ovs_vport_cmd_new()
2304 port_no = nla_get_u32_default(a[OVS_VPORT_ATTR_PORT_NO], 0); in ovs_vport_cmd_new()
2336 parms.name = nla_data(a[OVS_VPORT_ATTR_NAME]); in ovs_vport_cmd_new()
2337 parms.options = a[OVS_VPORT_ATTR_OPTIONS]; in ovs_vport_cmd_new()
2340 parms.upcall_portids = a[OVS_VPORT_ATTR_UPCALL_PID]; in ovs_vport_cmd_new()
2341 parms.desired_ifindex = nla_get_s32_default(a[OVS_VPORT_ATTR_IFINDEX], in ovs_vport_cmd_new()
2377 struct nlattr **a = info->attrs; in ovs_vport_cmd_set() local
2387 vport = lookup_vport(sock_net(skb->sk), genl_info_userhdr(info), a); in ovs_vport_cmd_set()
2392 if (a[OVS_VPORT_ATTR_TYPE] && in ovs_vport_cmd_set()
2393 nla_get_u32(a[OVS_VPORT_ATTR_TYPE]) != vport->ops->type) { in ovs_vport_cmd_set()
2398 if (a[OVS_VPORT_ATTR_OPTIONS]) { in ovs_vport_cmd_set()
2399 err = ovs_vport_set_options(vport, a[OVS_VPORT_ATTR_OPTIONS]); in ovs_vport_cmd_set()
2405 if (a[OVS_VPORT_ATTR_UPCALL_PID]) { in ovs_vport_cmd_set()
2406 struct nlattr *ids = a[OVS_VPORT_ATTR_UPCALL_PID]; in ovs_vport_cmd_set()
2431 struct nlattr **a = info->attrs; in ovs_vport_cmd_del() local
2443 vport = lookup_vport(sock_net(skb->sk), genl_info_userhdr(info), a); in ovs_vport_cmd_del()
2485 struct nlattr **a = info->attrs; in ovs_vport_cmd_get() local
2496 vport = lookup_vport(sock_net(skb->sk), ovs_header, a); in ovs_vport_cmd_get()