Skip to content

Commit

Permalink
✨ Cisco IOS-XR evpn
Browse files Browse the repository at this point in the history
✨ Cisco IOS-XR evpn → interface
✨ Cisco IOS-XR evpn → interface → ethernet-segment
✨ Cisco IOS-XR evpn → interface → ethernet-segment → identifier type
✨ Cisco IOS-XR evpn → interface → ethernet-segment → load-balancing-mode
✨ Cisco IOS-XR evpn → interface → ethernet-segment → bgp route-target
✨ Cisco IOS-XR interface "l2transport" suffix: "Ex: interface bundle-ether1.2 *l2transport*"
✨ Cisco IOS-XR interface → rewrite ingress tag
✨ Cisco IOS-XR interface → encapsulation highlights invalid VLAN values
  • Loading branch information
heyglen committed May 30, 2024
1 parent 376e164 commit 580d3b2
Show file tree
Hide file tree
Showing 14 changed files with 582 additions and 55 deletions.
370 changes: 359 additions & 11 deletions cisco-ios-xr.sublime-syntax

Large diffs are not rendered by default.

14 changes: 13 additions & 1 deletion cisco/ios_xr/ios-xr.configure_terminal.sublime-completions
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"scope": "text.network.cisco.ios_xr text.network.cisco.configure_terminal & -(text.network.cisco.mpls | text.network.cisco.router | text.network.cisco.vrf | text.network.cisco.set | text.network.cisco.route_policy | text.network.cisco.interface)",
"scope": "text.network.cisco.ios_xr text.network.cisco.configure_terminal & -(text.network.cisco.mpls | text.network.cisco.router | text.network.cisco.vrf | text.network.cisco.set | text.network.cisco.route_policy | text.network.cisco.interface | text.network.cisco.evpn)",
"completions": [
{
"trigger": "hostname\thostname",
Expand Down Expand Up @@ -33,6 +33,10 @@
"trigger": "interface HundredGigE\t100G",
"contents": "interface HundredGigE${1:0/0/0/0}\n\t$0\n"
},
{
"trigger": "interface BVI",
"contents": "interface BVI${1:1}\n\t$0\n"
},
{
"trigger": "interface\tLo",
"contents": "interface Loopback${1:0}\n\t$0\n"
Expand Down Expand Up @@ -141,6 +145,14 @@
"trigger": "object-group\tnetwork ipv4",
"contents": "object-group network ipv4 ${1:NAME}\n\t$0\n"
},
{
"trigger": "l2vpn",
"contents": "l2vpn\n\t$0\n"
},
{
"trigger": "evpn",
"contents": "evpn\n\t$0\n"
},
"commit",
"cdp",
]
Expand Down
17 changes: 17 additions & 0 deletions cisco/ios_xr/ios-xr.evpn.evi.bgp.sublime-completions
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"scope": "text.network.cisco.ios_xr text.network.cisco.evpn.evi.bgp",
"completions": [
{
"trigger": "rd\troute distinguisher",
"contents": "rd ${1:100:100}"
},
{
"trigger": "route-target\timport",
"contents": "route-target import ${1:100:100}"
},
{
"trigger": "route-target\texport",
"contents": "route-target export ${1:100:100}"
},
]
}
9 changes: 9 additions & 0 deletions cisco/ios_xr/ios-xr.evpn.evi.sublime-completions
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"scope": "text.network.cisco.ios_xr text.network.cisco.evpn.evi",
"completions": [
{
"trigger": "bgp",
"contents": "bgp\n\t$0\n"
},
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"scope": "text.network.cisco.ios_xr text.network.cisco.evpn.interface.ethernet-segment",
"completions": [
{
"trigger": "identifier type",
"contents": "identifier type ${1:0} ${2:00.01.23.45.67.89.ab.cd.ef}"
},
{
"trigger": "load-balancing-mode\tsingle-active",
"contents": "load-balancing-mode single-active"
},
{
"trigger": "load-balancing-mode\tsingle-flow-active",
"contents": "load-balancing-mode single-flow-active"
},
{
"trigger": "load-balancing-mode\tper-service",
"contents": "load-balancing-mode per-service"
},
{
"trigger": "bgp route-target",
"contents": "bgp route-target ${1:0000.0000.0001}"
},
]
}
9 changes: 9 additions & 0 deletions cisco/ios_xr/ios-xr.evpn.interface.sublime-completions
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"scope": "text.network.cisco.ios_xr text.network.cisco.evpn.interface",
"completions": [
{
"trigger": "ethernet-segment",
"contents": "ethernet-segment\n\t$0\n"
},
]
}
13 changes: 13 additions & 0 deletions cisco/ios_xr/ios-xr.evpn.sublime-completions
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"scope": "text.network.cisco.ios_xr text.network.cisco.evpn",
"completions": [
{
"trigger": "interface\tBundle-Ether",
"contents": "interface Bundle-Ether${1:1}\n\t$0\n"
},
{
"trigger": "evi",
"contents": "evi ${1:6000}\n\t$0\n"
},
]
}
48 changes: 48 additions & 0 deletions cisco/ios_xr/ios-xr.interface.sublime-completions
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,54 @@
"trigger": "flow\tmpls egress",
"contents": "flow mpls monitor ${1:NAME} sampler ${2:NAME} egress"
},
{
"trigger": "rewrite ingress tag push",
"contents": "rewrite ingress tag push dot1q ${1:1}"
},
{
"trigger": "rewrite ingress tag push\tsymmetric",
"contents": "rewrite ingress tag push dot1q ${1:1} symmetric"
},
{
"trigger": "rewrite ingress tag pop",
"contents": "rewrite ingress tag pop ${1:1}"
},
{
"trigger": "rewrite ingress tag pop\tsymmetric",
"contents": "rewrite ingress tag pop ${1:1} symmetric"
},
{
"trigger": "rewrite ingress tag translate 1-to-1",
"contents": "rewrite ingress tag translate 1-to-1 dot1q ${1:1}"
},
{
"trigger": "rewrite ingress tag translate 1-to-1\tsymmetric",
"contents": "rewrite ingress tag translate 1-to-1 dot1q ${1:1} symmetric"
},
{
"trigger": "rewrite ingress tag translate 1-to-2",
"contents": "rewrite ingress tag translate 1-to-2 dot1q ${1:1}"
},
{
"trigger": "rewrite ingress tag translate 1-to-2\tsymmetric",
"contents": "rewrite ingress tag translate 1-to-2 dot1q ${1:1} symmetric"
},
{
"trigger": "rewrite ingress tag translate 2-to-1",
"contents": "rewrite ingress tag translate 2-to-1 dot1q ${1:1}"
},
{
"trigger": "rewrite ingress tag translate 2-to-1\tsymmetric",
"contents": "rewrite ingress tag translate 2-to-1 dot1q ${1:1} symmetric"
},
{
"trigger": "rewrite ingress tag translate 2-to-2",
"contents": "rewrite ingress tag translate 2-to-2 dot1q ${1:1} dot1q ${2:2}"
},
{
"trigger": "rewrite ingress tag translate 2-to-2\tsymmetric",
"contents": "rewrite ingress tag translate 2-to-2 dot1q ${1:1} dot1q ${2:2} symmetric"
},
{
"trigger": "load-interval\t",
"contents": "load-interval ${1:30}"
Expand Down
2 changes: 1 addition & 1 deletion messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,4 @@
"2.53.1": "messages/2.53.1.md",
"2.54.0": "messages/2.54.0.md",
"2.55.0": "messages/2.55.0.md"
}
}
33 changes: 1 addition & 32 deletions messages/2.54.0.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,2 @@
# [{{version}}] - {{date}}
# [2.54.0] - 2024.05.29

✨ Cisco IOS-XR

* Interface TwentyFiveGigE

* l2vpn

* l2vpn → bridge group

* l2vpn → bridge group → bridge-domain

* l2vpn → bridge group → bridge-domain → interface

* interface → host-routing

* interface → arp learning

* interface → local-proxy-arp

* interface → mac-address

✨ Cisco IOS

* standby 1 prempt delay reload 123

* "sunrpc" tcp port name

* "www" tcp port name

* "cmd" tcp port name

🎖️ Thanks [hardrockhodl](https://github.com/hardrockhodl) [Issue 45](https://github.com/heyglen/network_tech/issues/45)
1 change: 0 additions & 1 deletion messages/2.55.0.md
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
# [2.55.0] - 2024.05.29

21 changes: 21 additions & 0 deletions messages/head.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,23 @@
# [{{version}}] - {{date}}

## Added

✨ Cisco IOS-XR

* Command: evpn

* Command: evpn → interface

* Command: evpn → interface → ethernet-segment

* Command: evpn → interface → ethernet-segment → identifier type

* Command: evpn → interface → ethernet-segment → load-balancing-mode

* Command: evpn → interface → ethernet-segment → bgp route-target

* Command: interface "l2transport" suffix: "Ex: interface bundle-ether1.2 *l2transport*"

* Command: interface → rewrite ingress tag

* Command: interface → encapsulation highlights invalid VLAN values
68 changes: 59 additions & 9 deletions tests/syntax_test_cisco_ios_xr.cisco-ios-xr
Original file line number Diff line number Diff line change
Expand Up @@ -208,8 +208,8 @@ l2vpn
evi 6005
evi 65534
evi 1
evi 65535 # Should Fail
evi 0 # Should Fail
evi 65535
evi 0
exit
exit
exit
Expand All @@ -222,27 +222,76 @@ interface BVI34
arp learning disable
local-proxy-arp
mac-address 0123.4567.89ab
mac-address invalid
!
!
evpn
interface Bundle-Ether1
ethernet-segment


evpn
interface Bundle-Ether1
ethernet-segment
identifier type 0 40.00.00.00.00.00.00.00.01
load-balancing-mode single-active
bgp route-target 4000.0000.0001
# https://www.cisco.com/c/en/us/td/docs/routers/asr9000/software/lxvpn/command/reference/b-lxvpn-cr-asr9000/provider-backbone-bridge-commands.html#wp1226797178
identifier type 0 00.01.23.45.67.89.ab.cd.ef
identifier type 5 00.01.23.45.67.89.ab.cd.ef
# type should be 0-5
identifier type 6 00.01.23.45.67.89.ab.cd.ef
identifier type 5 incorrect

# Unable to find command reference
load-balancing-mode single-active
load-balancing-mode single-flow-active
# https://www.cisco.com/c/en/us/td/docs/routers/asr9000/software/asr9k-r6-3/lxvpn/command/reference/b-lxvpn-cr-asr9000-63x.pdf#page=399&zoom=100,60,116
load-balancing-mode per-service
load-balancing-mode invalid

# Illegal values
bgp route-target 0000.0000.0000
bgp route-target invalid
# Valid value
bgp route-target 4000.0000.0001
!
evi 65535
evi 6005
bgp
rd 200:50
route-target import 100:6005
route-target export 100:6005
rd 100:100
rd 200:50
rd invalid
route-target import 100:6005
route-target export 100:6005
route-target invalid 100:6005
route-target export invalid
!
!
interface bundle-ether2.1 l2transport
interface bundle-ether1.2 l2transport
no shutdown
encapsulation dot1q 1
rewrite ingress tag push dot1q 1
rewrite ingress tag push dot1q 1 symmetric
rewrite ingress tag push dot1q invalid
rewrite ingress tag pop 1
rewrite ingress tag pop 1 symmetric
rewrite ingress tag pop 0
rewrite ingress tag pop invalid
rewrite ingress tag translate 1-to-1 dot1q 1
rewrite ingress tag translate 1-to-1 dot1q 1 symmetric
rewrite ingress tag translate 1-to-2 dot1q 1
rewrite ingress tag translate 1-to-2 dot1q 1 symmetric
rewrite ingress tag translate 2-to-1 dot1q 1
rewrite ingress tag translate 2-to-1 dot1q 1 symmetric
rewrite ingress tag translate 1-to-1 dot1q invalid
rewrite ingress tag translate 1-to-1 dot1q 0

rewrite ingress tag translate 2-to-2 dot1q 1 dot1q 1
rewrite ingress tag translate 2-to-2 dot1q 1 dot1q 1 symmetric
rewrite ingress tag translate 2-to-2 dot1q 0 dot1q 1
rewrite ingress tag translate 2-to-2 dot1q 1 dot1q 0
rewrite ingress tag translate 2-to-2 dot1q 1

rewrite ingress tag pop 1 symmetric
rewrite ingress tag pop 1
!

interface Loopback0
Expand Down Expand Up @@ -371,6 +420,7 @@ interface GigabitEthernet0/0/0/3
interface GigabitEthernet0/0/0/3.100
ipv4 address 1.2.3.4 255.255.255.0
encapsulation dot1q 100
encapsulation dot1q invalid
!
interface GigabitEthernet0/0/0/4
cdp
Expand Down
7 changes: 7 additions & 0 deletions tools/release.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,4 +148,11 @@ def major():
perform_release("major")


# @release_group.command()
# def release():
# version = "2.54.0"
# message = create_message(version)
# github_release(REPO_NAME, version, message)


release_group()

0 comments on commit 580d3b2

Please sign in to comment.