]> git.proxmox.com Git - mirror_ovs.git/blame - lib/vlandev.h
dpif-netdev: Store actions data and size contiguously.
[mirror_ovs.git] / lib / vlandev.h
CommitLineData
025e874a 1/*
e0edde6f 2 * Copyright (c) 2011 Nicira, Inc.
025e874a
BP
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at:
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef VLANDEV_H
18#define VLANDEV_H 1
19
20#include "hmap.h"
21
22/* Linux VLAN device support (e.g. "eth0.10" for VLAN 10.)
23 *
24 * This is deprecated. It is only for compatibility with broken device
25 * drivers in old versions of Linux that do not properly support VLANs when
26 * VLAN devices are not used. When broken device drivers are no longer in
27 * widespread use, we will delete these interfaces. */
28
29/* A VLAN device (e.g. "eth0.10" for VLAN 10 on eth0). */
30struct vlan_dev {
31 struct vlan_real_dev *real_dev; /* Parent, e.g. "eth0". */
32 struct hmap_node hmap_node; /* In vlan_real_dev's "vlan_devs" map. */
33 char *name; /* VLAN device name, e.g. "eth0.10". */
34 int vid; /* VLAN ID, e.g. 10. */
35};
36
37/* A device that has VLAN devices broken out of it. */
38struct vlan_real_dev {
39 char *name; /* Name, e.g. "eth0". */
40 struct hmap vlan_devs; /* All child VLAN devices, hashed by VID. */
41};
42
1c3e353d
BP
43int vlandev_add(const char *real_dev, int vid);
44int vlandev_del(const char *vlan_dev);
025e874a 45
1c3e353d 46int vlandev_refresh(void);
025e874a 47struct shash *vlandev_get_real_devs(void);
025e874a
BP
48const char *vlandev_get_name(const char *real_dev_name, int vid);
49
025e874a 50#endif /* vlandev.h */