~ubuntu-branches/ubuntu/precise/openvswitch/precise-proposed

« back to all changes in this revision

Viewing changes to .pc/0012-netdev-linux-Cache-flags-using-netlink.patch/lib/rtnetlink-link.h

  • Committer: Package Import Robot
  • Author(s): Chris J Arges
  • Date: 2014-02-14 12:38:07 UTC
  • Revision ID: package-import@ubuntu.com-20140214123807-rjw0c8a60t9ax7ld
Tags: 1.4.6-0ubuntu1.12.04.3
d/p/0011-netdev-linux-Get-carrier-from-ioctl-instead-of-sysfs.patch:
d/p/0012-netdev-linux-Cache-flags-using-netlink.patch:
Fix latency issues between VMs using OVS. (LP: #1280370)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (c) 2009 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 RTNETLINK_LINK_H
 
18
#define RTNETLINK_LINK_H 1
 
19
 
 
20
#include <stdbool.h>
 
21
 
 
22
struct ofpbuf;
 
23
struct nln_notifier;
 
24
 
 
25
/* These functions are Linux specific, so they should be used directly only by
 
26
 * Linux-specific code. */
 
27
 
 
28
/* A digested version of an rtnetlink_link message sent down by the kernel to
 
29
 * indicate that a network device has been created, destroyed or changed.  */
 
30
struct rtnetlink_link_change {
 
31
    /* Copied from struct nlmsghdr. */
 
32
    int nlmsg_type;             /* e.g. RTM_NEWLINK, RTM_DELLINK. */
 
33
 
 
34
    /* Copied from struct ifinfomsg. */
 
35
    int ifi_index;              /* Index of network device. */
 
36
 
 
37
    /* Extracted from Netlink attributes. */
 
38
    const char *ifname;         /* Name of network device. */
 
39
    int master_ifindex;         /* Ifindex of datapath master (0 if none). */
 
40
    bool running;               /* Carrier of network device. */
 
41
};
 
42
 
 
43
/* Function called to report that a netdev has changed.  'change' describes the
 
44
 * specific change.  It may be null if the buffer of change information
 
45
 * overflowed, in which case the function must assume that every device may
 
46
 * have changed.  'aux' is as specified in the call to
 
47
 * rtnetlink_link_notifier_register().  */
 
48
typedef
 
49
void rtnetlink_link_notify_func(const struct rtnetlink_link_change *change,
 
50
                                void *aux);
 
51
 
 
52
bool rtnetlink_link_parse(struct ofpbuf *buf,
 
53
                          struct rtnetlink_link_change *change);
 
54
struct nln_notifier *
 
55
rtnetlink_link_notifier_create(rtnetlink_link_notify_func *, void *aux);
 
56
void rtnetlink_link_notifier_destroy(struct nln_notifier *);
 
57
void rtnetlink_link_run(void);
 
58
void rtnetlink_link_wait(void);
 
59
#endif /* rtnetlink-link.h */