> > The problem is that IP simply assumes that both ill "halves" must refer to > > the same phyint. Above, the IPv4 half is a DL_ETHER link, and the IPv6 > > half is a SUNW_DL_IPMP pseudo-link, which quickly induce a panic. While > > I've fixed IP to catch this case in my workspace, I think the same problem > > may show up in the vanity naming bits. For instance, what happens in the > > following case? > > > > # ifconfig vni0 inet6 plumb > > # dladm rename-link ce0 vni0 > > # ifconfig vni0 plumb > > > > [With your fix in IP, the second ifconfig should just fail, is that right?]
Right. My fix is not really complete, but covers the above case by requiring that all ills with the same name must have the same media type. > First, even the second ifconfig does not cause panic, it will result in a > strange situation, that the inet6 part of vni0 is a pseudo IP interface, and > the inet4 part of vni0 corresponds to a physical link. I wouldn't trust that to work robustly, because one of those ills thinks it's on a totally different phyint type (note that IS_VNI() checks for the PHYI_LOOPBACK and PHYI_VIRTUAL phyint_flags). > Therefore, one would argue that the rename operation should just fail, as > there is already interface named vni0. I think we discussed about this and > concluded that it is just wrong to validate the link names, and exclude > those well established IP interface name prefixes, even that some careless > configuration will result in confusion. I think preventing this scenario at "ifconfig plumb" time is sufficient. -- meem
