NAME
IO::Socket::Netlink::Route - Object interface to NETLINK_ROUTE netlink protocol sockets
DESCRIPTION
This subclass of IO::Socket::Netlink implements the NETLINK_ROUTE protocol. This protocol allows communication with the Linux kernel's networking stack, allowing querying or modification of interfaces, addresses, routes, and other networking properties.
This module is currently a work-in-progress, and this documentation is fairly minimal. The reader is expected to be familiar with NETLINK_ROUTE, as it currently only gives a fairly minimal description of the Perl-level wrapping of the kernel level concepts. For more information see the documentation in rtnetlink(7).
MESSAGE CLASSES
Each message type falls into one of the following subclasses, chosen by the value of the nlmsg_type field. Each subclass provides access to the field headers of its message body, and netlink attributes.
IfinfoMsg
Relates to a network interface. Used by the following message types
RTM_NEWLINK
RTM_DELLINK
RTM_GETLINK
Provides the following header field accessors
ifi_family
ifi_type
ifi_index
ifi_flags
ifi_change
Provides the following netlink attributes
address => STRING
broadcast => STRING
ifname => STRING
mtu => INT
qdisc => STRING
stats => HASH
txqlen => INT
operstate => INT
linkmode => INT
IfaddrMsg
Relates to an address present on an interface. Used by the following message types
RTM_NEWADDR
RTM_DELADDR
RTM_GETADDR
Provides the following header field accessors
ifa_family
ifa_prefixlen
ifa_flags
ifa_scope
ifa_index
Provides the following netlink attributes
address => STRING
local => STRING
label => STRING
broadcast => STRING
anycast => STRING
cacheinfo => HASH
$message->prefix
Sets or returns both the address netlink attribute, and the ifa_prefixlen header value, in the form
address/ifa_prefixlen
RtMsg
Relates to a routing table entry. Used by the following message types
RTM_NEWROUTE
RTM_DELROUTE
RTM_GETROUTE
Provides the following header field accessors
rtm_family
rtm_dst_len
rtm_src_len
rtm_tos
rtm_table
rtm_protocol
rtm_scope
rtm_type
rtm_flags
Provides the following netlink attributes
dst => STRING
src => STRING
iif => INT
oif => INT
gateway => STRING
priority => INT
metrics => INT
$message->src
Sets or returns the src netlink attribute and the rtm_src_len header value, in the form
address/prefixlen
if the address is defined, or undef if not.
$message->dst
Sets or returns the dst netlink attribute and the rtm_dst_len header value, in the form given above.
NdMsg
Relates to a neighbour discovery table entry. Used by the following message types
RTM_NEWNEIGH
RTM_DELNEIGH
RTM_GETNEIGH
Provides the following header field accessors
ndm_family
ndm_ifindex
ndm_state
ndm_flags
ndm_type
Provides the following netlink attributes
dst => STRING
lladdr => STRING
cacheinfo => HASH
SEE ALSO
Socket::Netlink::Route - interface to Linux's
NETLINK_ROUTEnetlink socket protocolIO::Socket::Netlink - Object interface to
AF_NETLINKdomain socketsrtnetlink(7) - rtnetlink, NETLINK_ROUTE - Linux IPv4 routing socket
AUTHOR
Paul Evans <leonerd@leonerd.org.uk>