On 03/ 2/10 03:18 PM, Sebastien Roy wrote: > I'm submitting the following fast-track for Girish Moodalbail, the > timer is set for 03/09/2010. This case depends on PSARC 2009/306, the > release binding is Minor.
I've finally reviewed the case materials -- I wish I had paid more attention to 2009/306, but my mind was occupied with other things at the time. (Its not that I had any specific objections, there were just some surprises here for me -- like the fact that apparently ipadm can only create or destroy both v4 and v6 interfaces at the same time.) Anyway, this addendum looks fairly straight-forward. +1. - Garrett > > 1. Introduction: > ================ > > In the course of completing the implementation of Brussels II - ipadm > and libipadm (PSARC 2009/306), few interface changes were made. They > are all documented below. > > 1.1 Following new interfaces were added since PSARC 2009/306. > ------------------------------------------------------------- > ------------------------------------------------------------------------------ > > > Interface Classification Comments > ------------------------------------------------------------------------------ > > > ipadm down-addr Committed See section 5.6 of [1] > ipadm up-addr Committed See section 5.7 of [1] > ipadm reset-addrprop Committed See section 5.8 of [1] > ipadm disable-if Committed See section 6.0 of [1] > ipadm enable-if Committed See section 6.0 of [1] > ipadm disable-addr Committed See section 6.0 of [1] > ipadm enable-addr Committed See section 6.0 of [1] > > SIOCGLIFDADSTATE Consolidation > Private See section 5.2 of [1] > > SIOCSLIFPREFIX Consolidation > Private See section 5.1.2 of [1] > > IFF_NOLINKLOCAL Consolidation > Private See section 4.1 of [1] > > 1.2 updates to 'show-if', 'show-addr', 'show-[if|addr]prop' parsable > output > --------------------------------------------------------------------------- > > > * '-P' option has been removed from all of the 'show-*' > subcommands. All the 'show-*' subcommands will always show both > CURRENT and PERSISTENT values. > > 1.2.1 updates to 'show-if' parsable output > ------------------------------------------ > [For more details, see section 4.3 of [1] and 'ipadm show-if' in [2]] > > * MTU,FLAGS column has been removed > * CURRENT and PERSISTENT column, which represents both current and > persistent flags are added. > > 1.2.2 updates to 'show-addr' parsable output > -------------------------------------------- > [For more details, see section 5.2 of [1] and 'ipadm show-addr' in [2]] > > * Following column headers are renamed: > ** s/OBJECT/ADDROBJ/ > ** s/ORIGIN/TYPE/ > * FLAGS column has been removed > * Following changes are made to STATE column > ** 'invalid' is renamed to 'down' > ** 'unknown' and 'preferred' state is removed > ** 'disabled' state is added. > * New CURRENT and PERSISTENT columns, which represents current and > persistent flags respectively are added. > > 1.3 updates to subcommand options > ---------------------------------- > [Refer to ipadm man page [2] for more details] > > * 'create-if' subcommand will not take '-f inet|inet6' option > * 'delete-if' subcommand will not take '-t' or '-f inet|inet6' > option > * 'create-addr -T addrconf' takes '-i' option instead of '-I' > * 'create-addr -T dhcp' will not take '-p' option > * 'refresh-addr' will take -i option to perform DHCP inform. > * 'delete-addr' will not take '-t' option > * 'set-ifprop' and 'reset-ifprop' will not take '-f inet|inet6' > option instead they take '-m protocol' option > > 1.4 Reduced set of ndd IP/TCP/UDP/SCTP/ICMP tunables > ---------------------------------------------------- > > The number of protocol tunables that will be made public or Committed > has been substantially reduced. The basic premise is to design a > framework that provides persistence of protocol settings and > improvement over the current ndd(1M). Once we have this framework, > more and more tunables can be Committed through PSARC, after > sufficient scrutiny. Following table lists the protocol properties > that will be Committed. > > ------------------------------------------------------------------------------ > > > Properties Protocol(s) Classification Comments > ------------------------------------------------------------------------------ > > > > forwarding ipv4, ipv6 Committed See [2] > ttl ipv4 Committed See [2] > hoplimit ipv6 Committed See [2] > > > ecn tcp Committed See [2] > sack tcp Committed See [2] > > recv_maxbuf > send_maxbuf tcp, udp, sctp > icmp Committed See [2] > > extra_priv_ports > largest_anon_port > smallest_anon_port > smallest_nonpriv_port tcp, udp, sctp Committed See [2] > > 1.5 Modifications to address and interface properties > ----------------------------------------------------- > > * Two new address properties, broadcast[2] and deprecated[2] were > added > * 'xmit' address property was renamed to 'transmit' > * 'reasm-timeout' interface property was removed > * 'rtexchg' interface property was renamed to 'exchange_routes' > > 1.6 No need for /sbin/netstart binary > -------------------------------------- > > PSARC 2009/306 proposed using /sbin/netstart to restore persistent > protocol tunables during boot. This process would be started by > init(1M), by reading /etc/inittab, before svc.startd(1M) comes up. The > initial idea was to restore settings close to the execution of > `soconfig(1M)' (soconfig(1M) maps sockets to service providers and > networking applications are useless without the execution of > soconfig(1M)) > > However, modifying /etc/inittab in the post-SMF world was something > that was not well received and also with IPS obsoleting SVR4 > post-install scripts, modifying /etc/inittab during the upgrade path > was not possible. Therefore, we will now restore the persistent > protocol tunables from a SMF script that starts the `ipmgmtd' > daemon. Further `ipmgmtd' daemon is one of the first networking > services to come up and it comes up even before network/loopback. That > way the protocol properties would be re-instantiated before any of the > IP interfaces are plumbed and before any of the networking > applications starts. > > 1.7 non-contiguous netmask support removed > ------------------------------------------ > > Non-contiguous netmasks are a relic of yesteryear architectures for > which we still retain support in the kernel today, and which create > more complications than they solve. Very few customers use these > today, and when used, they only create confusion. > > This is a hindrance for this project, which strives for an API where > addresses are input and displayed in the "address/prefixlen" CIDR > format. Thus, even if ipadm itself will not allow non-contiguous > netmasks, if ifconfig is used to add non-contiguous netmask, ipadm > would be forced to either lie about the mask or otherwise mangle its > output format to display it. > > Therefore, this project will be adding checks in the kernel to prevent > such netmasks from being created. > > 1.8 Obsoleting routeadm(1M) forwarding interface > ------------------------------------------------ > > The routeadm(1M) command is used to administer system-wide > configuration for IP forwarding and routing. It currently uses ndd(1M) > to enable IP forwarding. Since ndd(1M) does not provide persistence, > the persistence is achieved using a SMF service, for ipv4 it is > svc:/network/ipv4-forwarding:default and for ipv6 it is > svc:/network/ipv6-forwarding:default. The whole purpose of this > service, when enabled, is to execute `ndd -set /dev/ip ip_forwarding > [0|1]`, in short provide persistence. > > The ipadm(1M) command, which provides persistence and allows setting > of forwarding (ipadm set-prop -p forwarding=[on|off] ipv[4|6]) is an > obvious fit for this feature. So this project will mark routeadm(1M) > interfaces to enable/disable IPv4/IPv6 forwarding 'Obsolete' and will > eventually EOF that feature. We have updated the routeadm(1M)[3] man > page to reflect the same. Until that point in time, when both the > tools continue to exist, we will modify the SMF script > (/lib/svc/method/svc-forwarding) to invoke ipadm(1M). So that both > routeadm(1M) and ipadm(1M) will be modifying the same repository and > hence will have the same view. > > 2. References (enclosed in case directory) > ========================================== > [1] "Brussels II design document - brussels2_design.pdf > [2] ipadm MAN page - ipadm.1m.txt > [3] routeadm.1m.txt.diffs