I'm sponsoring this self-reviewed case for Sangeeta Misra. Its state is
closed approved automatic; please let me know if you'd like this run as a
regular fasttrack.
Class E IP Address Configuration
Today ifconfig does not allow the configuration of addresses in the
Class E range (240.0.0.0/4). For instance the following ifconfig
commands fail :
#ifconfig bge0 251.1.2.3/24
ifconfig: SIOCSLIFADDR: bge0: Cannot assign requested address
# ifconfig ce0 248.53.129.24 up
ifconfig: SIOCSLIFADDR: ce0: Cannot assign requested address
In light of Internet draft, draft-fuller-240space-00.txt, the above
command should be allowed (see CR 6605607.) Note that the draft does
not specify a default netmask for Class E. Since the RIPv1 routing
protocol does not handle CIDR, using /32 as the default netmask for
Class E is the best solution to keep the code changes minimal and avoid
bugs.
This fasttrack is being submitted for two specific behavior changes:
o The behavior of SIOCSLIFADDR ioctl needs to be modified to allow the
setting of a class-E address. It currently returns EADDRNOTAVAIL when
passed an address in the Class E range.
o The route(1M) command currently assigns a default netmask of
255.255.255.0 to destinations in the Class E range as shown in the
following example:
# route add 248.53.129.0 192.168.81.25
add net 248.53.129.0: gateway 192.168.81.25
# route get 248.53.129.0
route to: 248.53.129.0
destination: 248.53.129.0
mask: 255.255.255.0
gateway: surya5
interface: bge0
flags: <UP,GATEWAY,DONE,STATIC>
recvpipe sendpipe ssthresh rtt,ms rttvar,ms hopcount mtu
expire
0 0 0 0 0 0 1500
0
This current behavior is wrong as per the route(1M) man page:
If a subnet mask is not specified, the mask used is the sub-
net mask of the output interface selected by the gateway
address, if the classful network of the destination is the
same as the classful network of the interface. Otherwise,
the classful network mask for the destination address is
used.
Network addresses in the Class E range have no pre-defined netmask.
Thus the route command's behavior should be changed so that when a
mask is not specified for a IP address from Class E address block, /32
should be used as a default.
Release binding requested: Patch