Questions & Answers

What is difference between IFA_LOCAL and IFA_ADDRESS in rtnetlink (Linux)

I try understand what is difference between IFA_LOCAL and IFA_ADDRESS.

this is from man:

IFA_ADDRESS  raw protocol address  interface address
IFA_LOCAL  raw protocol address  local address 

And I don't understand diff between local address and interface address.

Can some one to explain me? Or give me advice where I can find answer?


Answers(2) :

This comment from if_addr.h should make it clear;

 * Important comment:
 * IFA_ADDRESS is prefix address, rather than local interface address.
 * It makes no difference for normally configured broadcast interfaces,
 * but for point-to-point IFA_ADDRESS is DESTINATION address,
 * local address is supplied in IFA_LOCAL attribute.
# ip a
51: ppp0@if51: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1432 qdisc fq_codel state UNKNOWN group default qlen 3
    link/ppp  link-netnsid 0
    inet peer scope global ppp0
       valid_lft forever preferred_lft forever
from pr2modules.iproute import IPRoute
from pprint import pprint

({'attrs': [('IFA_ADDRESS', ''),
            ('IFA_LOCAL', ''),
            ('IFA_LABEL', 'ppp0'),
            ('IFA_FLAGS', 128),