• Yang Hongyang's avatar
    ipv6: Add IPV6_PKTINFO sticky option support to setsockopt() · b24a2516
    Yang Hongyang authored
    There are three reasons for me to add this support:
    1.When no interface is specified in an IPV6_PKTINFO ancillary data
      item, the interface specified in an IPV6_PKTINFO sticky optionis 
      is used.
    
    RFC3542:
    6.7.  Summary of Outgoing Interface Selection
    
       This document and [RFC-3493] specify various methods that affect the
       selection of the packet's outgoing interface.  This subsection
       summarizes the ordering among those in order to ensure deterministic
       behavior.
    
       For a given outgoing packet on a given socket, the outgoing interface
       is determined in the following order:
    
       1. if an interface is specified in an IPV6_PKTINFO ancillary data
          item, the interface is used.
    
       2. otherwise, if an interface is specified in an IPV6_PKTINFO sticky
          option, the interface is used.
    
    2.When no IPV6_PKTINFO ancillary data is received,getsockopt() should 
      return the sticky option value which set with setsockopt().
    
    RFC 3542:
       Issuing getsockopt() for the above options will return the sticky
       option value i.e., the value set with setsockopt().  If no sticky
       option value has been set getsockopt() will return the following
       values:
    
    3.Make the setsockopt implementation POSIX compliant.
    Signed-off-by: default avatarYang Hongyang <yanghy@cn.fujitsu.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b24a2516
ipv6_sockglue.c 25.4 KB