ofproto: Avoid user->kernel->user round-trip for many controller actions.
[openvswitch] / lib / netdev-vport.h
1 /*
2  * Copyright (c) 2010 Nicira Networks.
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 NETDEV_VPORT_H
18 #define NETDEV_VPORT_H 1
19
20 #include "netdev-provider.h"
21 #include "packets.h"
22
23 int netdev_vport_do_ioctl(int cmd, void *arg);
24
25 int netdev_vport_set_etheraddr(struct netdev *,
26                                const uint8_t mac[ETH_ADDR_LEN]);
27 int netdev_vport_get_etheraddr(const struct netdev *,
28                                uint8_t mac[ETH_ADDR_LEN]);
29 int netdev_vport_get_mtu(const struct netdev *, int *mtup);
30 int netdev_vport_get_carrier(const struct netdev *, bool *carrier);
31 int netdev_vport_get_stats(const struct netdev *, struct netdev_stats *);
32 int netdev_vport_set_stats(struct netdev *, const struct netdev_stats *);
33 int netdev_vport_update_flags(struct netdev *, enum netdev_flags off,
34                               enum netdev_flags on,
35                               enum netdev_flags *old_flagsp);
36
37 int netdev_vport_poll_add(struct netdev *,
38                           void (*cb)(struct netdev_notifier *), void *aux,
39                           struct netdev_notifier **);
40 void netdev_vport_poll_remove(struct netdev_notifier *);
41 void netdev_vport_poll_notify(const struct netdev *);
42
43 #endif /* netdev-vport.h */