in.dlmpd - DLMP aggregation probing daemon
/usr/lib/inet/in.dlmpd
The in.dlmpd daemon performs probe-based failure and repair detection for DLMP mode aggregations.
Note that probe-based failure and repair detection will not start until the administrator configures the probe-ip link property for the aggregation. Until then, the health of the underlying ports in the specific aggregation will be solely relying on the link state of the port.
The probe-ip link property configures the list of the source addresses and the optional target addresses. IP addresses from this list, if configured (as plumbed primary or as VNICs), will be used by in.dlmpd for ICMP probing. Both IPv4 and IPv6 are supported. However, note that in.dlmpd will ignore IPv6 addresses that are not link-local.
Within a DLMP aggregation, each source IP address matching the probe-ip configuration is associated with an underlying port, through which the inbound as well as outbound traffic (including the ICMP probes and their acks) of the source IP address is sent/received. The in.dlmpd daemon periodically sends out unicast ICMP packets directed at the configured targets; or if no targets are configured, in.dlmpd discovers the targets first by sending out ICMP multicast packets with the given source IP address. By monitoring the acknowledgement or the loss of the ICMP acks, the in.dlmpd daemon is able to determine the health of the port the source IP address is associated with. The port will be claimed as "ICMP failed" if all the targets for that particular port become unreachable. The port will be marked as "ICMP active" if at least one of the targets is reachable from that port through ICMP probes.
Depending on how the probe-ip link property is configured and how the configured source IP addresses are associated among the aggregation ports, there may be ports that are not associated with any configured probe-ip source IP address.
The health of those ports is determined by a different probe mechanism called transitive probes. The in.dlmpd daemon will periodically send/receive proprietary layer-2 probes between the "ICMP active" ports and the ports that are not doing ICMP probing. If a port is able to reach any "ICMP active" port, it is claimed to be on the same "island" as the "ICMP active" port and is considered to be active as well. This is called as "L2 active".
A port is claimed to be "failed" if it is neither "ICMP active" nor "L2 active". It is claimed to be "active" (or recovered) if it is either "ICMP active" or "L2 active".
When all the underlying ports are in the "failed" state, a single underlying port will be designated as "ICMP prober" in a round-robin manner by the in.dlmpd daemon to detect potential recovery. All the ICMP probes will be sent through this port only. The transitive probing will continue as before. Once the "ICMP prober" detects an ICMP probe success, that port becomes "active", together with all the other ports in its island.
The in.dlmpd daemon service is managed by the service management facility, smf(5), under the service identifier:
svc:/network/dlmp:default
Note that the service will be enabled automatically as needed when the DLMP aggregation is created, and will be disabled if no DLMP aggregation is in use. Therefore, administrative actions on this service, such as enabling, disabling of the service, may be later changed accordingly based on the current status of the DLMP aggregation configuration.
See attributes(5) for descriptions of the following attributes:
|
dladm(1M), dlstat(1M), svcadm(1M), attributes(5), smf(5), icmp(7P), icmp6(7P)