Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
net
rtnetlink.h
Go to the documentation of this file.
1
#ifndef __NET_RTNETLINK_H
2
#define __NET_RTNETLINK_H
3
4
#include <linux/rtnetlink.h>
5
#include <
net/netlink.h
>
6
7
typedef
int
(*
rtnl_doit_func
)(
struct
sk_buff
*,
struct
nlmsghdr
*,
void
*);
8
typedef
int
(*
rtnl_dumpit_func
)(
struct
sk_buff
*,
struct
netlink_callback
*);
9
typedef
u16
(*
rtnl_calcit_func
)(
struct
sk_buff
*,
struct
nlmsghdr
*);
10
11
extern
int
__rtnl_register
(
int
protocol
,
int
msgtype
,
12
rtnl_doit_func
,
rtnl_dumpit_func
,
13
rtnl_calcit_func
);
14
extern
void
rtnl_register
(
int
protocol
,
int
msgtype
,
15
rtnl_doit_func
,
rtnl_dumpit_func
,
16
rtnl_calcit_func
);
17
extern
int
rtnl_unregister
(
int
protocol
,
int
msgtype
);
18
extern
void
rtnl_unregister_all
(
int
protocol
);
19
20
static
inline
int
rtnl_msg_family(
const
struct
nlmsghdr
*nlh)
21
{
22
if
(
nlmsg_len
(nlh) >=
sizeof
(
struct
rtgenmsg
))
23
return
((
struct
rtgenmsg
*) nlmsg_data(nlh))->rtgen_family;
24
else
25
return
AF_UNSPEC
;
26
}
27
52
struct
rtnl_link_ops
{
53
struct
list_head
list
;
54
55
const
char
*
kind
;
56
57
size_t
priv_size
;
58
void
(*
setup
)(
struct
net_device
*
dev
);
59
60
int
maxtype
;
61
const
struct
nla_policy
*
policy
;
62
int
(*
validate
)(
struct
nlattr
*
tb
[],
63
struct
nlattr
*
data
[]);
64
65
int
(*
newlink
)(
struct
net
*src_net,
66
struct
net_device
*
dev
,
67
struct
nlattr
*
tb
[],
68
struct
nlattr
*
data
[]);
69
int
(*
changelink
)(
struct
net_device
*
dev
,
70
struct
nlattr
*
tb
[],
71
struct
nlattr
*
data
[]);
72
void
(*
dellink
)(
struct
net_device
*
dev
,
73
struct
list_head
*
head
);
74
75
size_t
(*
get_size
)(
const
struct
net_device
*
dev
);
76
int
(*
fill_info
)(
struct
sk_buff
*
skb
,
77
const
struct
net_device
*
dev
);
78
79
size_t
(*
get_xstats_size
)(
const
struct
net_device
*
dev
);
80
int
(*
fill_xstats
)(
struct
sk_buff
*
skb
,
81
const
struct
net_device
*
dev
);
82
unsigned
int
(*
get_num_tx_queues
)(
void
);
83
unsigned
int
(*
get_num_rx_queues
)(
void
);
84
};
85
86
extern
int
__rtnl_link_register
(
struct
rtnl_link_ops
*ops);
87
extern
void
__rtnl_link_unregister
(
struct
rtnl_link_ops
*ops);
88
89
extern
int
rtnl_link_register
(
struct
rtnl_link_ops
*ops);
90
extern
void
rtnl_link_unregister
(
struct
rtnl_link_ops
*ops);
91
106
struct
rtnl_af_ops
{
107
struct
list_head
list
;
108
int
family
;
109
110
int
(*
fill_link_af
)(
struct
sk_buff
*
skb
,
111
const
struct
net_device
*
dev
);
112
size_t
(*
get_link_af_size
)(
const
struct
net_device
*
dev
);
113
114
int
(*
validate_link_af
)(
const
struct
net_device
*
dev
,
115
const
struct
nlattr
*
attr
);
116
int
(*
set_link_af
)(
struct
net_device
*
dev
,
117
const
struct
nlattr
*
attr
);
118
};
119
120
extern
int
__rtnl_af_register
(
struct
rtnl_af_ops
*ops);
121
extern
void
__rtnl_af_unregister
(
struct
rtnl_af_ops
*ops);
122
123
extern
int
rtnl_af_register
(
struct
rtnl_af_ops
*ops);
124
extern
void
rtnl_af_unregister
(
struct
rtnl_af_ops
*ops);
125
126
127
extern
struct
net
*
rtnl_link_get_net
(
struct
net
*src_net,
struct
nlattr
*
tb
[]);
128
extern
struct
net_device
*
rtnl_create_link
(
struct
net
*src_net,
struct
net
*
net
,
129
char
*ifname,
const
struct
rtnl_link_ops
*ops,
struct
nlattr
*
tb
[]);
130
extern
int
rtnl_configure_link
(
struct
net_device
*
dev
,
131
const
struct
ifinfomsg
*ifm);
132
extern
const
struct
nla_policy
ifla_policy
[
IFLA_MAX
+1];
133
134
#define MODULE_ALIAS_RTNL_LINK(kind) MODULE_ALIAS("rtnl-link-" kind)
135
136
#endif
Generated on Thu Jan 10 2013 14:52:29 for Linux Kernel by
1.8.2