diff options
author | Patrick McHardy <kaber@trash.net> | 2013-06-28 18:11:40 +0200 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2013-06-28 18:11:40 +0200 |
commit | 6ae22c1b39288c8231fcc4ad264370decc882d02 (patch) | |
tree | 3acbfdb5e98124a0df1baec09b4e55bb33ce48d8 /doc | |
parent | d2b5cbd88ad9af1fc749b22f19dad9c15d6cbb85 (diff) | |
parent | 01cfa9c1dbe8215717e27aa6802290cf51ab6186 (diff) |
Diffstat (limited to 'doc')
-rw-r--r-- | doc/configure.ac | 2 | ||||
-rw-r--r-- | doc/route.txt | 57 |
2 files changed, 58 insertions, 1 deletions
diff --git a/doc/configure.ac b/doc/configure.ac index 4c3a52f..42cde8d 100644 --- a/doc/configure.ac +++ b/doc/configure.ac @@ -9,7 +9,7 @@ # Copyright (c) 2003-2013 Thomas Graf <tgraf@suug.ch> # -AC_INIT(libnl-doc, [3.2.21], [http://www.infradead.org/~tgr/libnl/]) +AC_INIT(libnl-doc, [3.2.22], [http://www.infradead.org/~tgr/libnl/]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR([build-aux]) AM_INIT_AUTOMAKE([foreign]) diff --git a/doc/route.txt b/doc/route.txt index c8f1735..6c97f7b 100644 --- a/doc/route.txt +++ b/doc/route.txt @@ -706,6 +706,63 @@ if ((err = rtnl_link_add(sk, link, NLM_F_CREATE)) < 0) rtnl_link_put(link); ----- +[[link_macvlan]] +==== MACVLAN + +[source,c] +----- +extern struct rtnl_link *rtnl_link_macvlan_alloc(void); + +extern int rtnl_link_is_macvlan(struct rtnl_link *); + +extern char * rtnl_link_macvlan_mode2str(int, char *, size_t); +extern int rtnl_link_macvlan_str2mode(const char *); + +extern char * rtnl_link_macvlan_flags2str(int, char *, size_t); +extern int rtnl_link_macvlan_str2flags(const char *); + +extern int rtnl_link_macvlan_set_mode(struct rtnl_link *, + uint32_t); +extern uint32_t rtnl_link_macvlan_get_mode(struct rtnl_link *); + +extern int rtnl_link_macvlan_set_flags(struct rtnl_link *, + uint16_t); +extern int rtnl_link_macvlan_unset_flags(struct rtnl_link *, + uint16_t); +extern uint16_t rtnl_link_macvlan_get_flags(struct rtnl_link *); +----- + +.Example: Add a MACVLAN device +[source,c] +----- +struct rtnl_link *link; +int master_index; +struct nl_addr* addr; + +/* lookup interface index of eth0 */ +if (!(master_index = rtnl_link_name2i(link_cache, "eth0"))) + /* error */ + +/* allocate new link object of type macvlan */ +link = rtnl_link_macvlan_alloc(); + +/* set eth0 to be our master device */ +rtnl_link_set_link(link, master_index); + +/* set address of virtual interface */ +addr = nl_addr_build(AF_LLC, ether_aton("00:11:22:33:44:55"), ETH_ALEN); +rtnl_link_set_addr(link, addr); +nl_addr_put(addr); + +/* set mode of virtual interface */ +rtnl_link_macvlan_set_mode(link, rtnl_link_macvlan_str2mode("bridge")); + +if ((err = rtnl_link_add(sk, link, NLM_F_CREATE)) < 0) + /* error */ + +rtnl_link_put(link); +----- + == Neighbouring == Routing |