Skip to content

Commit

Permalink
Merge pull request #579 from cisco/release_1.9.0
Browse files Browse the repository at this point in the history
Release 1.9.0
  • Loading branch information
mikewiebe authored Apr 19, 2018
2 parents 0976d7f + c2927b8 commit 88e0d96
Show file tree
Hide file tree
Showing 47 changed files with 1,295 additions and 34 deletions.
44 changes: 43 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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)
Expand Down Expand Up @@ -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
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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.

Expand Down Expand Up @@ -217,7 +217,7 @@ See [CHANGELOG](CHANGELOG.md) for a list of changes.
## <a name="license_info">License Information</a>


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.
Expand Down
1 change: 1 addition & 0 deletions docs/README-maintainers.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
20 changes: 20 additions & 0 deletions lib/cisco_node_utils/bgp_neighbor.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
20 changes: 20 additions & 0 deletions lib/cisco_node_utils/bgp_neighbor_af.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
7 changes: 7 additions & 0 deletions lib/cisco_node_utils/cmd_ref/bgp_neighbor.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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: '<state> peer-type <peer_type>'
default_value: ""

remote_as:
get_value: '/^remote-as (\d*?.?\d+?)$/'
set_value: '<state> remote-as <remote_as>'
Expand Down
7 changes: 7 additions & 0 deletions lib/cisco_node_utils/cmd_ref/bgp_neighbor_af.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,13 @@ prefix_list_out:
set_value: '<state> prefix-list <str> 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: '<state> rewrite-evpn-rt-asn'
default_value: false

route_map_in:
kind: string
default_value: ''
Expand Down
12 changes: 12 additions & 0 deletions lib/cisco_node_utils/cmd_ref/evpn_multicast.yaml
Original file line number Diff line number Diff line change
@@ -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: "<state> advertise evpn multicast"
default_value: ''
18 changes: 18 additions & 0 deletions lib/cisco_node_utils/cmd_ref/evpn_multisite.yaml
Original file line number Diff line number Diff line change
@@ -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 <multisiteid>$/']
get_value: '/^delay-restore\s+time\s+(\d+)$/'
set_context: ['evpn multisite border-gateway <multisiteid>']
set_value: "<state> delay-restore time <time>"

multisite:
context: ~
get_value: 'evpn multisite border-gateway ([\d.]+)'
set_value: "<state> evpn multisite border-gateway <multisiteid>"
18 changes: 18 additions & 0 deletions lib/cisco_node_utils/cmd_ref/evpn_stormcontrol.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# evpn_stormcontrol.yaml
---
_exclude: [ios_xr, N3k, N3k-F, N5k, N6k, N7k, N9k-F]

_template:
get_command: "show running-config | section storm-control"

broadcast:
get_value: 'evpn storm-control broadcast level ([\d.]+)'
set_value: "<state> evpn storm-control broadcast level <level>"

multicast:
get_value: 'evpn storm-control multicast level ([\d.]+)'
set_value: "<state> evpn storm-control multicast level <level>"

unicast:
get_value: 'evpn storm-control unicast level ([\d.]+)'
set_value: "<state> evpn storm-control unicast level <level>"
7 changes: 7 additions & 0 deletions lib/cisco_node_utils/cmd_ref/feature.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,13 @@ lacp:
get_value: '/^feature lacp$/'
set_value: "feature lacp"

ngmvpn:
_exclude: [N3k, N3k-F, N5k, N6k, N7k, N9k-F]
os_version: 'N9k:7.0.3.I7.1'
kind: boolean
get_value: '/^feature ngmvpn$/'
set_value: "<state> feature ngmvpn"

nv_overlay:
# N3k - native vxlan support in a future release
_exclude: [N3k]
Expand Down
17 changes: 17 additions & 0 deletions lib/cisco_node_utils/cmd_ref/interface_evpn_multisite.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# interface_evpn_multisite
---
_exclude: [ios_xr, N3k, N3k-F, N5k, N6k, N7k, N9k-F]

_template:
get_command: "show running interface all"
context:
- "interface <interface>"

all_interfaces:
multiple:
get_context: ~
get_value: '/^interface (.*)/'

evpn_multisite:
get_value: '/^evpn multisite (\S+)$/'
set_value: "<state> evpn multisite <tracking>"
18 changes: 18 additions & 0 deletions lib/cisco_node_utils/cmd_ref/ip_multicast.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# ip_multicast.yaml
---
_exclude: [ios_xr, N3k, N3k-F, N5k, N6k, N7k, N9k-F]

_template:
get_command: "show running-config | section 'ip multicast'"

overlay_distributed_dr:
context: ~
get_value: '^ip multicast overlay-distributed-dr$'
set_value: "<state> ip multicast overlay-distributed-dr"
default_value: false

overlay_spt_only:
context: ~
get_value: '^ip multicast overlay-spt-only$'
set_value: "<state> ip multicast overlay-spt-only"
default_value: false
21 changes: 21 additions & 0 deletions lib/cisco_node_utils/cmd_ref/vrf_af.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,13 @@ route_target_both_auto_evpn:
set_value: '<state> route-target both auto evpn'
default_value: false

route_target_both_auto_mvpn:
_exclude: [ios_xr, N3k, N3k-F, N5k, N6k, N7k, N9k-F]
kind: boolean
get_value: '/^route-target both auto mvpn$/'
set_value: '<state> route-target both auto mvpn'
default_value: false

route_target_export:
multiple: true
default_value: []
Expand All @@ -73,6 +80,13 @@ route_target_export_evpn:
set_value: '<state> route-target export <community> evpn'
default_value: []

route_target_export_mvpn:
_exclude: [ios_xr, N3k, N3k-F, N5k, N6k, N7k, N9k-F]
multiple: true
get_value: '/^route-target export (\S+) mvpn$/'
set_value: '<state> route-target export <community> mvpn'
default_value: []

route_target_export_stitching:
_exclude: [nexus]
multiple: true
Expand Down Expand Up @@ -105,6 +119,13 @@ route_target_import_evpn:
set_value: '<state> route-target import <community> evpn'
default_value: []

route_target_import_mvpn:
_exclude: [ios_xr, N3k, N3k-F, N5k, N6k, N7k, N9k-F]
multiple: true
get_value: '/^route-target import (\S+) mvpn$/'
set_value: '<state> route-target import <community> mvpn'
default_value: []

route_target_import_stitching:
_exclude: [nexus]
multiple: true
Expand Down
6 changes: 6 additions & 0 deletions lib/cisco_node_utils/cmd_ref/vxlan_vtep.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,12 @@ mt_lite_support:
# this feature is always off on these platforms and cannot be changed
default_only: false

multisite_bg_intf:
_exclude: [N3k-F, N5k, N6k, N7k, N9k-F]
get_value: '/^multisite border\-gateway interface (\S+)$/'
set_value: '<state> multisite border-gateway interface <lpbk_intf>'
default_value: ''

shutdown:
kind: boolean
get_value: '/^no shutdown$/'
Expand Down
7 changes: 7 additions & 0 deletions lib/cisco_node_utils/cmd_ref/vxlan_vtep_vni.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,13 @@ multicast_group:
set_value: '<state> mcast-group <ip_start> <ip_end>'
default_value: ''

multisite_ingress_replication:
_exclude: [N3k-F, N5k, N6k, N7k, N9k-F]
kind: boolean
get_value: '/^multisite ingress-replication$/'
set_value: '<state> multisite ingress-replication'
default_value: false

peer_list:
_exclude: [N5k, N6k, N7k]
multiple:
Expand Down
Loading

0 comments on commit 88e0d96

Please sign in to comment.