| DTS Application Library
    0.2.3
    Application library containing referenced objects and interfaces to common libraries | 
Implement various interface routines from libnetlink. More...
| Files | |
| file | interface.c | 
| Wrapper arround Linux libnetlink for managing network interfaces. | |
| Data Structures | |
| struct | iplink_req | 
| IP Netlink request.  More... | |
| struct | ipaddr_req | 
| IP Netlink IP addr request.  More... | |
| Enumerations | |
| enum | ipv4_score { IPV4_SCORE_ZEROCONF = 1 << 0, IPV4_SCORE_RESERVED = 1 << 1, IPV4_SCORE_ROUTABLE = 1 << 2 } | 
| Order of precidence of ipv4.  More... | |
| enum | ipv6_score { IPV6_SCORE_RESERVED = 1 << 0, IPV6_SCORE_SIXIN4 = 1 << 1, IPV6_SCORE_ROUTABLE = 1 << 2 } | 
| Return best ipv6 address in order of FFC/7 2002/16 ...  More... | |
| Functions | |
| void | closenetlink () | 
| Close netlink socket on application termination.  More... | |
| int | get_iface_index (const char *ifname) | 
| Get the netlink interface for a named interface.  More... | |
| int | delete_kernvlan (char *ifname, int vid) | 
| Delete a VLAN.  More... | |
| int | create_kernvlan (char *ifname, unsigned short vid) | 
| Create a VLAN on a interface.  More... | |
| int | delete_kernmac (char *ifname) | 
| Delete Kernel MAC VLAN.  More... | |
| int | create_kernmac (char *ifname, char *macdev, unsigned char *mac) | 
| Create a kernal MAC VLAN.  More... | |
| int | set_interface_flags (int ifindex, int set, int clear) | 
| Alter interface flags.  More... | |
| int | set_interface_addr (int ifindex, const unsigned char *hwaddr) | 
| Set interface MAC addr.  More... | |
| int | set_interface_name (int ifindex, const char *name) | 
| Rename interface.  More... | |
| int | interface_bind (char *iface, int protocol) | 
| Bind to device fd may be a existing socket.  More... | |
| void | randhwaddr (unsigned char *addr) | 
| create random MAC address  More... | |
| int | create_tun (const char *ifname, const unsigned char *hwaddr, int flags) | 
| Create a tunnel device.  More... | |
| int | ifdown (const char *ifname, int flags) | 
| Set interface down.  More... | |
| int | ifup (const char *ifname, int flags) | 
| Set interface up.  More... | |
| int | ifrename (const char *oldname, const char *newname) | 
| Rename interface helper.  More... | |
| int | ifhwaddr (const char *ifname, unsigned char *hwaddr) | 
| Get MAC addr for interface.  More... | |
| int | set_interface_ipaddr (char *ifname, char *ipaddr) | 
| Set IP addr on interface.  More... | |
| const char * | get_ifipaddr (const char *iface, int family) | 
| Find best IP adress for a interface.  More... | |
Implement various interface routines from libnetlink.
| enum ipv4_score | 
Order of precidence of ipv4.
| Enumerator | |
|---|---|
| IPV4_SCORE_ZEROCONF | Zeroconf IP's 169.254/16. | 
| IPV4_SCORE_RESERVED | Reseverd "private" ip addresses. | 
| IPV4_SCORE_ROUTABLE | Routable IP's. | 
Definition at line 63 of file interface.c.
| enum ipv6_score | 
Return best ipv6 address in order of FFC/7 2002/16 ...
| Enumerator | |
|---|---|
| IPV6_SCORE_RESERVED | Adminstrivly allocated addresses (FC/7) | 
| IPV6_SCORE_SIXIN4 | 6in4 address space | 
| IPV6_SCORE_ROUTABLE | Other routable addresses. | 
Definition at line 73 of file interface.c.
| void closenetlink | ( | void | ) | 
Close netlink socket on application termination.
Definition at line 130 of file interface.c.
References objunref().
| int create_kernmac | ( | char * | ifname, | 
| char * | macdev, | ||
| unsigned char * | mac | ||
| ) | 
Create a kernal MAC VLAN.
| ifname | Interface name to create | 
| macdev | Base interface | 
| mac | MAC address to use or random if NULL. | 
Definition at line 282 of file interface.c.
References get_iface_index(), iplink_req::n, objalloc(), objlock(), objref(), objunlock(), objunref(), randhwaddr(), and strlenzero().
| int create_kernvlan | ( | char * | ifname, | 
| unsigned short | vid | ||
| ) | 
Create a VLAN on a interface.
| ifname | Interface to add VLAN to. | 
| vid | VLAN id to add. | 
Definition at line 214 of file interface.c.
References get_iface_index(), iplink_req::n, objalloc(), objlock(), objref(), objunlock(), objunref(), and strlenzero().
| int create_tun | ( | const char * | ifname, | 
| const unsigned char * | hwaddr, | ||
| int | flags | ||
| ) | 
Create a tunnel device.
| ifname | Interface name to create.. | 
| hwaddr | Hardware address to assign (optionally). | 
| flags | Flags to set device properties. | 
Definition at line 496 of file interface.c.
References get_iface_index(), set_interface_addr(), and set_interface_flags().
| int delete_kernmac | ( | char * | ifname | ) | 
Delete Kernel MAC VLAN.
| ifname | Interface to delete. | 
Definition at line 272 of file interface.c.
| int delete_kernvlan | ( | char * | ifname, | 
| int | vid | ||
| ) | 
Delete a VLAN.
| ifname | Interface we deleting vlan from. | 
| vid | VLAN id to delete. | 
Definition at line 201 of file interface.c.
| int get_iface_index | ( | const char * | ifname | ) | 
Get the netlink interface for a named interface.
| ifname | Interface name. | 
Definition at line 139 of file interface.c.
References objlock(), objref(), objunlock(), and objunref().
Referenced by create_kernmac(), create_kernvlan(), create_tun(), ifdown(), ifhwaddr(), ifrename(), ifup(), interface_bind(), mcast_socket(), and set_interface_ipaddr().
| const char* get_ifipaddr | ( | const char * | iface, | 
| int | family | ||
| ) | 
Find best IP adress for a interface.
| iface | Interface name. | 
| family | PF_INET or PF_INET6. | 
Definition at line 783 of file interface.c.
References score_ipv4(), score_ipv6(), and strlenzero().
Referenced by mcast_socket().
| int ifdown | ( | const char * | ifname, | 
| int | flags | ||
| ) | 
Set interface down.
| ifname | Interface name. | 
| flags | Additional flags to clear. | 
Definition at line 535 of file interface.c.
References get_iface_index(), and set_interface_flags().
Referenced by ifrename().
| int ifhwaddr | ( | const char * | ifname, | 
| unsigned char * | hwaddr | ||
| ) | 
Get MAC addr for interface.
| ifname | Interface name | 
| hwaddr | Buffer to place MAC in char[ETH_ALEN] | 
Definition at line 588 of file interface.c.
References get_iface_index(), objref(), objunref(), and strlenzero().
Referenced by get_ip6_addrprefix().
| int ifrename | ( | const char * | oldname, | 
| const char * | newname | ||
| ) | 
Rename interface helper.
| oldname | Original name. | 
| newname | New name. | 
Definition at line 571 of file interface.c.
References get_iface_index(), ifdown(), and set_interface_name().
| int ifup | ( | const char * | ifname, | 
| int | flags | ||
| ) | 
Set interface up.
| ifname | Interface name. | 
| flags | Additional flags to set. | 
Definition at line 553 of file interface.c.
References get_iface_index(), and set_interface_flags().
| int interface_bind | ( | char * | iface, | 
| int | protocol | ||
| ) | 
Bind to device fd may be a existing socket.
| iface | Interface to bind too. | 
| protocol | Protocol to use. | 
Definition at line 453 of file interface.c.
References get_iface_index(), and set_interface_flags().
| void randhwaddr | ( | unsigned char * | addr | ) | 
create random MAC address
| addr | Buffer char[ETH_ALEN] filled with the new address. | 
Definition at line 485 of file interface.c.
References genrand().
Referenced by create_kernmac().
| int set_interface_addr | ( | int | ifindex, | 
| const unsigned char * | hwaddr | ||
| ) | 
Set interface MAC addr.
| ifindex | Interface index. | 
| hwaddr | MAC address to set. | 
Definition at line 388 of file interface.c.
References iplink_req::i, iplink_req::n, objalloc(), objlock(), objref(), objunlock(), and objunref().
Referenced by create_tun().
| int set_interface_flags | ( | int | ifindex, | 
| int | set, | ||
| int | clear | ||
| ) | 
Alter interface flags.
| ifindex | Interface index. | 
| set | Flags to set. | 
| clear | Flags to clear. | 
Definition at line 348 of file interface.c.
References iplink_req::i, iplink_req::n, objalloc(), objlock(), objref(), objunlock(), and objunref().
Referenced by create_tun(), ifdown(), ifup(), and interface_bind().
| int set_interface_ipaddr | ( | char * | ifname, | 
| char * | ipaddr | ||
| ) | 
Set IP addr on interface.
| ifname | Interface to assign IP to | 
| ipaddr | IP Addr to assign. | 
Definition at line 611 of file interface.c.
References get_iface_index(), ipaddr_req::i, ipaddr_req::n, objalloc(), objlock(), objref(), objunlock(), and objunref().
| int set_interface_name | ( | int | ifindex, | 
| const char * | name | ||
| ) | 
Rename interface.
| ifindex | Interface index. | 
| name | New interface name. | 
Definition at line 421 of file interface.c.
References iplink_req::i, iplink_req::n, objalloc(), objlock(), objref(), objunlock(), and objunref().
Referenced by ifrename().