diff --git a/src/sonic-yang-models/yang-models/sonic-breakout_cfg.yang b/src/sonic-yang-models/yang-models/sonic-breakout_cfg.yang index b8ae8efdf318..85c0cf997d40 100644 --- a/src/sonic-yang-models/yang-models/sonic-breakout_cfg.yang +++ b/src/sonic-yang-models/yang-models/sonic-breakout_cfg.yang @@ -7,7 +7,6 @@ module sonic-breakout_cfg { import sonic-extension { prefix ext; - revision-date 2019-07-01; } description "BREAKOUT_CFG YANG Module for SONiC OS"; diff --git a/src/sonic-yang-models/yang-models/sonic-crm.yang b/src/sonic-yang-models/yang-models/sonic-crm.yang index 48c15b0e48cc..d1ac84eec391 100644 --- a/src/sonic-yang-models/yang-models/sonic-crm.yang +++ b/src/sonic-yang-models/yang-models/sonic-crm.yang @@ -7,7 +7,6 @@ module sonic-crm { import sonic-types { prefix stypes; - revision-date 2019-07-01; } description "CRM YANG Module for SONiC OS"; diff --git a/src/sonic-yang-models/yang-models/sonic-device_metadata.yang b/src/sonic-yang-models/yang-models/sonic-device_metadata.yang index 217715858148..f7ef8261d6ba 100644 --- a/src/sonic-yang-models/yang-models/sonic-device_metadata.yang +++ b/src/sonic-yang-models/yang-models/sonic-device_metadata.yang @@ -15,7 +15,6 @@ module sonic-device_metadata { import sonic-types { prefix stypes; - revision-date 2019-07-01; } description "DEVICE_METADATA YANG Module for SONiC OS"; diff --git a/src/sonic-yang-models/yang-models/sonic-device_neighbor.yang b/src/sonic-yang-models/yang-models/sonic-device_neighbor.yang index e1c745dd9afe..a7284ccec50c 100644 --- a/src/sonic-yang-models/yang-models/sonic-device_neighbor.yang +++ b/src/sonic-yang-models/yang-models/sonic-device_neighbor.yang @@ -11,7 +11,6 @@ module sonic-device_neighbor { import sonic-extension { prefix ext; - revision-date 2019-07-01; } import sonic-port { diff --git a/src/sonic-yang-models/yang-models/sonic-extension.yang b/src/sonic-yang-models/yang-models/sonic-extension.yang deleted file mode 100644 index 6369b605173c..000000000000 --- a/src/sonic-yang-models/yang-models/sonic-extension.yang +++ /dev/null @@ -1,13 +0,0 @@ -module sonic-extension { - - yang-version 1.1; - - namespace "http://github.com/Azure/sonic-extension"; - prefix sonic-extension; - - description "Extension yang Module for SONiC OS"; - - revision 2019-07-01 { - description "First Revision"; - } -} diff --git a/src/sonic-yang-models/yang-models/sonic-interface.yang b/src/sonic-yang-models/yang-models/sonic-interface.yang index f559eb6be1b6..746dbba46b7b 100644 --- a/src/sonic-yang-models/yang-models/sonic-interface.yang +++ b/src/sonic-yang-models/yang-models/sonic-interface.yang @@ -7,12 +7,10 @@ module sonic-interface { import sonic-types { prefix stypes; - revision-date 2019-07-01; } import sonic-extension { prefix ext; - revision-date 2019-07-01; } import sonic-port { diff --git a/src/sonic-yang-models/yang-models/sonic-loopback-interface.yang b/src/sonic-yang-models/yang-models/sonic-loopback-interface.yang index 0414f3b94344..df59d3961fb4 100644 --- a/src/sonic-yang-models/yang-models/sonic-loopback-interface.yang +++ b/src/sonic-yang-models/yang-models/sonic-loopback-interface.yang @@ -7,12 +7,10 @@ module sonic-loopback-interface { import sonic-types { prefix stypes; - revision-date 2019-07-01; } import sonic-extension { prefix ext; - revision-date 2019-07-01; } import sonic-vrf { diff --git a/src/sonic-yang-models/yang-models/sonic-port.yang b/src/sonic-yang-models/yang-models/sonic-port.yang index d2f63e571207..0e1c5db0b8f0 100644 --- a/src/sonic-yang-models/yang-models/sonic-port.yang +++ b/src/sonic-yang-models/yang-models/sonic-port.yang @@ -7,12 +7,10 @@ module sonic-port{ import sonic-types { prefix stypes; - revision-date 2019-07-01; } import sonic-extension { prefix ext; - revision-date 2019-07-01; } description "PORT yang Module for SONiC OS"; diff --git a/src/sonic-yang-models/yang-models/sonic-portchannel.yang b/src/sonic-yang-models/yang-models/sonic-portchannel.yang index 587a19e4bec6..083a413527ec 100644 --- a/src/sonic-yang-models/yang-models/sonic-portchannel.yang +++ b/src/sonic-yang-models/yang-models/sonic-portchannel.yang @@ -7,12 +7,10 @@ module sonic-portchannel { import sonic-types { prefix stypes; - revision-date 2019-07-01; } import sonic-extension { prefix ext; - revision-date 2019-07-01; } import sonic-port { @@ -138,7 +136,7 @@ module sonic-portchannel { path "/lag:sonic-portchannel/lag:PORTCHANNEL/lag:PORTCHANNEL_LIST/lag:name"; } } - + leaf port { /* key elements are mandatory by default */ type leafref { diff --git a/src/sonic-yang-models/yang-models/sonic-vlan.yang b/src/sonic-yang-models/yang-models/sonic-vlan.yang index f420b8f7b17c..3e4074428654 100644 --- a/src/sonic-yang-models/yang-models/sonic-vlan.yang +++ b/src/sonic-yang-models/yang-models/sonic-vlan.yang @@ -11,12 +11,10 @@ module sonic-vlan { import sonic-types { prefix stypes; - revision-date 2019-07-01; } import sonic-extension { prefix ext; - revision-date 2019-07-01; } import sonic-port { diff --git a/src/sonic-yang-models/yang-templates/sonic-extension.yang.j2 b/src/sonic-yang-models/yang-templates/sonic-extension.yang.j2 new file mode 100644 index 000000000000..142ef517b7c2 --- /dev/null +++ b/src/sonic-yang-models/yang-templates/sonic-extension.yang.j2 @@ -0,0 +1,41 @@ +module sonic-extension { + + yang-version 1.1; + + namespace "http://github.com/Azure/sonic-extension"; + prefix sonic-extension; + + description "Extension yang Module for SONiC OS"; + + revision 2019-07-01 { + description "First Revision"; + } + + /* For complete guide of using these extensions in SONiC yangs, refer + SONiC yang guidelines at + https://github.com/Azure/SONiC/blob/master/doc/mgmt/SONiC_YANG_Model_Guidelines.md */ + + extension db-name { + description "DB name, e.g. APPL_DB, CONFIG_DB"; + argument "value"; + } + + {% if yang_model_type == "cvl" %} + extension custom-validation-cvl { + description "Extension for registering cvl based custom validation handler."; + argument "handler"; + } + + extension dependent-on { + description + "Extension to define dependency on other table. During CREATE/UPDATE, + the action will be performed first on the Parent table and then on the + Dependent table. In DELETE operation, the Dependent table will be + deleted first and then the Parent table. This extension can be defined + only under List nodes. Table name should always be suffixed with '_LIST' + as modeled in yang. e.g. - dependent-on STP_LIST"; + argument "value"; + } + {% else %} + {% endif %} +} diff --git a/src/sonic-yang-models/yang-models/sonic-types.yang b/src/sonic-yang-models/yang-templates/sonic-types.yang.j2 similarity index 74% rename from src/sonic-yang-models/yang-models/sonic-types.yang rename to src/sonic-yang-models/yang-templates/sonic-types.yang.j2 index 7bc9372536e8..c28ea16c00bd 100644 --- a/src/sonic-yang-models/yang-models/sonic-types.yang +++ b/src/sonic-yang-models/yang-templates/sonic-types.yang.j2 @@ -155,6 +155,42 @@ module sonic-types { } } + typedef oper-status { + type enumeration { + enum unknown; + enum up; + enum down; + } + description "Operational status of an entity such as Port, MCLAG etc"; + } + + typedef mode-status { + type enumeration { + enum enable; + enum disable; + } + description + "This type can be used where toggle functionality required. + For ex. IPv6-link-local-only, Dhcp-replay-link-select, SNMP traps etc"; + } + + typedef dhcp-relay-policy-action { + type enumeration { + enum discard; + enum append; + enum replace; + } + description "DHCP relay policy action value"; + } + + typedef percentage { + type uint8 { + range "0..100"; + } + description + "Integer indicating a percentage value"; + } + typedef tpid_type { type string { pattern "0x8100|0x9100|0x9200|0x88a8|0x88A8"; @@ -185,4 +221,27 @@ module sonic-types { enum transit; } } + + + + /* Required for CVL */ + {% if yang_model_type == "cvl" %} + container operation { + description + "This definition is used internally by CVL and + is not exposed in NBI. Leaf 'operation' allows + evaluation of must expression for + CREATE/UPDATE/DELETE operation."; + + leaf operation { + type enumeration { + enum NOP; + enum CREATE; + enum UPDATE; + enum DELETE; + } + } + } + {% else %} + {% endif %} }