1 /* 2 * Copyright (c) 2007-2011 Nicira, Inc. 3 * 4 * This program is free software; you can redistribute it and/or 5 * modify it under the terms of version 2 of the GNU General Public 6 * License as published by the Free Software Foundation. 7 * 8 * This program is distributed in the hope that it will be useful, but 9 * WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 * General Public License for more details. 12 * 13 * You should have received a copy of the GNU General Public License 14 * along with this program; if not, write to the Free Software 15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 16 * 02110-1301, USA 17 */ 18 19 #ifndef VPORT_NETDEV_H 20 #define VPORT_NETDEV_H 1 21 22 #include <linux/netdevice.h> 23 #include <linux/rcupdate.h> 24 25 #include "vport.h" 26 27 struct vport *ovs_netdev_get_vport(struct net_device *dev); 28 29 struct netdev_vport { 30 struct rcu_head rcu; 31 32 struct net_device *dev; 33 }; 34 35 static inline struct netdev_vport * 36 netdev_vport_priv(const struct vport *vport) 37 { 38 return vport_priv(vport); 39 } 40 41 const char *ovs_netdev_get_name(const struct vport *); 42 void ovs_netdev_detach_dev(struct vport *); 43 44 int __init ovs_netdev_init(void); 45 void ovs_netdev_exit(void); 46 47 #endif /* vport_netdev.h */ 48