cvs commit: src/sys/netinet ip_output.c

Bruce M Simpson bms at FreeBSD.org
Thu Mar 1 13:29:31 UTC 2007


bms         2007-03-01 13:29:30 UTC

  FreeBSD src repository

  Modified files:
    sys/netinet          ip_output.c 
  Log:
  Fix undirected broadcast sends for the case where SO_DONTROUTE has also
  been set at the socket layer, in our somewhat convoluted IPv4 source
  selection logic in ip_output().
  
  IP_ONESBCAST is actually a special case of SO_DONTROUTE, as 255.255.255.255
  must always be delivered on a local link with a TTL of 1.
  
  If IP_ONESBCAST has been set at the socket layer, also perform destination
  interface lookup for point-to-point interfaces based on the destination
  address of the link; previously it was not possible to use the option with
  such interfaces; also, the destination/broadcast address fields map to the
  same field within struct ifnet, which doesn't help matters.
  
  One more valid fix going forward for these issues is to treat 255.255.255.255
  as a destination in its own right in the forwarding trie. Other
  implementations do this. It fits with the use of multiple paths, though
  it then becomes necessary to specify interface preference.
  This hack will eventually go away when that comes to pass.
  
  Reviewed by:    andre
  MFC after:      1 week
  
  Revision  Changes    Path
  1.270     +14 -11    src/sys/netinet/ip_output.c


More information about the cvs-src mailing list