Skip to contentSkip to conversation

Getting a network interface list from within the kernel

DISCUSSION David Howells 2 participants 3 messages Apr 12, 2007 – Apr 13, 2007

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

I need to get a list of the IPv4 addresses bound to network interfaces from within the kernel to be able to present it to an AFS server when it asks. This is handled by the AFS client filesystem.

I also need to be able to get the netmasks and MTUs for those interfaces.

What's the best way of doing this, assuming it's possible at all?

David

maintainer
#1 lore raw

From: David Howells <[email protected]>
Date: Thu, 12 Apr 2007 21:51:50 +0100

Quoted 1 line

What's the best way of doing this, assuming it's possible at all?

Issue a RTM_GETLINK rtnetlink request, and parse the response.

#2 lore raw
Quoted 1 line · David Miller

Issue a RTM_GETLINK rtnetlink request, and parse the response.

Okay, I've managed to find code that does this. However, RTM_GETLINK does not appear to return any IPv4 addressing information. It does, however, contain the MTU details which is one of the three things I wanted.

I found that RTM_GETADDR will give me the IPv4 address and something from which I can calculate the netmask.

I don't suppose there's a single op that will allow me to get all three in one go?

Oh, and can I assume that the interface index numbers returned by RTM_GETLINK match those returned by RTM_GETADDR? Even if an interface is removed between issuing the two calls? Alternatively, do I need to compare interface names as those are available between both?

David