Releases: aristanetworks/EosSdk
EOS SDK v2.22.1.4 (EOS 4.28.1F)
Resources
- Online API Documentation
- EosSdk RPMs
Bug fixes and Improvements
- policy_map
This change is not binary compatible: if you call any of the policy_mapwatch_*()
apis, you need to rebuild with the new headers.- callback
- newwatch_all_policy_maps(bool interest)
- callback
- nexthop_group
- config
- new
nexthop_group_set(nexthop_group_t const & group, uint16_t * version_id)
to create or update a nexthop group and provide its version ID.
- new
- callback
- newnexthop_group_handler_v2::on_nexthop_group_programmed(std::string const & nexthop_group_name, uint16_t version_id)
- config
Notes
v2.22.1.4 should really have been v2.22.5, but unfortunately we shipped duplicated 2.22.1 (in 4.27.0 and 4.27.1 and 4.27.2 and 4.28.0 and 4.28.1), so on a switch you might see 2.22.1, but it could also be 2.22.1.x (the 2.22.1.x tags only exists in github), so check the EOS version as well.
If you move to EOS 4.28.1 and use the policy_map module's watch_*
apis, you will need to recompile the application. If you upgrade from pre 4.28.0 and use eapi module's run_config_cmds
api or xcvr module's *frequency
apis, you need to recompile your app as well.
EOS SDK v2.22.1.3 (EOS 4.28.0F)
Resources
- Online API Documentation
- EosSdk RPMs
Bug fixes and Improvements
- XCVR Module
New setter/getter for interface transmit power:
-void tx_output_power_is(intf_id_t intf_id, float power)
-float tx_output_power(intf_id_t intf_id)
This change is not binary compatible: if you use any ofrx_fine_frequency, rx_frequency, tx_frequency, tx_disabled
you will need to recompile. - EAPI Module
New api to run eapi show commands with output formatted as text instead of json
-eapi_response_t run_show_cmd_text(std::string const &)
This change is not binary compatible: if you userun_config_cmds
you will need to recompile.
Note
v2.22.1.3 should really have been v2.22.4, but unfortunately we shipped duplicated 2.22.1 (in 4.27.0 and 4.27.1 and 4.27.2 and 4.28.0), so on a switch you might see 2.22.1, but it could also be 2.22.1.x (the 2.22.1.x tags only exists in github), so check the EOS version as well.
If you move to EOS 4.28.0 and use the xcvr module or eapi module's run_config_cmds api, you need to recompile your apps with the header files of v.2.22.1.3 (also if you want to use the new apis of course).
EOS SDK v2.22.1.2 (EOS 4.27.2)
Resources
- Online API Documentation
- EosSdk RPMs
Bug fixes and Improvements
- FPGA Module
Fpga changes are not binary compatible (metamako fpga/ham modules still kind of protos!)- new:
fpga_t fpga(const std::string&)
- new:
eossdk_ham_t ham(const fpga_t&, size_t)
- new:
- ACL Module
- type
acl_rule_ip_t
new attributeip_type
of typeacl_ip_type_t
(any/ip/mpls)
- type
Notes
v2.22.1.2 should really have been v2.22.3, but unfortunately we shipped duplicated 2.22.1 (in 4.27.0 and 4.27.1 and 4.27.2), so on a switch you might see 2.22.1, but it could also be 2.22.1.1 or 2.22.1.2 (the 2.22.1.2 tag only exists in github).
They are all binary compatible, unless you use the "fpga" module, in which case you have to re-compile the app against the stubs header files from the correct EOS release. Of course, if you need to create an acl rule with a non-default ip type (mpls), you would need to build against the correct (2.22.1.2) header files.
EOS SDK v2.22.1.1 (EOS 4.27.1)
Resources
- Online API Documentation
- EosSdk RPMs
Bug fixes and Improvements
- HAM Module
!!! Changes are not source compatible !!! (ham is still in a prototype module!)ham_is
andexists
removedread*
now take an extraeossdk_ham_t
as first param and no longer get passed an &result, and returns aread_result_t
instead of aresponse_enum_t
write*
similar changes to read*, pluswrite/writeBlock
take a std::string instead of data + length
Notes
v2.22.1.1 should really have been v2.22.2, but unfortunately we shipped duplicated 2.22.1 (in 4.27.0 and 4.27.1), so on a switch you might see 2.22.1, but it could also be 2.22.1.1 (the 2.22.1.1 tag only exists in github). Both are actually binary compatible, unless you use the "ham" module, in which case you have to compile against the stubs header files from the correct release (and compile a different application for usage on EOS 4.27.0 than on 4.27.1)
EOS SDK v2.22.1 (EOS 4.27.0)
Resources
- Online API Documentation
- EosSdk RPMs
Features
- Agent Module
- new callback:
on_agent_rpc(command)
: triggered by the Cli viaCliExtensions
see https://www.arista.com/en/support/toi/eos-4-25-2f/14712-cli-extensions-for-customers
- new callback:
Bug fixes and Improvements
- Nexthop Group Module
- type
nexthop_group_entry_t
has new attributes and ctorhierarchical_fecs_enabled[_is]
child_nexthop_group[_is]
- can be constructed by child-nexthop-group name
- type
- MAC Table Module
- enum
mac_entry_type_t
has new fieldMAC_ENTRY_VPLS_DYNAMIC_REMOTE
- enum
- XCVR Module
frequency_is
swapped the argument order fortx
andrx
params(!)
- HAM Module
- new apis:
read, readBlock, write, writeBlock
- new apis:
- FPGA Module
Source code incompatible changes.
apis for configuring watches, callback names and parameters have changed
old names:watch_[all_]fpga
,on_fpga_[un]load_image[_failed]
new names:watch_[all_]fpga_reservation_status
,on_fpga_reservation_status_[set|del]
new api to make reservationsreservation[_(set|del|status|exists|iter)]
fpga_t
ctor takes an extraname
parameter
EOS SDK v2.22.0 (EOS 4.26.2)
Resources
- Online API Documentation
- EosSdk RPMs
Features
- SDK
- Header files of EosSdk types no longer have private data members but for a new
std::shared_ptr<foo_impl_t> pimpl
to an implementation class.
This is to reduce the potential for binary incompatibilities introduced by new apis/ enhancements to apis.
This change makes it mandatory to rebuild any application moving to 2.22.0 (no api stays binary compatible).
- Header files of EosSdk types no longer have private data members but for a new
- XCVR Module
- New xcvr manager
get_xcvr_mgr
that deals with interface transceivers
- New xcvr manager
- Dockerfile added.
This Dockerfile can be used to build a docker image; docker containers of this image can be used to build EosSdk applications (it will contain the cross-compiler). See comments in the file itself for details.
Bug fixes and Improvements
- FIB Module
- new api:
set_fecGeninit_task(int)
- new api:
EOS SDK v2.20.0 (EOS 4.26.1)
Resources
- Online API Documentation
- EosSdk RPMs
Features
- HAM Module: Hardware Access Module
- New ham manager
get_ham_mgr
for metameko layer1 hardware products
- New ham manager
Bug fixes and Improvements
- Policy Map Module
- queries
- getter for hardware status of policies
hw_status
- iterator over hardware status of policies, by feature
policy_map_hw_status_iter
- getter for hardware status of policies
- types
- new type
policy_map_hw_status_key_t
- new type
policy_map_hw_statuses_t
- new enum
policy_map_status_t
- new type
- queries
- MacSec Module
- types
- extended
macsec_profile_t
withmka_life_time
attribute (int)
- extended
- types
- Nexthop Group Module
- types
- extended
nexthop_group_entry_counter_t
withvalid
attribute (bool)
- extended
- types
EOS SDK v2.19.0 (EOS 4.26.0)
Resources
- Online API Documentation
- EosSdk RPMs
Features
- FPGA Module
- New fpga manager
get_fpga_mgr
to load fpga images on metamako hardware
- New fpga manager
Bug fixes and Improvements
- SDK Module
- New api to enable tracing of params in api calls
param_trace_enable_is
- Internal changes added "mix_me" member functions into all types to make sure we are not mixing uninitialized padding into hash calculations
- New api to enable tracing of params in api calls
- BFD Module: echo sessions
- config support for echo-sessions
- create/delete/query/iterate echo-sessions
sbfd_echo_session_(set|del|exists|status|iter)
- default echo interval get/set
sbfd_echo_default_interval*
- echo-session interval get/set/reset-to-default
sbfd_echo_interval*
- echo-session rtt enable get/set
sbfd_echo_rtt_enabled*
- enable notifications for all or specific echo-sessions
watch_[all_]sbfd_echo_sessions
- create/delete/query/iterate echo-sessions
- notifications
- echo-session creation/status-change/rtt/deletion
on_sbfd_echo_session_(set|del|status|rtt)
- echo-session creation/status-change/rtt/deletion
- types
bfd_session_key_t
now optionaly can havesrc_ip_addr
and/ortunnel_id
- new struct:
sbfd_echo_session_key_t
- new struct:
sbfd_interval_t
- new struct:
sbfd_echo_session_rtt_stats_t
(last/min/avg/max rtt, min/avg/max rtt since last report)
- config support for echo-sessions
- MacSec Module
- types
macsec_profile_t
- new attribute:
lldp_bypass_level
get/set (level is an enum)- obsoletes:
bypass_lldp
- obsoletes:
- new enum
macsec_bypass_t
(null/authorized/unauthorized)
- new attribute:
- types
- Route Map Module
- config
route_map_set
now takes a nameroute_map_entry_set
now takes a sequence number
- types
link_bandwidth_t
ctor has an extra arg:bandwidth_unit_t
- enum names of
bandwidth_unit_t
changed (now fully qualified:BIT
->LINK_BANDWIDTH_UNIT_BIT
)
- config
- L1 Source Module
- interface app name can be set/removed
app_description_*
- interface app name can be set/removed
EOS SDK v2.18.0
Resources
- Online API Documentation
- EosSdk RPMs
Features
Bug fixes and Improvements
- Eth Phy Intf Module
- New link speed 800 GBPs added to the
eth_link_speed_t enum
.
- New link speed 800 GBPs added to the
- SDK Module.
- New API to enable API tracing api_trace_enable_is() and set buffer size api_trace_buffer_sizes_is()
EOS SDK v2.17.0
Resources
- Online API Documentation
- EosSdk RPMs
Features
- New Route Map management module added.
Bug fixes and Improvements
- ACL Module
- Documentation updated for
priority_value()
andpriority_value_is()
.
- Documentation updated for
- Macsec Module
- New macsec_profile_traffic_policy_t enum added with values as shown below.
MACSEC_TRAFFIC_PROTECTED
MACSEC_TRAFFIC_UNPROTECTED
MACSEC_TRAFFIC_BLOCKED
- New getter and setter APIs to get and set traffic policy type respectively.
traffic_policy_is()
andtraffic_policy()
.
- The following APIs have been marked as deprecated in favor of the aforementioned APIs.
allow_unprotected_is()
andallow_unprotected()
.
- New macsec_profile_traffic_policy_t enum added with values as shown below.
- Version Module
New preprocessor MACROS added.EOSSDK_VERSION
, version string of the form X.Y.ZEOSSDK_MAJOR
, major version number X, if version number is X.Y.ZEOSSDK_MINOR
, minor version number Y, if version number is X.Y.ZEOSSDK_PATCH
, patch version number Z, if version number is X.Y.Z