Lines Matching refs:vport
137 static struct vport *new_vport(const struct vport_parms *);
151 struct vport *vport = ovs_internal_dev_get_vport(dev); in get_dp_rcu() local
152 if (vport) in get_dp_rcu()
153 return vport->dp; in get_dp_rcu()
177 struct vport *vport = ovs_vport_ovsl_rcu(dp, OVSP_LOCAL); in ovs_dp_name() local
178 return ovs_vport_name(vport); in ovs_dp_name()
183 struct vport *local; in get_dpifindex()
216 struct vport *ovs_lookup_vport(const struct datapath *dp, u16 port_no) in ovs_lookup_vport()
218 struct vport *vport; in ovs_lookup_vport() local
222 hlist_for_each_entry_rcu(vport, head, dp_hash_node) { in ovs_lookup_vport()
223 if (vport->port_no == port_no) in ovs_lookup_vport()
224 return vport; in ovs_lookup_vport()
230 static struct vport *new_vport(const struct vport_parms *parms) in new_vport()
232 struct vport *vport; in new_vport() local
234 vport = ovs_vport_add(parms); in new_vport()
235 if (!IS_ERR(vport)) { in new_vport()
237 struct hlist_head *head = vport_hash_bucket(dp, vport->port_no); in new_vport()
239 hlist_add_head_rcu(&vport->dp_hash_node, head); in new_vport()
241 return vport; in new_vport()
244 void ovs_dp_detach_port(struct vport *p) in ovs_dp_detach_port()
258 const struct vport *p = OVS_CB(skb)->input_vport; in ovs_dp_process_packet()
554 struct vport *input_vport; in ovs_packet_cmd_execute()
1499 struct vport *vport; in lookup_datapath() local
1501 vport = ovs_vport_locate(net, nla_data(a[OVS_DP_ATTR_NAME])); in lookup_datapath()
1502 dp = vport && vport->port_no == OVSP_LOCAL ? vport->dp : NULL; in lookup_datapath()
1531 struct vport *vport; in ovs_dp_cmd_new() local
1584 vport = new_vport(&parms); in ovs_dp_cmd_new()
1585 if (IS_ERR(vport)) { in ovs_dp_cmd_new()
1586 err = PTR_ERR(vport); in ovs_dp_cmd_new()
1635 struct vport *vport; in __dp_destroy() local
1638 hlist_for_each_entry_safe(vport, n, &dp->ports[i], dp_hash_node) in __dp_destroy()
1639 if (vport->port_no != OVSP_LOCAL) in __dp_destroy()
1640 ovs_dp_detach_port(vport); in __dp_destroy()
1817 static int ovs_vport_cmd_fill_info(struct vport *vport, struct sk_buff *skb, in ovs_vport_cmd_fill_info() argument
1829 ovs_header->dp_ifindex = get_dpifindex(vport->dp); in ovs_vport_cmd_fill_info()
1831 if (nla_put_u32(skb, OVS_VPORT_ATTR_PORT_NO, vport->port_no) || in ovs_vport_cmd_fill_info()
1832 nla_put_u32(skb, OVS_VPORT_ATTR_TYPE, vport->ops->type) || in ovs_vport_cmd_fill_info()
1834 ovs_vport_name(vport))) in ovs_vport_cmd_fill_info()
1837 ovs_vport_get_stats(vport, &vport_stats); in ovs_vport_cmd_fill_info()
1842 if (ovs_vport_get_upcall_portids(vport, skb)) in ovs_vport_cmd_fill_info()
1845 err = ovs_vport_get_options(vport, skb); in ovs_vport_cmd_fill_info()
1865 struct sk_buff *ovs_vport_cmd_build_info(struct vport *vport, u32 portid, in ovs_vport_cmd_build_info() argument
1875 retval = ovs_vport_cmd_fill_info(vport, skb, portid, seq, 0, cmd); in ovs_vport_cmd_build_info()
1882 static struct vport *lookup_vport(struct net *net, in lookup_vport()
1887 struct vport *vport; in lookup_vport() local
1890 vport = ovs_vport_locate(net, nla_data(a[OVS_VPORT_ATTR_NAME])); in lookup_vport()
1891 if (!vport) in lookup_vport()
1894 ovs_header->dp_ifindex != get_dpifindex(vport->dp)) in lookup_vport()
1896 return vport; in lookup_vport()
1907 vport = ovs_vport_ovsl_rcu(dp, port_no); in lookup_vport()
1908 if (!vport) in lookup_vport()
1910 return vport; in lookup_vport()
1921 struct vport *vport; in ovs_vport_cmd_new() local
1947 vport = ovs_vport_ovsl(dp, port_no); in ovs_vport_cmd_new()
1949 if (vport) in ovs_vport_cmd_new()
1957 vport = ovs_vport_ovsl(dp, port_no); in ovs_vport_cmd_new()
1958 if (!vport) in ovs_vport_cmd_new()
1970 vport = new_vport(&parms); in ovs_vport_cmd_new()
1971 err = PTR_ERR(vport); in ovs_vport_cmd_new()
1972 if (IS_ERR(vport)) { in ovs_vport_cmd_new()
1978 err = ovs_vport_cmd_fill_info(vport, reply, info->snd_portid, in ovs_vport_cmd_new()
1996 struct vport *vport; in ovs_vport_cmd_set() local
2004 vport = lookup_vport(sock_net(skb->sk), info->userhdr, a); in ovs_vport_cmd_set()
2005 err = PTR_ERR(vport); in ovs_vport_cmd_set()
2006 if (IS_ERR(vport)) in ovs_vport_cmd_set()
2010 nla_get_u32(a[OVS_VPORT_ATTR_TYPE]) != vport->ops->type) { in ovs_vport_cmd_set()
2016 err = ovs_vport_set_options(vport, a[OVS_VPORT_ATTR_OPTIONS]); in ovs_vport_cmd_set()
2025 err = ovs_vport_set_upcall_portids(vport, ids); in ovs_vport_cmd_set()
2030 err = ovs_vport_cmd_fill_info(vport, reply, info->snd_portid, in ovs_vport_cmd_set()
2048 struct vport *vport; in ovs_vport_cmd_del() local
2056 vport = lookup_vport(sock_net(skb->sk), info->userhdr, a); in ovs_vport_cmd_del()
2057 err = PTR_ERR(vport); in ovs_vport_cmd_del()
2058 if (IS_ERR(vport)) in ovs_vport_cmd_del()
2061 if (vport->port_no == OVSP_LOCAL) { in ovs_vport_cmd_del()
2066 err = ovs_vport_cmd_fill_info(vport, reply, info->snd_portid, in ovs_vport_cmd_del()
2069 ovs_dp_detach_port(vport); in ovs_vport_cmd_del()
2086 struct vport *vport; in ovs_vport_cmd_get() local
2094 vport = lookup_vport(sock_net(skb->sk), ovs_header, a); in ovs_vport_cmd_get()
2095 err = PTR_ERR(vport); in ovs_vport_cmd_get()
2096 if (IS_ERR(vport)) in ovs_vport_cmd_get()
2098 err = ovs_vport_cmd_fill_info(vport, reply, info->snd_portid, in ovs_vport_cmd_get()
2125 struct vport *vport; in ovs_vport_cmd_dump() local
2128 hlist_for_each_entry_rcu(vport, &dp->ports[i], dp_hash_node) { in ovs_vport_cmd_dump()
2130 ovs_vport_cmd_fill_info(vport, skb, in ovs_vport_cmd_dump()
2251 struct vport *vport; in list_vports_from_net() local
2253 hlist_for_each_entry(vport, &dp->ports[i], dp_hash_node) { in list_vports_from_net()
2254 if (vport->ops->type != OVS_VPORT_TYPE_INTERNAL) in list_vports_from_net()
2257 if (dev_net(vport->dev) == dnet) in list_vports_from_net()
2258 list_add(&vport->detach_list, head); in list_vports_from_net()
2268 struct vport *vport, *vport_next; in ovs_exit_net() local
2283 list_for_each_entry_safe(vport, vport_next, &head, detach_list) { in ovs_exit_net()
2284 list_del(&vport->detach_list); in ovs_exit_net()
2285 ovs_dp_detach_port(vport); in ovs_exit_net()