git: kernel - Deal with inconsistencies between IP aliases and primary IPs

Matthew Dillon dillon at crater.dragonflybsd.org
Thu Jun 16 23:12:56 PDT 2011


commit 30220c1741421db53104720a307357a1f7ff0f00
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Thu Jun 16 23:03:27 2011 -0700

    kernel - Deal with inconsistencies between IP aliases and primary IPs
    
    These changes allow normal IP aliases with proper network masks to be
    ifconfig'd instead of forcing people to use non-obvious /32's for their
    IP aliases.  It may also be possible to use overlapping subnets with
    this change but this is not tested.
    
    * When ifconfig'ing an interface with aliases using the correct netmask
      instead of a /32, the network route will point to only one of the
      addresses.
    
      Trying to connect to a local IP alias wound up failing due to the
      mismatch between the network route's interface address (ifaddr)
      entry and the actual ifaddr being requested.  The target was not
      being considered a local address when it was.
    
    * Fix in_addroute()'s detection of local host routes when cloning a
      route to check against all aliases instead of the one the gateway
      network route happens to be pointed to, and adjust the route entry
      appropriately.
    
      This fix also properly sets RTF_LOCAL for all such cloned routes
      whereas before RTF_LOCAL was only being set for the interface's
      primary IP.
    
    * Minor syntax adjustments and documentation changes.
    
    Reported-by: Peter Avalos <peter at theshell.com>

Summary of changes:
 sys/netinet/if_ether.c |   31 +++++++++++++++++++------------
 sys/netinet/in_rmx.c   |   47 +++++++++++++++++++++++++++++++++--------------
 2 files changed, 52 insertions(+), 26 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/30220c1741421db53104720a307357a1f7ff0f00


-- 
DragonFly BSD source repository





More information about the Commits mailing list