Lines Matching refs:vport
138 static struct vport *new_vport(const struct vport_parms *);
152 struct vport *vport = ovs_internal_dev_get_vport(dev); in get_dp_rcu() local
153 if (vport) in get_dp_rcu()
154 return vport->dp; in get_dp_rcu()
178 struct vport *vport = ovs_vport_ovsl_rcu(dp, OVSP_LOCAL); in ovs_dp_name() local
179 return vport->ops->get_name(vport); in ovs_dp_name()
184 struct vport *local; in get_dpifindex()
217 struct vport *ovs_lookup_vport(const struct datapath *dp, u16 port_no) in ovs_lookup_vport()
219 struct vport *vport; in ovs_lookup_vport() local
223 hlist_for_each_entry_rcu(vport, head, dp_hash_node) { in ovs_lookup_vport()
224 if (vport->port_no == port_no) in ovs_lookup_vport()
225 return vport; in ovs_lookup_vport()
231 static struct vport *new_vport(const struct vport_parms *parms) in new_vport()
233 struct vport *vport; in new_vport() local
235 vport = ovs_vport_add(parms); in new_vport()
236 if (!IS_ERR(vport)) { in new_vport()
238 struct hlist_head *head = vport_hash_bucket(dp, vport->port_no); in new_vport()
240 hlist_add_head_rcu(&vport->dp_hash_node, head); in new_vport()
242 return vport; in new_vport()
245 void ovs_dp_detach_port(struct vport *p) in ovs_dp_detach_port()
259 const struct vport *p = OVS_CB(skb)->input_vport; in ovs_dp_process_packet()
520 struct vport *input_vport; in ovs_packet_cmd_execute()
1451 struct vport *vport; in lookup_datapath() local
1453 vport = ovs_vport_locate(net, nla_data(a[OVS_DP_ATTR_NAME])); in lookup_datapath()
1454 dp = vport && vport->port_no == OVSP_LOCAL ? vport->dp : NULL; in lookup_datapath()
1483 struct vport *vport; in ovs_dp_cmd_new() local
1536 vport = new_vport(&parms); in ovs_dp_cmd_new()
1537 if (IS_ERR(vport)) { in ovs_dp_cmd_new()
1538 err = PTR_ERR(vport); in ovs_dp_cmd_new()
1587 struct vport *vport; in __dp_destroy() local
1590 hlist_for_each_entry_safe(vport, n, &dp->ports[i], dp_hash_node) in __dp_destroy()
1591 if (vport->port_no != OVSP_LOCAL) in __dp_destroy()
1592 ovs_dp_detach_port(vport); in __dp_destroy()
1769 static int ovs_vport_cmd_fill_info(struct vport *vport, struct sk_buff *skb, in ovs_vport_cmd_fill_info() argument
1781 ovs_header->dp_ifindex = get_dpifindex(vport->dp); in ovs_vport_cmd_fill_info()
1783 if (nla_put_u32(skb, OVS_VPORT_ATTR_PORT_NO, vport->port_no) || in ovs_vport_cmd_fill_info()
1784 nla_put_u32(skb, OVS_VPORT_ATTR_TYPE, vport->ops->type) || in ovs_vport_cmd_fill_info()
1786 vport->ops->get_name(vport))) in ovs_vport_cmd_fill_info()
1789 ovs_vport_get_stats(vport, &vport_stats); in ovs_vport_cmd_fill_info()
1794 if (ovs_vport_get_upcall_portids(vport, skb)) in ovs_vport_cmd_fill_info()
1797 err = ovs_vport_get_options(vport, skb); in ovs_vport_cmd_fill_info()
1817 struct sk_buff *ovs_vport_cmd_build_info(struct vport *vport, u32 portid, in ovs_vport_cmd_build_info() argument
1827 retval = ovs_vport_cmd_fill_info(vport, skb, portid, seq, 0, cmd); in ovs_vport_cmd_build_info()
1834 static struct vport *lookup_vport(struct net *net, in lookup_vport()
1839 struct vport *vport; in lookup_vport() local
1842 vport = ovs_vport_locate(net, nla_data(a[OVS_VPORT_ATTR_NAME])); in lookup_vport()
1843 if (!vport) in lookup_vport()
1846 ovs_header->dp_ifindex != get_dpifindex(vport->dp)) in lookup_vport()
1848 return vport; in lookup_vport()
1859 vport = ovs_vport_ovsl_rcu(dp, port_no); in lookup_vport()
1860 if (!vport) in lookup_vport()
1862 return vport; in lookup_vport()
1873 struct vport *vport; in ovs_vport_cmd_new() local
1899 vport = ovs_vport_ovsl(dp, port_no); in ovs_vport_cmd_new()
1901 if (vport) in ovs_vport_cmd_new()
1909 vport = ovs_vport_ovsl(dp, port_no); in ovs_vport_cmd_new()
1910 if (!vport) in ovs_vport_cmd_new()
1922 vport = new_vport(&parms); in ovs_vport_cmd_new()
1923 err = PTR_ERR(vport); in ovs_vport_cmd_new()
1924 if (IS_ERR(vport)) { in ovs_vport_cmd_new()
1930 err = ovs_vport_cmd_fill_info(vport, reply, info->snd_portid, in ovs_vport_cmd_new()
1948 struct vport *vport; in ovs_vport_cmd_set() local
1956 vport = lookup_vport(sock_net(skb->sk), info->userhdr, a); in ovs_vport_cmd_set()
1957 err = PTR_ERR(vport); in ovs_vport_cmd_set()
1958 if (IS_ERR(vport)) in ovs_vport_cmd_set()
1962 nla_get_u32(a[OVS_VPORT_ATTR_TYPE]) != vport->ops->type) { in ovs_vport_cmd_set()
1968 err = ovs_vport_set_options(vport, a[OVS_VPORT_ATTR_OPTIONS]); in ovs_vport_cmd_set()
1977 err = ovs_vport_set_upcall_portids(vport, ids); in ovs_vport_cmd_set()
1982 err = ovs_vport_cmd_fill_info(vport, reply, info->snd_portid, in ovs_vport_cmd_set()
2000 struct vport *vport; in ovs_vport_cmd_del() local
2008 vport = lookup_vport(sock_net(skb->sk), info->userhdr, a); in ovs_vport_cmd_del()
2009 err = PTR_ERR(vport); in ovs_vport_cmd_del()
2010 if (IS_ERR(vport)) in ovs_vport_cmd_del()
2013 if (vport->port_no == OVSP_LOCAL) { in ovs_vport_cmd_del()
2018 err = ovs_vport_cmd_fill_info(vport, reply, info->snd_portid, in ovs_vport_cmd_del()
2021 ovs_dp_detach_port(vport); in ovs_vport_cmd_del()
2038 struct vport *vport; in ovs_vport_cmd_get() local
2046 vport = lookup_vport(sock_net(skb->sk), ovs_header, a); in ovs_vport_cmd_get()
2047 err = PTR_ERR(vport); in ovs_vport_cmd_get()
2048 if (IS_ERR(vport)) in ovs_vport_cmd_get()
2050 err = ovs_vport_cmd_fill_info(vport, reply, info->snd_portid, in ovs_vport_cmd_get()
2077 struct vport *vport; in ovs_vport_cmd_dump() local
2080 hlist_for_each_entry_rcu(vport, &dp->ports[i], dp_hash_node) { in ovs_vport_cmd_dump()
2082 ovs_vport_cmd_fill_info(vport, skb, in ovs_vport_cmd_dump()
2202 struct vport *vport; in list_vports_from_net() local
2204 hlist_for_each_entry(vport, &dp->ports[i], dp_hash_node) { in list_vports_from_net()
2207 if (vport->ops->type != OVS_VPORT_TYPE_INTERNAL) in list_vports_from_net()
2210 netdev_vport = netdev_vport_priv(vport); in list_vports_from_net()
2212 list_add(&vport->detach_list, head); in list_vports_from_net()
2222 struct vport *vport, *vport_next; in ovs_exit_net() local
2236 list_for_each_entry_safe(vport, vport_next, &head, detach_list) { in ovs_exit_net()
2237 list_del(&vport->detach_list); in ovs_exit_net()
2238 ovs_dp_detach_port(vport); in ovs_exit_net()