diff --git a/CHANGELOG.md b/CHANGELOG.md index 65a1c7d8..38ce9a64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,50 @@ Changelog ========= +## [v1.9.0] + +### New Cisco Resources +* EVPN Multisite + * evpn_multisite (@rahushen) + * evpn_stormcontrol (@rahushen) + * interface_evpn_multisite (@rahushen) + +* TRM + * evpn_multicast (@rahushen) + * ip_multicast (@rahushen) + +### Added +* Extend vxlan_vtep with attributes: + * `multisite_border_gateway_interface` + +* Extend vxlan_vtep_vni with attributes: + * `multisite_ingress_replication` + +* Extend bgp_neighbor with attributes: + * `peer_type` + +* Extend bgp_neighbor_af with attributes: + * `rewrite_evpn_rt_asn` + +* Extend vrf_af with attributes: + * `route_target_both_auto_mvpn` + * `route_target_export_mvpn` + * `route_target_import_mvpn` + +* Extend feature with attributes: + * `ngmvpn_enable` + * `ngmvpn_disable` + * `ngmvpn_enabled?` + +### Changed + +### Removed + +### Issues Addressed + ## [v1.8.0] -#### Cisco Resources +### New Cisco Resources * ObjectGroup * object_group (@saichint) * object_group_entry (@saichint) @@ -513,6 +554,7 @@ Changelog [git-flow]: https://github.com/petervanderdoes/gitflow-avh [SimpleCov]: https://github.com/colszowka/simplecov +[v1.9.0]: https://github.com/cisco/cisco-network-node-utils/compare/v1.8.0...v1.9.0 [v1.8.0]: https://github.com/cisco/cisco-network-node-utils/compare/v1.7.0...v1.8.0 [v1.7.0]: https://github.com/cisco/cisco-network-node-utils/compare/v1.6.0...v1.7.0 [v1.6.0]: https://github.com/cisco/cisco-network-node-utils/compare/v1.5.0...v1.6.0 diff --git a/README.md b/README.md index c00ed6ac..c441d9eb 100644 --- a/README.md +++ b/README.md @@ -42,8 +42,8 @@ This CiscoNodeUtils gem release supports the following: Platform | OS | OS Version | ------------------|--------|----------------------| -Cisco Nexus N9k | NX-OS | 7.0(3)I2(1) and later -Cisco Nexus N3k | NX-OS | 7.0(3)I2(1) and later +Cisco Nexus N9k | NX-OS | 7.0(3)I2(5) and later +Cisco Nexus N3k | NX-OS | 7.0(3)I2(5) and later Cisco Nexus N3K-F | NX-OS | 7.0(3)F3(2) and later Cisco Nexus N5k | NX-OS | 7.3(0)N1(1) and later Cisco Nexus N6k | NX-OS | 7.3(0)N1(1) and later @@ -91,7 +91,7 @@ An example configuration file (illustrating each of the above scenarios) is prov The `Client` class provides a low-level interface for communicating with the Cisco network node. It provides the base APIs `create`, `get`, and `set`. -* `Cisco::Client::NXAPI` - client for communicating with NX-OS 7.0(3)I2(1) and later, using NX-API. +* `Cisco::Client::NXAPI` - client for communicating with NX-OS 7.0(3)I2(5) and later, using NX-API. For a greater level of abstraction, the `Node` class is generally used, but the `Client` classes can be invoked directly if desired. @@ -217,7 +217,7 @@ See [CHANGELOG](CHANGELOG.md) for a list of changes. ## License Information -Copyright (c) 2013-2017 Cisco and/or its affiliates. +Copyright (c) 2013-2018 Cisco and/or its affiliates. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/docs/README-maintainers.md b/docs/README-maintainers.md index c47096b5..205c0d17 100644 --- a/docs/README-maintainers.md +++ b/docs/README-maintainers.md @@ -25,6 +25,7 @@ When we are considering publishing a new release, all of the following steps mus 1. Run full minitest regression on [supported platforms.](https://github.com/cisco/cisco-network-node-utils#overview) * Fix All Bugs. * Make sure proper test case skips are in place for unsupported platforms. + * Make sure [yum_package.yaml](../tests/yum_package.yaml) is updated with all versions that need to be tested. 1. Build gem and test it in combination with the latest released Puppet module (using Beaker and demo manifests) to make sure no backward compatibility issues have been introduced. diff --git a/lib/cisco_node_utils/bgp_neighbor.rb b/lib/cisco_node_utils/bgp_neighbor.rb index ecf136f9..dd41c471 100644 --- a/lib/cisco_node_utils/bgp_neighbor.rb +++ b/lib/cisco_node_utils/bgp_neighbor.rb @@ -503,5 +503,25 @@ def mode_cli_to_symbol(cli) fail KeyError end end + + def default_peer_type + config_get_default('bgp_neighbor', 'peer_type') + end + + def peer_type=(val) + if val == default_peer_type + @set_args[:state] = 'no' + @set_args[:peer_type] = '' + else + Feature.nv_overlay_evpn_enable + @set_args[:peer_type] = val + @set_args[:state] = '' + end + config_set('bgp_neighbor', 'peer_type', @set_args) + end + + def peer_type + config_get('bgp_neighbor', 'peer_type', @get_args) + end end # class end # module diff --git a/lib/cisco_node_utils/bgp_neighbor_af.rb b/lib/cisco_node_utils/bgp_neighbor_af.rb index 15d3b5b4..4ec4d317 100644 --- a/lib/cisco_node_utils/bgp_neighbor_af.rb +++ b/lib/cisco_node_utils/bgp_neighbor_af.rb @@ -756,5 +756,25 @@ def weight=(int) def default_weight config_get_default('bgp_neighbor_af', 'weight') end + + def rewrite_evpn_rt_asn + config_get('bgp_neighbor_af', 'rewrite_evpn_rt_asn', @get_args) + end + + def rewrite_evpn_rt_asn=(state) + Feature.nv_overlay_evpn_enable if state + set_args_keys(state: (state ? '' : 'no')) + if @set_args[:state] == 'no' + unless rewrite_evpn_rt_asn == default_rewrite_evpn_rt_asn + config_set('bgp_neighbor_af', 'rewrite_evpn_rt_asn', @set_args) + end + else + config_set('bgp_neighbor_af', 'rewrite_evpn_rt_asn', @set_args) + end + end + + def default_rewrite_evpn_rt_asn + config_get_default('bgp_neighbor_af', 'rewrite_evpn_rt_asn') + end end end diff --git a/lib/cisco_node_utils/cmd_ref/bgp_neighbor.yaml b/lib/cisco_node_utils/cmd_ref/bgp_neighbor.yaml index 23aaeb62..231290de 100644 --- a/lib/cisco_node_utils/cmd_ref/bgp_neighbor.yaml +++ b/lib/cisco_node_utils/cmd_ref/bgp_neighbor.yaml @@ -114,6 +114,13 @@ password_type: get_value: '/^password (\d+)/' default_value: 0 +peer_type: + _exclude: [ios_xr, N3k, N3k-F, N5k, N6k, N7k, N9k-F] + kind: string + get_value: '/^peer-type (\S+)$/' + set_value: ' peer-type ' + default_value: "" + remote_as: get_value: '/^remote-as (\d*?.?\d+?)$/' set_value: ' remote-as ' diff --git a/lib/cisco_node_utils/cmd_ref/bgp_neighbor_af.yaml b/lib/cisco_node_utils/cmd_ref/bgp_neighbor_af.yaml index 5cfc937d..a93daf78 100644 --- a/lib/cisco_node_utils/cmd_ref/bgp_neighbor_af.yaml +++ b/lib/cisco_node_utils/cmd_ref/bgp_neighbor_af.yaml @@ -146,6 +146,13 @@ prefix_list_out: set_value: ' prefix-list out' default_value: '' +rewrite_evpn_rt_asn: + _exclude: [ios_xr, N3k, N3k-F, N5k, N6k, N7k, N9k-F] + kind: boolean + get_value: '/^rewrite-evpn-rt-asn$/' + set_value: ' rewrite-evpn-rt-asn' + default_value: false + route_map_in: kind: string default_value: '' diff --git a/lib/cisco_node_utils/cmd_ref/evpn_multicast.yaml b/lib/cisco_node_utils/cmd_ref/evpn_multicast.yaml new file mode 100644 index 00000000..cff05cc9 --- /dev/null +++ b/lib/cisco_node_utils/cmd_ref/evpn_multicast.yaml @@ -0,0 +1,12 @@ +# evpn_multicast.yaml +--- +_exclude: [ios_xr, N3k, N3k-F, N5k, N6k, N7k, N9k-F] + +_template: + get_command: "show running-config | section advertise" + +multicast: + context: ~ + get_value: '^advertise evpn multicast$' + set_value: " advertise evpn multicast" + default_value: '' diff --git a/lib/cisco_node_utils/cmd_ref/evpn_multisite.yaml b/lib/cisco_node_utils/cmd_ref/evpn_multisite.yaml new file mode 100644 index 00000000..118a4848 --- /dev/null +++ b/lib/cisco_node_utils/cmd_ref/evpn_multisite.yaml @@ -0,0 +1,18 @@ +# evpn_multisite.yaml +--- +_exclude: [ios_xr, N3k, N3k-F, N5k, N6k, N7k, N9k-F] + +_template: + get_command: "show running-config | section multisite" + +delay_restore: + default_value: "" + get_context: ['/^evpn multisite border-gateway $/'] + get_value: '/^delay-restore\s+time\s+(\d+)$/' + set_context: ['evpn multisite border-gateway '] + set_value: " delay-restore time