Skip to content

v1.5.3

Compare
Choose a tag to compare
@rmadsen rmadsen released this 18 May 23:14
· 246 commits to master since this release

EOS SDK v1.5.3

Features

  • Introduce accessors for reading custom statuses that the agent previously set. In eos/agent.h, we've added a status(key) and status_iter() method for retrieving previously set statuses. This may be useful for agents who want to store data across agent restarts. Note that this data will not persist across reboots.
  • Add an agent_option_iter() method in eos/agent.h to let users read all options currently set.
  • Add a new on_lag_intf_speed handler in eos/eth_lag_intf.h. This handler is fired when the operational speed of a LAG (or Port-Channel) interface is updated.
  • Introduce support for Custom CLI Plugins. Users can now define their own CLIs and use EOS SDK bindings to set and read state from Sysdb. Future releases will contain examples and documentation regarding this feature.
  • Add a hash() function to intf_id_ts.

Bugs and fixes

  • API change: A LAG's speed in megabits is now represented by a uint64_t rather than a double. This is a compatible change, but requires existing agents to be re-compiled against the new headers.
  • API change: Deprecated headers in eos/gopenflow.h have been removed, as they are now superseded by the APIs exposed in eos/agent.h.
  • No longer trigger duplicate on_oper_status(INTF_OPER_DOWN) notifications when a LAG's operational status changes between internal values.
  • No longer automatically invoke LAG handlers for pre-existing LAGs on agent initialization.
  • LAG handlers are properly bound to pre-existing LAGs after an agent restart.
  • Eliminated unecessary churn when resyncing pre-existing routes that point to a nexthop-group via. Previously, a resync in this scenario would cause the route and via to be erased and then re-entered, now this is effectively a no-op.
  • Python bindings: if a hash() is defined on a value type, use that function in the __hash__() function. Previously the expression len(set([eossdk.IntfId("Ethernet1"), eossdk.IntfId("Ethernet1")])) reported the length of the set as 2. With this fix, both interfaces have the same hash value and the length is correctly reported as 1.