1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// LOCAL/src/lldp/mod.rs
// src/lldp/mod.rs
//
// LLDP/CDP module facade.
//
// This module wires together the LLDP/CDP components:
// - options.rs : public API options (LldpOptions / LldpMode)
// - proto/ : protocol enum (DiscoveryProtocol)
// - iterator.rs : LldpEngine trait + iterator <-> transform adapters
// - capture.rs : raw frame capture (AF_PACKET / BPF, platform-specific)
// - parse.rs : LLDP/CDP TLV parsing into rows (used by the engine)
// - table.rs : neighbor table with TTL and change detection
// - engine.rs : real engine (Linux listen mode)
// - stub.rs : synthetic stream (explicitly opt-in)
//
// Public surface used by the plugin bridge (src/bridge.rs):
// * spawn_iterator(opts: LldpOptions) -> IteratorHandle
// * iter_to_transform(handle: IteratorHandle) -> Box<FunctionValue>
// * LldpMode / LldpOptions
// * DiscoveryProtocol
//
// POLICY:
// • **Engine by default.** We only use the stub when `opts.stub == true` or
// the environment variable `MUMU_LLDP_USE_STUB` is present (test/dev rigs).
// • This prevents silent stubbing in production pipelines.
//
// (c) 2025 — MIT/Apache-2.0
// keep the internal row module visible to submodules
pub use ;
pub use iter_to_transform;
// Re-export LldpRow for external users of the library. Not referenced inside
// this crate directly, so suppress the "unused import" warning here.
pub use LldpRow;