The vni pseudo device is a multi-threaded, loadable, clonable, STREAMS pseudo-device supporting the connectionless Data Link Provider Interface dlpi(7P) Style 2. Note that DLPI is intended to interact with IP, meaning that DLPI access to applications is not supported. (For example, snoop fails on the vni interface.)
The vni device is a software-only interface and does not send or receive data. The device provides a DLPI upper interface that identifies itself to IP with a private media type. It can be configured via ifconfig(1M) and can have IP addresses assigned to it, making aliases possible.
The vni pseudo device is particularly useful in hosting an IP address when used in conjunction with the 'usesrc' ifconfig option (see ifconfig(1M) for examples). The logical instances of the device can also be used to host addresses as an alternative to hosting them over the loopback interface.
Multicast is not supported on this device. More specifically, the following options return an error when used with an address specified on vni: IP_MULTICAST_IF, IP_ADD_MEMBERSHIP, IP_DROP_MEMBERSHIP, IPV6_MULTICAST_IF, IPV6_JOIN_GROUP, IPV6_LEAVE_GROUP. In addition, broadcast is not supported.
Because there is no physical hardware configured below it, no traffic can be received through nor transmitted on a virtual interface. All packet transmission and reception is accomplished with existing physical interfaces and tunnels. Because applications that deal with packet transmission and reception (such as packet filters) cannot filter traffic on virtual interfaces, you cannot set up a packet filter on a virtual interface. Instead, you should configure the policy rules to apply to the physical interfaces and tunnels, and if necessary, use the virtual IP addresses themselves as part of the rule configuration. Also, note that the virtual interface cannot be part of an IP multipathing (IPMP) group.
64-bit ELF kernel driver
ifconfig(1M), in.mpathd(1M), ip(7P), ip6(7P)