Signed-off-by: Ethan Jackson <ethan@nicira.com>
uint8_t etheraddr[ETH_ADDR_LEN];
};
uint8_t etheraddr[ETH_ADDR_LEN];
};
-struct netdev_vport {
- struct netdev netdev;
-};
-
struct vport_class {
enum ovs_vport_type type;
struct netdev_class netdev_class;
struct vport_class {
enum ovs_vport_type type;
struct netdev_class netdev_class;
return netdev_dev_vport_cast(netdev_get_dev(netdev));
}
return netdev_dev_vport_cast(netdev_get_dev(netdev));
}
-static struct netdev_vport *
-netdev_vport_cast(const struct netdev *netdev)
-{
- struct netdev_dev *netdev_dev = netdev_get_dev(netdev);
- assert(is_vport_class(netdev_dev_get_class(netdev_dev)));
- return CONTAINER_OF(netdev, struct netdev_vport, netdev);
-}
-
/* If 'netdev' is a vport netdev, returns an ofpbuf that contains Netlink
* options to include in OVS_VPORT_ATTR_OPTIONS for configuring that vport.
* Otherwise returns NULL. */
/* If 'netdev' is a vport netdev, returns an ofpbuf that contains Netlink
* options to include in OVS_VPORT_ATTR_OPTIONS for configuring that vport.
* Otherwise returns NULL. */
-netdev_vport_open(struct netdev_dev *netdev_dev_, struct netdev **netdevp)
+netdev_vport_open(struct netdev_dev *netdev_dev, struct netdev **netdevp)
- struct netdev_vport *netdev;
-
- netdev = xmalloc(sizeof *netdev);
- netdev_init(&netdev->netdev, netdev_dev_);
-
- *netdevp = &netdev->netdev;
+ *netdevp = xmalloc(sizeof **netdevp);
+ netdev_init(*netdevp, netdev_dev);
-netdev_vport_close(struct netdev *netdev_)
+netdev_vport_close(struct netdev *netdev)
- struct netdev_vport *netdev = netdev_vport_cast(netdev_);