forked from sonic-net/sonic-buildimage
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[nvgre] Added YANG model and tests (sonic-net#9136)
- Why I did it NVGRE Tunnel feature extends the Config DB with new tables. These tables require a new YANG model. - How I did it Added a new YANG model sonic-nvgre-tunnel.yang - How to verify it Added YANG test cases. Signed-off-by: Vadym Hlushko <vadymh@nvidia.com>
- Loading branch information
1 parent
fb752a4
commit 5ce75ac
Showing
5 changed files
with
285 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
25 changes: 25 additions & 0 deletions
25
src/sonic-yang-models/tests/yang_model_tests/tests/nvgre.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
{ | ||
"NVGRE_TUNNEL_AND_TUNNEL_MAP": { | ||
"desc": "NVGRE_TUNNEL with NVGRE_TUNNEL_MAP" | ||
}, | ||
|
||
"NVGRE_TUNNEL_INVALID_SRC_IP": { | ||
"desc": "INVALID src_ip value for NVGRE_TUNNEL", | ||
"eStrKey": "InvalidValue" | ||
}, | ||
|
||
"NVGRE_TUNNEL_MAP_UNEXISTING_NVGRE_TUNNEL_NAME": { | ||
"desc": "Unexisting NVGRE_TUNNEL", | ||
"eStrKey": "LeafRef" | ||
}, | ||
|
||
"NVGRE_TUNNEL_MAP_INVALID_VLAN_ID": { | ||
"desc": "Invalid VLAN ID", | ||
"eStrKey": "Pattern" | ||
}, | ||
|
||
"NVGRE_TUNNEL_MAP_INVALID_VSID": { | ||
"desc": "INVALID VSID value for NVGRE_TUNNEL_MAP", | ||
"eStrKey": "Pattern" | ||
} | ||
} |
125 changes: 125 additions & 0 deletions
125
src/sonic-yang-models/tests/yang_model_tests/tests_config/nvgre.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,125 @@ | ||
{ | ||
"NVGRE_TUNNEL_AND_TUNNEL_MAP": { | ||
"sonic-vlan:sonic-vlan": { | ||
"sonic-vlan:VLAN": { | ||
"VLAN_LIST": [ | ||
{ | ||
"name": "Vlan200" | ||
} | ||
] | ||
} | ||
}, | ||
"sonic-nvgre-tunnel:sonic-nvgre-tunnel": { | ||
"sonic-nvgre-tunnel:NVGRE_TUNNEL": { | ||
"NVGRE_TUNNEL_LIST": [ | ||
{ | ||
"tunnel_name": "tunnel_1", | ||
"src_ip": "10.0.0.1" | ||
} | ||
] | ||
}, | ||
"sonic-nvgre-tunnel:NVGRE_TUNNEL_MAP": { | ||
"NVGRE_TUNNEL_MAP_LIST": [ | ||
{ | ||
"tunnel_name": "tunnel_1", | ||
"tunnel_map_name": "Vlan200", | ||
"vlan_id": 200, | ||
"vsid": 5000 | ||
} | ||
] | ||
} | ||
} | ||
}, | ||
|
||
"NVGRE_TUNNEL_INVALID_SRC_IP": { | ||
"sonic-nvgre-tunnel:sonic-nvgre-tunnel": { | ||
"sonic-nvgre-tunnel:NVGRE_TUNNEL": { | ||
"NVGRE_TUNNEL_LIST": [ | ||
{ | ||
"tunnel_name": "tunnel_1", | ||
"src_ip": "INVALID" | ||
} | ||
] | ||
} | ||
} | ||
}, | ||
|
||
"NVGRE_TUNNEL_MAP_UNEXISTING_NVGRE_TUNNEL_NAME": { | ||
"sonic-vlan:sonic-vlan": { | ||
"sonic-vlan:VLAN": { | ||
"VLAN_LIST": [ | ||
{ | ||
"name": "Vlan200" | ||
} | ||
] | ||
} | ||
}, | ||
"sonic-nvgre-tunnel:sonic-nvgre-tunnel": { | ||
"sonic-nvgre-tunnel:NVGRE_TUNNEL_MAP": { | ||
"NVGRE_TUNNEL_MAP_LIST": [ | ||
{ | ||
"tunnel_name": "INVALID", | ||
"tunnel_map_name": "Vlan200", | ||
"vlan_id": 200, | ||
"vsid": 5000 | ||
} | ||
] | ||
} | ||
} | ||
}, | ||
|
||
"NVGRE_TUNNEL_MAP_INVALID_VLAN_ID": { | ||
"sonic-nvgre-tunnel:sonic-nvgre-tunnel": { | ||
"sonic-nvgre-tunnel:NVGRE_TUNNEL": { | ||
"NVGRE_TUNNEL_LIST": [ | ||
{ | ||
"tunnel_name": "tunnel_1", | ||
"src_ip": "10.0.0.1" | ||
} | ||
] | ||
}, | ||
"sonic-nvgre-tunnel:NVGRE_TUNNEL_MAP": { | ||
"NVGRE_TUNNEL_MAP_LIST": [ | ||
{ | ||
"tunnel_name": "tunnel_1", | ||
"tunnel_map_name": "Vlan200", | ||
"vlan_id": 5000, | ||
"vsid": 5000 | ||
} | ||
] | ||
} | ||
} | ||
}, | ||
|
||
"NVGRE_TUNNEL_MAP_INVALID_VSID": { | ||
"sonic-vlan:sonic-vlan": { | ||
"sonic-vlan:VLAN": { | ||
"VLAN_LIST": [ | ||
{ | ||
"name": "Vlan200" | ||
} | ||
] | ||
} | ||
}, | ||
"sonic-nvgre-tunnel:sonic-nvgre-tunnel": { | ||
"sonic-nvgre-tunnel:NVGRE_TUNNEL": { | ||
"NVGRE_TUNNEL_LIST": [ | ||
{ | ||
"tunnel_name": "tunnel_1", | ||
"src_ip": "10.0.0.1" | ||
} | ||
] | ||
}, | ||
"sonic-nvgre-tunnel:NVGRE_TUNNEL_MAP": { | ||
"NVGRE_TUNNEL_MAP_LIST": [ | ||
{ | ||
"tunnel_name": "tunnel_1", | ||
"tunnel_map_name": "Vlan200", | ||
"vlan_id": 200, | ||
"vsid": 999999999 | ||
} | ||
] | ||
} | ||
} | ||
} | ||
} |
114 changes: 114 additions & 0 deletions
114
src/sonic-yang-models/yang-models/sonic-nvgre-tunnel.yang
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
module sonic-nvgre-tunnel { | ||
|
||
yang-version 1.1; | ||
|
||
namespace "http://github.com/Azure/sonic-nvgre-tunnel"; | ||
prefix nvgre; | ||
|
||
import ietf-inet-types { | ||
prefix inet; | ||
} | ||
|
||
import sonic-vlan { | ||
prefix vlan; | ||
} | ||
|
||
|
||
organization | ||
"SONiC"; | ||
|
||
contact | ||
"SONiC"; | ||
|
||
description | ||
"NVGRE Tunnel YANG Module for SONiC OS"; | ||
|
||
revision 2021-10-31 { | ||
description | ||
"First Revision"; | ||
} | ||
|
||
container sonic-nvgre-tunnel { | ||
|
||
container NVGRE_TUNNEL { | ||
|
||
description "NVGRE_TUNNEL part of config_db.json"; | ||
|
||
list NVGRE_TUNNEL_LIST { | ||
|
||
key "tunnel_name"; | ||
|
||
leaf tunnel_name { | ||
description "NVGRE Tunnel name"; | ||
|
||
type string { | ||
length 1..255; | ||
} | ||
} | ||
|
||
leaf src_ip { | ||
description "Source IP address"; | ||
|
||
mandatory true; | ||
type inet:ip-address; | ||
} | ||
|
||
} | ||
/* end of NVGRE_TUNNEL_LIST */ | ||
|
||
} | ||
/* end of container NVGRE_TUNNEL */ | ||
|
||
container NVGRE_TUNNEL_MAP { | ||
|
||
description "NVGRE_TUNNEL_MAP part of config_db.json"; | ||
|
||
list NVGRE_TUNNEL_MAP_LIST { | ||
|
||
key "tunnel_name tunnel_map_name"; | ||
|
||
leaf tunnel_name { | ||
description "NVGRE Tunnel name"; | ||
|
||
type leafref { | ||
path /nvgre:sonic-nvgre-tunnel/nvgre:NVGRE_TUNNEL/nvgre:NVGRE_TUNNEL_LIST/nvgre:tunnel_name; | ||
} | ||
} | ||
|
||
leaf tunnel_map_name { | ||
description "NVGRE Tunnel map name"; | ||
|
||
type string { | ||
length 1..255; | ||
} | ||
} | ||
|
||
leaf vlan_id { | ||
description "VLAN identifier"; | ||
|
||
mandatory true; | ||
type uint16 { | ||
range 1..4094; | ||
} | ||
} | ||
|
||
leaf vsid { | ||
description "Virtual Subnet Identifier"; | ||
|
||
mandatory true; | ||
type uint32 { | ||
range 0..16777214; | ||
} | ||
} | ||
|
||
} | ||
/* end of NVGRE_TUNNEL_MAP_LIST */ | ||
|
||
} | ||
/* end of container NVGRE_TUNNEL_MAP */ | ||
|
||
} | ||
/* end of container sonic-nvgre-tunnel */ | ||
|
||
} | ||
/* end of module sonic-nvgre-tunnel */ |