The port view now lists the addresses each port has learned from its traffic. They only mean something on the VLAN they were learned on, which is why changing a port’s VLAN clears them. Operators also take a checkpoint before every step of a long window now, and the console runs on a small appliance: it should keep only the newest three checkpoints.
After a rollback the port still lists addresses learned during the change, on a VLAN it no longer carries, and the console forwards to them. And the history grows for as long as the console runs.
Reproduce
Checkpoint the uplink, move it to VLAN 30, let it learn aa:01, roll back: it shows vlan 20 but learned aa:01. Take four checkpoints and roll back to the first: it still works, so nothing was ever released.
Acceptance criteria
- A rollback clears the learned addresses; they are relearned from traffic afterwards.
- A checkpoint does not hold learned addresses: rolling back never brings old ones back.
- The history keeps the newest three checkpoints across all ports; rolling back to a released one is the error no checkpoint.
- A rollback keeps its checkpoint, and does not count as a new one.
- Everything from MEMENTO-101 still holds: live state stays live, and a refused rollback changes nothing, learned addresses included.
Notes
- Each case starts the same two ports and an empty history, runs its steps and prints each show and failed rollback, joined by “ | ”. Shows now end with the learned addresses, learned [] when there are none.
- Keep the names of the port’s methods and fields and of the history’s methods; the checker calls them.