Lines Matching refs:vport
123 static struct vport *new_vport(const struct vport_parms *);
136 struct vport *vport = ovs_vport_ovsl_rcu(dp, OVSP_LOCAL); in ovs_dp_name() local
137 return ovs_vport_name(vport); in ovs_dp_name()
142 struct vport *local; in get_dpifindex()
176 struct vport *ovs_lookup_vport(const struct datapath *dp, u16 port_no) in ovs_lookup_vport()
178 struct vport *vport; in ovs_lookup_vport() local
182 hlist_for_each_entry_rcu(vport, head, dp_hash_node) { in ovs_lookup_vport()
183 if (vport->port_no == port_no) in ovs_lookup_vport()
184 return vport; in ovs_lookup_vport()
190 static struct vport *new_vport(const struct vport_parms *parms) in new_vport()
192 struct vport *vport; in new_vport() local
194 vport = ovs_vport_add(parms); in new_vport()
195 if (!IS_ERR(vport)) { in new_vport()
197 struct hlist_head *head = vport_hash_bucket(dp, vport->port_no); in new_vport()
199 hlist_add_head_rcu(&vport->dp_hash_node, head); in new_vport()
201 return vport; in new_vport()
204 void ovs_dp_detach_port(struct vport *p) in ovs_dp_detach_port()
218 const struct vport *p = OVS_CB(skb)->input_vport; in ovs_dp_process_packet()
543 struct vport *input_vport; in ovs_packet_cmd_execute()
1528 struct vport *vport; in lookup_datapath() local
1530 vport = ovs_vport_locate(net, nla_data(a[OVS_DP_ATTR_NAME])); in lookup_datapath()
1531 dp = vport && vport->port_no == OVSP_LOCAL ? vport->dp : NULL; in lookup_datapath()
1584 struct vport *vport; in ovs_dp_cmd_new() local
1644 vport = new_vport(&parms); in ovs_dp_cmd_new()
1645 if (IS_ERR(vport)) { in ovs_dp_cmd_new()
1646 err = PTR_ERR(vport); in ovs_dp_cmd_new()
1697 struct vport *vport; in __dp_destroy() local
1700 hlist_for_each_entry_safe(vport, n, &dp->ports[i], dp_hash_node) in __dp_destroy()
1701 if (vport->port_no != OVSP_LOCAL) in __dp_destroy()
1702 ovs_dp_detach_port(vport); in __dp_destroy()
1882 static int ovs_vport_cmd_fill_info(struct vport *vport, struct sk_buff *skb, in ovs_vport_cmd_fill_info() argument
1895 ovs_header->dp_ifindex = get_dpifindex(vport->dp); in ovs_vport_cmd_fill_info()
1897 if (nla_put_u32(skb, OVS_VPORT_ATTR_PORT_NO, vport->port_no) || in ovs_vport_cmd_fill_info()
1898 nla_put_u32(skb, OVS_VPORT_ATTR_TYPE, vport->ops->type) || in ovs_vport_cmd_fill_info()
1900 ovs_vport_name(vport)) || in ovs_vport_cmd_fill_info()
1901 nla_put_u32(skb, OVS_VPORT_ATTR_IFINDEX, vport->dev->ifindex)) in ovs_vport_cmd_fill_info()
1904 if (!net_eq(net, dev_net(vport->dev))) { in ovs_vport_cmd_fill_info()
1905 int id = peernet2id_alloc(net, dev_net(vport->dev), gfp); in ovs_vport_cmd_fill_info()
1911 ovs_vport_get_stats(vport, &vport_stats); in ovs_vport_cmd_fill_info()
1917 if (ovs_vport_get_upcall_portids(vport, skb)) in ovs_vport_cmd_fill_info()
1920 err = ovs_vport_get_options(vport, skb); in ovs_vport_cmd_fill_info()
1940 struct sk_buff *ovs_vport_cmd_build_info(struct vport *vport, struct net *net, in ovs_vport_cmd_build_info() argument
1950 retval = ovs_vport_cmd_fill_info(vport, skb, net, portid, seq, 0, cmd, in ovs_vport_cmd_build_info()
1958 static struct vport *lookup_vport(struct net *net, in lookup_vport()
1963 struct vport *vport; in lookup_vport() local
1968 vport = ovs_vport_locate(net, nla_data(a[OVS_VPORT_ATTR_NAME])); in lookup_vport()
1969 if (!vport) in lookup_vport()
1972 ovs_header->dp_ifindex != get_dpifindex(vport->dp)) in lookup_vport()
1974 return vport; in lookup_vport()
1985 vport = ovs_vport_ovsl_rcu(dp, port_no); in lookup_vport()
1986 if (!vport) in lookup_vport()
1988 return vport; in lookup_vport()
1998 struct vport *vport; in ovs_get_max_headroom() local
2002 hlist_for_each_entry_rcu(vport, &dp->ports[i], dp_hash_node) { in ovs_get_max_headroom()
2003 dev = vport->dev; in ovs_get_max_headroom()
2016 struct vport *vport; in ovs_update_headroom() local
2021 hlist_for_each_entry_rcu(vport, &dp->ports[i], dp_hash_node) in ovs_update_headroom()
2022 netdev_set_rx_headroom(vport->dev, new_headroom); in ovs_update_headroom()
2031 struct vport *vport; in ovs_vport_cmd_new() local
2060 vport = ovs_vport_ovsl(dp, port_no); in ovs_vport_cmd_new()
2062 if (vport) in ovs_vport_cmd_new()
2070 vport = ovs_vport_ovsl(dp, port_no); in ovs_vport_cmd_new()
2071 if (!vport) in ovs_vport_cmd_new()
2083 vport = new_vport(&parms); in ovs_vport_cmd_new()
2084 err = PTR_ERR(vport); in ovs_vport_cmd_new()
2085 if (IS_ERR(vport)) { in ovs_vport_cmd_new()
2091 err = ovs_vport_cmd_fill_info(vport, reply, genl_info_net(info), in ovs_vport_cmd_new()
2095 new_headroom = netdev_get_fwd_headroom(vport->dev); in ovs_vport_cmd_new()
2100 netdev_set_rx_headroom(vport->dev, dp->max_headroom); in ovs_vport_cmd_new()
2118 struct vport *vport; in ovs_vport_cmd_set() local
2126 vport = lookup_vport(sock_net(skb->sk), info->userhdr, a); in ovs_vport_cmd_set()
2127 err = PTR_ERR(vport); in ovs_vport_cmd_set()
2128 if (IS_ERR(vport)) in ovs_vport_cmd_set()
2132 nla_get_u32(a[OVS_VPORT_ATTR_TYPE]) != vport->ops->type) { in ovs_vport_cmd_set()
2138 err = ovs_vport_set_options(vport, a[OVS_VPORT_ATTR_OPTIONS]); in ovs_vport_cmd_set()
2147 err = ovs_vport_set_upcall_portids(vport, ids); in ovs_vport_cmd_set()
2152 err = ovs_vport_cmd_fill_info(vport, reply, genl_info_net(info), in ovs_vport_cmd_set()
2173 struct vport *vport; in ovs_vport_cmd_del() local
2182 vport = lookup_vport(sock_net(skb->sk), info->userhdr, a); in ovs_vport_cmd_del()
2183 err = PTR_ERR(vport); in ovs_vport_cmd_del()
2184 if (IS_ERR(vport)) in ovs_vport_cmd_del()
2187 if (vport->port_no == OVSP_LOCAL) { in ovs_vport_cmd_del()
2192 err = ovs_vport_cmd_fill_info(vport, reply, genl_info_net(info), in ovs_vport_cmd_del()
2198 dp = vport->dp; in ovs_vport_cmd_del()
2199 if (netdev_get_fwd_headroom(vport->dev) == dp->max_headroom) in ovs_vport_cmd_del()
2202 netdev_reset_rx_headroom(vport->dev); in ovs_vport_cmd_del()
2203 ovs_dp_detach_port(vport); in ovs_vport_cmd_del()
2227 struct vport *vport; in ovs_vport_cmd_get() local
2235 vport = lookup_vport(sock_net(skb->sk), ovs_header, a); in ovs_vport_cmd_get()
2236 err = PTR_ERR(vport); in ovs_vport_cmd_get()
2237 if (IS_ERR(vport)) in ovs_vport_cmd_get()
2239 err = ovs_vport_cmd_fill_info(vport, reply, genl_info_net(info), in ovs_vport_cmd_get()
2267 struct vport *vport; in ovs_vport_cmd_dump() local
2270 hlist_for_each_entry_rcu(vport, &dp->ports[i], dp_hash_node) { in ovs_vport_cmd_dump()
2272 ovs_vport_cmd_fill_info(vport, skb, in ovs_vport_cmd_dump()
2401 struct vport *vport; in list_vports_from_net() local
2403 hlist_for_each_entry(vport, &dp->ports[i], dp_hash_node) { in list_vports_from_net()
2404 if (vport->ops->type != OVS_VPORT_TYPE_INTERNAL) in list_vports_from_net()
2407 if (dev_net(vport->dev) == dnet) in list_vports_from_net()
2408 list_add(&vport->detach_list, head); in list_vports_from_net()
2418 struct vport *vport, *vport_next; in ovs_exit_net() local
2433 list_for_each_entry_safe(vport, vport_next, &head, detach_list) { in ovs_exit_net()
2434 list_del(&vport->detach_list); in ovs_exit_net()
2435 ovs_dp_detach_port(vport); in ovs_exit_net()