net-lattice-platform 0.12.0

Generic provider traits and Capability contract between the model and platform backends. Depends only on net-lattice-core — never on net-lattice-model.
Documentation

net-lattice-platform

Generic provider traits and runtime capability contracts between Net Lattice's public facade and native platform backends.

What it provides

  • generic inspection and mutation provider traits using associated types, including InterfaceMutator for desired administrative-state and MTU patches;
  • runtime Capability reporting;
  • synchronous event sender/receiver contracts;
  • optional native Tokio watcher contracts behind the async feature.

This crate intentionally depends on net-lattice-core, not net-lattice-model. The facade binds provider associated types to the workspace's concrete domain model. Application code normally uses net-lattice; backend authors depend on this crate directly.

Usage

use net_lattice_platform::{Capability, CapabilityProvider};

fn supports_route_monitoring<P: CapabilityProvider>(provider: &P) -> bool {
    provider.capabilities().contains(Capability::ROUTE_MONITORING)
}

Contract notes

Capabilities report implemented runtime surfaces. They do not guarantee that the current process has native privileges or that state cannot change between validation and submission. In particular, Capability::INTERFACE_ADMIN_STATE and Capability::INTERFACE_MTU gate a backend's interface-configuration surface independently; a caller requesting both settings must require both flags.

Monitoring is also domain-specific: ROUTE_MONITORING, INTERFACE_MONITORING, NEIGHBOR_MONITORING, and ADDRESS_MONITORING each mean that the backend has a native delivery path for that domain. MONITORING is their all-domain aggregate, not merely proof that some watcher can be constructed.