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_ROUTE
netlink socket protocolIO::Socket::Netlink - Object interface to
AF_NETLINK
domain socketsrtnetlink(7) - rtnetlink, NETLINK_ROUTE - Linux IPv4 routing socket
AUTHOR
Paul Evans <leonerd@leonerd.org.uk>