YANG SID Management

YANG SID Files

The yangdump-pro program can be used to generate YANG SID Files defined in RFC 9595. These JSON files are used to support the YANG to CBOR encoding defined in RFC 9254. These RFCs are needed for the Binary Push feature supported in the client and the server. There should be a corresponding YANG SID file for each YANG module.

A YANG SID file is a JSON file derived from a YANG module. It contains mappings between YANG schema nodes and numbers. The numbers are used in the CBOR encoding instead of the long path strings.

The 'netconfd-pro' server will look for YANG SID files in the module path, as specified by the $YUMAPRO_MODPATH environment variable or the --modpath CLI parameter.

Example: 'in-unknown-protos' leaf from ietf-interfaces.yang

{
  "namespace":"data",
  "identifier":"/ietf-interfaces:interfaces-state/interface/statistics/in-unknown-protos",
  "sid":"1525"
}

The 'official' YANG SID assignments are maintained by IANA in the YANG SIDs Registry

YANG Megarange Files are used to manage an entire set of YANG SID files.

Generating a YANG SID File

There is some support for automatically generating initial YANG SID files. Support for updating YANG SID files is planned for a future release.

There are several CLI parameters used for YANG SID file generation:

  • --sid-generate-file: required to specify the assignment range for the YANG SID file

    • This parameter format is a string:

      range-start : range-size

      Example: range starts at 1200 and size is 50: 1200:50

  • --sid-finalize: specified is the YANG SID file is for a 'published' (stable) YANG module, or an 'unpublished' (unstable) YANG module.

    • Default is not preset (unpublished)

  • --module: Specifies the YANG module that will be used for YANG SID file generation.

  • --output: Specifies to output directory and/or the output file name.

    • By default, the YANG SID file name will have the module name and revision date in it, and be created in the current directory.

  • --indent: Specifies the indent amount for the output file.

    • Default is 2

  • --modpath: Specifies where yangdump-pro should look for modules

    • This is in addition to the defaults for the yangdump-pro search path

Example: Generate the YANG SID file for ietf-interfaces.yang

  • The real assignment from IANA is used

> yangdump-pro sid-generate-file=1500:100 sid-finalize  module=ietf-interfaces

Example: Generate the YANG SID file for toaster.yang

  • The Experimental range 60000:40000 is used for a fake assignment

> yangdump-pro sid-generate-file=60000:100 sid-finalize  module=toaster

The resulting file is shown below:

{
  "ietf-sid-file:sid-file": {
    "module-name":"toaster",
    "module-revision":"2009-11-20",
    "description":"Generated by yangdump-pro 24.10T-7 at 2025-04-02T17:52:31Z",
    "assignment-range": [
      {
        "entry-point":"60000",
        "size":"100"
      }
    ],
    "item": [
      {
        "namespace":"module",
        "identifier":"toaster",
        "sid":"60000"
      },
      {
        "namespace":"identity",
        "identifier":"frozen-bagel",
        "sid":"60001"
      },
      {
        "namespace":"identity",
        "identifier":"frozen-waffle",
        "sid":"60002"
      },
      {
        "namespace":"identity",
        "identifier":"hash-brown",
        "sid":"60003"
      },
      {
        "namespace":"identity",
        "identifier":"toast-type",
        "sid":"60004"
      },
      {
        "namespace":"identity",
        "identifier":"wheat-bread",
        "sid":"60005"
      },
      {
        "namespace":"identity",
        "identifier":"white-bread",
        "sid":"60006"
      },
      {
        "namespace":"identity",
        "identifier":"wonder-bread",
        "sid":"60007"
      },
      {
        "namespace":"data",
        "identifier":"/toaster:cancel-toast",
        "sid":"60008"
      },
      {
        "namespace":"data",
        "identifier":"/toaster:cancel-toast/input",
        "sid":"60009"
      },
      {
        "namespace":"data",
        "identifier":"/toaster:cancel-toast/output",
        "sid":"60010"
      },
      {
        "namespace":"data",
        "identifier":"/toaster:make-toast",
        "sid":"60011"
      },
      {
        "namespace":"data",
        "identifier":"/toaster:make-toast/input",
        "sid":"60012"
      },
      {
        "namespace":"data",
        "identifier":"/toaster:make-toast/input/toasterDoneness",
        "sid":"60013"
      },
      {
        "namespace":"data",
        "identifier":"/toaster:make-toast/input/toasterToastType",
        "sid":"60014"
      },
      {
        "namespace":"data",
        "identifier":"/toaster:make-toast/output",
        "sid":"60015"
      },
      {
        "namespace":"data",
        "identifier":"/toaster:toastDone",
        "sid":"60016"
      },
      {
        "namespace":"data",
        "identifier":"/toaster:toastDone/toastStatus",
        "sid":"60017"
      },
      {
        "namespace":"data",
        "identifier":"/toaster:toaster",
        "sid":"60018"
      },
      {
        "namespace":"data",
        "identifier":"/toaster:toaster/toasterManufacturer",
        "sid":"60019"
      },
      {
        "namespace":"data",
        "identifier":"/toaster:toaster/toasterModelNumber",
        "sid":"60020"
      },
      {
        "namespace":"data",
        "identifier":"/toaster:toaster/toasterStatus",
        "sid":"60021"
      }
    ]
  }
}

Updating a YANG SID File

Support for updating YANG SID files is planned for a future release.

YANG Megarange Files

yangdump-pro can be used to automatically generate an entire set of YANG modules.

A YANG Megarange can be allocated by IANA for YANG modules published outside the IETF.

  • The Experimental Range SHOULD NOT be used for real YANG SID files!

The YANG Megarange file is a data structure for managing the set of YANG modules that comprise a megarange.

The user is expected to fill in at least the header portion so yangdump-pro knows where to look for modules and other details.

A megarange has 3 parts:

  • header: control information including relative location of the files used.

  • assignments: The assignment list is an ordered list of assignment blocks to manage allocation of the megarange blocks to modules.

  • modules: The module list is an unordered list of entries representing the YANG modules in the megarange. Each module uses one or more assignments.

A megarange has some restrictions:

  • Maximum megarange size is 4G -1 SIDs

  • Maximum megarange allocation block size is 4G -1 SIDs

The following CLI parameters are available for YANG Megaranges:

  • --megarange-action: Specifies the YANG megarange action to perform

  • --megarange-file: Specifies the YANG megarange file to use for the action. Required for all actions except 'template'.

  • --output: Specifies to output directory and/or the output file name.

    • By default, the YANG SID file name will have the module name and revision date in it, and be created in the current directory.

    • It is recommended to use this parameter for generating SID files

  • --indent: Specifies the indent amount for the output file.

    • Default is 2

  • --modpath: Specifies where yangdump-pro should look for modules

    • This is in addition to the defaults for the yangdump-pro search path

Megarange Allocation By PEN

A Private Enterprise Number is a numeric identifier representing an organization. IANA maintains this registry, originally intended for SNMP. There is an online form to apply for a new PEN number.

There is a new Internet Draft that allows a Private Enterprise Number to be used to assign real YANG SID values:

The yangdump-pro program supports this draft with automatic assignment types:

  • ietf: Use the IETF assignment range

    • The IETF range is 0:1000000

    • SID value 0 is reserved to indicate 'not set'

    • SID values 1 to 999 are reserved for IANA use

    • SID values for IETF YANG modules start at 1000

  • pen-low: Use the 32-bit PEN range that has 10000 available YANG SID assignments

    • Assignment derived from PEN draft and 'owner-pen' field

  • pen-high: Use the 64-bit PEN range that has 100000 available YANG SID assignments

    • Assignment derived from PEN draft and 'owner-pen' field

  • custom: Use the specified assignment range.

    • Assignment from IANA, This process is described in RFC 9595 section 6.3.2.

    • The 'entry-point' and 'size' fields must be provided

For example, YumaWorks has been assigned PEN number 49564.

  • The 'pen-low' range for YumaWorks is 3495640000:10000

  • The 'pen-high' range for YumaWorks is 304956400000:100000

Generating a Megarange Template

A YANG megarange file can be generated using the following command:

  • The file sid-megarange.json will be created in the current directory

yangdump-pro megarange-action=template

Generated megarange template file: sid-megarange.json
Source template file: none

Example template:

{
  "yumaworks-sid-megarange:sid-megarange": {
    "name":"name",
    "policy":"public",
    "entry-point":"1200000",
    "size":100000,
    "contact":"mycontact",
    "owner-pen":12345,
    "assign-type":"pen-low",
    "repo-root":"myroot",
    "repo-folder": [
      "myfolder"
    ],
    "modpath":"mymodpath",
    "prefix": [
      "myprefix-"
    ]
  }
}

Filling In a Megarange Template

The fields in the template must be set to real values before it can be used. It is suggested that the file also be renamed.

Example: Megarange YumaWorks YANG Modules

{
  "yumaworks-sid-megarange:sid-megarange": {
    "name":"yumapro",
    "policy":"public",
    "contact":"[email protected]",
    "owner-pen":49564,
    "assign-type":"pen-low",
    "repo-root":"$HOME/repos/yumapro-yang",
    "repo-folder": [
        "netconfcentral",
        "yumaworks"
    ]
  }
}

The following fields must be set:

  • assign-type: The type of assignment

    • 'ietf', 'pen-low', 'pen-high' or 'custom'

  • repo-root: The file folder location for the root the the YANG module to scan for inclusion in the megarange.

    • All subdirs are scanned unless the 'repo-folder' parameter is provided. Then only those folders are scanned.

    • The first term in the file path can be an environment variable or the tilde '~' character to indicate the $HOME location.

The following optional fields should be set:

  • name: The name of the megarange

  • policy: The usage policy according to RFC 9595

  • entry-point: The start of the megarange. Required if the 'assign-type' is 'custom'.

  • size: The size of the megarange. Required if the 'assign-type' is 'custom'.

  • contact: The megarange contact information.

  • owner-pen: The PEN number must be provided if the assign-type is 'pen-low' or 'pen-high'

  • repo-folder: List of folder paths within the 'repo-root'. Needed if not all folders within the 'repo-root' are part of the megarange.

  • modpath: The file folder path(s) for modules needed outside of the 'repo-root'. This can be omitted for yangdump-pro if the modules can be found in the normal search path.

  • prefix: List of YANG module name prefixes to include in the megarange. If missing then no files will be excluded. If present, then a YANG module name must match one of the prefix entries to be included in the megarange.

After the megarange action is performed, there may be an updated megarange file, e.g. 'foo.json.new'.

If the --megarange-action parameter is set to 'new' or 'autonew', then the new megarange file will have the 'entry-point' and 'size' fields in the header set to the values used. For 'autonew', the 'size' field in each 'allocation' and 'module' entry is filled in.

Generating the Megarange File Contents

There are two modes supported for generating the megarange file data.

  • action=new: The --megarange-action is set to 'new'

    • A static allocation size of '350' is used

    • No YANG SID files are generated

    • A new megarange file is generated with the same name as the --megarange-file except the suffix .new is added.

    • Not recommended in most cases, since it is possible to exceed '350' SIDs used in a module.

    • Allows 'advanced template' to be generated which can be modified as needed.

  • action=autonew: The --megarange-action is set to 'autonew'

    • A dynamic allocation size is used based on the actual SIDs needed

      • The minimum allocation size is 1 block (50 SIDs)

      • The actual allocation is 25% more than the needed SIDs, rounded up to the next block

    • All YANG SID files are generated.

    • A new megarange file is generated with the same name as the --megarange-file except the suffix .new is added.

Example: Create the YANG SID files and updated megarange file for the YumaPro YANG modules.

> mkdir sidfiles
> yangdump-pro --megarange-file=yumapro.json --megarange-action=autonew --output=sidfiles

The updated megarange file will be written to 'yumapro.json.new' :

{
  "yumaworks-sid-megarange:sid-megarange": {
    "name":"yumapro",
    "policy":"public",
    "entry-point":"3495640000",
    "size":10000,
    "contact":"[email protected]",
    "owner-pen":49564,
    "assign-type":"pen-low",
    "repo-root":"$HOME/repos/yumapro-yang",
    "repo-folder": [
      "netconfcentral",
      "yumaworks"
    ],
    "assignment": [
      {
        "entry-point":0,
        "size":50,
        "used":11,
        "module-name":"example-fan"
      },
      {
        "entry-point":50,
        "size":350,
        "used":262,
        "module-name":"netconfd-pro"
      },
      {
        "entry-point":400,
        "size":50,
        "used":22,
        "module-name":"toaster"
      },
      {
        "entry-point":450,
        "size":50,
        "used":3,
        "module-name":"xrd"
      },
      {
        "entry-point":500,
        "size":50,
        "used":7,
        "module-name":"yang-attributes"
      },
      {
        "entry-point":550,
        "size":50,
        "used":1,
        "module-name":"yang-data-ext"
      },
      {
        "entry-point":600,
        "size":1650,
        "used":1286,
        "module-name":"yangcli-pro"
      },
      {
        "entry-point":2250,
        "size":50,
        "used":35,
        "module-name":"yangdiff-pro"
      },
      {
        "entry-point":2300,
        "size":150,
        "used":82,
        "module-name":"yangdump-pro"
      },
      {
        "entry-point":2450,
        "size":50,
        "used":1,
        "module-name":"yuma-app-common"
      },
      {
        "entry-point":2500,
        "size":50,
        "used":13,
        "module-name":"yuma-arp"
      },
      {
        "entry-point":2550,
        "size":50,
        "used":21,
        "module-name":"yuma-interfaces"
      },
      {
        "entry-point":2600,
        "size":50,
        "used":15,
        "module-name":"yuma-mysession"
      },
      {
        "entry-point":2650,
        "size":100,
        "used":43,
        "module-name":"yuma-nacm"
      },
      {
        "entry-point":2750,
        "size":100,
        "used":42,
        "module-name":"yuma-ncx"
      },
      {
        "entry-point":2850,
        "size":100,
        "used":43,
        "module-name":"yuma-netconf"
      },
      {
        "entry-point":2950,
        "size":150,
        "used":82,
        "module-name":"yuma-proc"
      },
      {
        "entry-point":3100,
        "size":150,
        "used":80,
        "module-name":"yuma-system"
      },
      {
        "entry-point":3250,
        "size":50,
        "used":4,
        "module-name":"yuma-time-filter"
      },
      {
        "entry-point":3300,
        "size":50,
        "used":1,
        "module-name":"yuma-types"
      },
      {
        "entry-point":3350,
        "size":50,
        "used":1,
        "module-name":"yuma-xsd"
      },
      {
        "entry-point":3400,
        "size":50,
        "used":1,
        "module-name":"yumaworks-agt-profile"
      },
      {
        "entry-point":3450,
        "size":50,
        "used":1,
        "module-name":"yumaworks-app-common"
      },
      {
        "entry-point":3500,
        "size":50,
        "used":7,
        "module-name":"yumaworks-attrs"
      },
      {
        "entry-point":3550,
        "size":50,
        "used":7,
        "module-name":"yumaworks-callhome"
      },
      {
        "entry-point":3600,
        "size":50,
        "used":7,
        "module-name":"yumaworks-cert-usermap"
      },
      {
        "entry-point":3650,
        "size":50,
        "used":3,
        "module-name":"yumaworks-config-change"
      },
      {
        "entry-point":3700,
        "size":50,
        "used":36,
        "module-name":"yumaworks-db-api"
      },
      {
        "entry-point":3750,
        "size":50,
        "used":7,
        "module-name":"yumaworks-event-filter"
      },
      {
        "entry-point":3800,
        "size":50,
        "used":13,
        "module-name":"yumaworks-event-stream"
      },
      {
        "entry-point":3850,
        "size":50,
        "used":1,
        "module-name":"yumaworks-extensions"
      },
      {
        "entry-point":3900,
        "size":50,
        "used":16,
        "module-name":"yumaworks-getbulk"
      },
      {
        "entry-point":3950,
        "size":50,
        "used":36,
        "module-name":"yumaworks-grpc-mon"
      },
      {
        "entry-point":4000,
        "size":50,
        "used":6,
        "module-name":"yumaworks-ids"
      },
      {
        "entry-point":4050,
        "size":50,
        "used":4,
        "module-name":"yumaworks-internal"
      },
      {
        "entry-point":4100,
        "size":50,
        "used":7,
        "module-name":"yumaworks-lock"
      },
      {
        "entry-point":4150,
        "size":50,
        "used":1,
        "module-name":"yumaworks-mgr-common"
      },
      {
        "entry-point":4200,
        "size":150,
        "used":105,
        "module-name":"yumaworks-opsmgr"
      },
      {
        "entry-point":4350,
        "size":50,
        "used":5,
        "module-name":"yumaworks-restconf"
      },
      {
        "entry-point":4400,
        "size":50,
        "used":1,
        "module-name":"yumaworks-restconf-commit"
      },
      {
        "entry-point":4450,
        "size":50,
        "used":15,
        "module-name":"yumaworks-schema-mount"
      },
      {
        "entry-point":4500,
        "size":50,
        "used":1,
        "module-name":"yumaworks-schema-mount-annot"
      },
      {
        "entry-point":4550,
        "size":350,
        "used":264,
        "module-name":"yumaworks-server"
      },
      {
        "entry-point":4900,
        "size":100,
        "used":58,
        "module-name":"yumaworks-sesmgr"
      },
      {
        "entry-point":5000,
        "size":450,
        "used":357,
        "module-name":"yumaworks-sil-sa"
      },
      {
        "entry-point":5450,
        "size":50,
        "used":22,
        "module-name":"yumaworks-sm-yanglib"
      },
      {
        "entry-point":5500,
        "size":50,
        "used":5,
        "module-name":"yumaworks-support-save"
      },
      {
        "entry-point":5550,
        "size":150,
        "used":105,
        "module-name":"yumaworks-system"
      },
      {
        "entry-point":5700,
        "size":50,
        "used":1,
        "module-name":"yumaworks-system-dev"
      },
      {
        "entry-point":5750,
        "size":50,
        "used":7,
        "module-name":"yumaworks-templates"
      },
      {
        "entry-point":5800,
        "size":50,
        "used":3,
        "module-name":"yumaworks-term-msg"
      },
      {
        "entry-point":5850,
        "size":50,
        "used":23,
        "module-name":"yumaworks-test"
      },
      {
        "entry-point":5900,
        "size":50,
        "used":1,
        "module-name":"yumaworks-types"
      },
      {
        "entry-point":5950,
        "size":50,
        "used":19,
        "module-name":"yumaworks-virtual-server"
      },
      {
        "entry-point":6000,
        "size":50,
        "used":2,
        "module-name":"yumaworks-yang-api"
      },
      {
        "entry-point":6050,
        "size":50,
        "used":20,
        "module-name":"yumaworks-yang-cbor"
      },
      {
        "entry-point":6100,
        "size":50,
        "used":19,
        "module-name":"yumaworks-yangmap"
      },
      {
        "entry-point":6150,
        "size":50,
        "used":1,
        "module-name":"yumaworks-yangpush-dev"
      },
      {
        "entry-point":6200,
        "size":50,
        "used":19,
        "module-name":"yumaworks-ycontrol"
      },
      {
        "entry-point":6250,
        "size":100,
        "used":75,
        "module-name":"yumaworks-yp-gnmi"
      },
      {
        "entry-point":6350,
        "size":50,
        "used":29,
        "module-name":"yumaworks-yp-grpc"
      },
      {
        "entry-point":6400,
        "size":50,
        "used":16,
        "module-name":"yumaworks-yp-ha"
      },
      {
        "entry-point":6450,
        "size":50,
        "used":16,
        "module-name":"yumaworks-zmqapi"
      }
    ],
    "module": [
      {
        "name":"example-fan",
        "revision":"2018-03-17",
        "source":"/yumaworks/example-fan.yang",
        "used":11
      },
      {
        "name":"netconfd-pro",
        "revision":"2024-12-21",
        "source":"/yumaworks/netconfd-pro.yang",
        "used":262
      },
      {
        "name":"toaster",
        "revision":"2009-11-20",
        "source":"/netconfcentral/toaster.yang",
        "used":22
      },
      {
        "name":"xrd",
        "revision":"2016-12-15",
        "source":"/yumaworks/xrd.yang",
        "used":3
      },
      {
        "name":"yang-attributes",
        "revision":"2016-01-06",
        "source":"/yumaworks/yang-attributes.yang",
        "used":7
      },
      {
        "name":"yang-data-ext",
        "revision":"2017-07-03",
        "source":"/yumaworks/yang-data-ext.yang",
        "used":1
      },
      {
        "name":"yangcli-pro",
        "revision":"2025-03-07",
        "source":"/yumaworks/yangcli-pro.yang",
        "used":1286
      },
      {
        "name":"yangdiff-pro",
        "revision":"2024-11-09",
        "source":"/yumaworks/yangdiff-pro.yang",
        "used":35
      },
      {
        "name":"yangdump-pro",
        "revision":"2024-11-09",
        "source":"/yumaworks/yangdump-pro.yang",
        "used":82
      },
      {
        "name":"yuma-app-common",
        "revision":"2017-07-25",
        "source":"/netconfcentral/yuma-app-common.yang",
        "used":1
      },
      {
        "name":"yuma-arp",
        "revision":"2012-01-13",
        "source":"/netconfcentral/yuma-arp.yang",
        "used":13
      },
      {
        "name":"yuma-interfaces",
        "revision":"2012-01-13",
        "source":"/netconfcentral/yuma-interfaces.yang",
        "used":21
      },
      {
        "name":"yuma-mysession",
        "revision":"2013-10-05",
        "source":"/netconfcentral/yuma-mysession.yang",
        "used":15
      },
      {
        "name":"yuma-nacm",
        "revision":"2012-10-05",
        "source":"/netconfcentral/yuma-nacm.yang",
        "used":43
      },
      {
        "name":"yuma-ncx",
        "revision":"2015-10-16",
        "source":"/netconfcentral/yuma-ncx.yang",
        "used":42
      },
      {
        "name":"yuma-netconf",
        "revision":"2015-04-30",
        "source":"/netconfcentral/yuma-netconf.yang",
        "used":43
      },
      {
        "name":"yuma-proc",
        "revision":"2013-07-16",
        "source":"/netconfcentral/yuma-proc.yang",
        "used":82
      },
      {
        "name":"yuma-system",
        "revision":"2013-07-15",
        "source":"/netconfcentral/yuma-system.yang",
        "used":80
      },
      {
        "name":"yuma-time-filter",
        "revision":"2012-11-15",
        "source":"/netconfcentral/yuma-time-filter.yang",
        "used":4
      },
      {
        "name":"yuma-types",
        "revision":"2019-11-29",
        "source":"/netconfcentral/yuma-types.yang",
        "used":1
      },
      {
        "name":"yuma-xsd",
        "revision":"2009-11-21",
        "source":"/netconfcentral/yuma-xsd.yang",
        "used":1
      },
      {
        "name":"yumaworks-agt-profile",
        "revision":"2024-10-03",
        "source":"/yumaworks/yumaworks-agt-profile.yang",
        "used":1
      },
      {
        "name":"yumaworks-app-common",
        "revision":"2024-11-09",
        "source":"/yumaworks/yumaworks-app-common.yang",
        "used":1
      },
      {
        "name":"yumaworks-attrs",
        "revision":"2024-07-29",
        "source":"/yumaworks/yumaworks-attrs.yang",
        "used":7
      },
      {
        "name":"yumaworks-callhome",
        "revision":"2020-10-17",
        "source":"/yumaworks/yumaworks-callhome.yang",
        "used":7
      },
      {
        "name":"yumaworks-cert-usermap",
        "revision":"2022-02-06",
        "source":"/yumaworks/yumaworks-cert-usermap.yang",
        "used":7
      },
      {
        "name":"yumaworks-config-change",
        "revision":"2019-06-09",
        "source":"/yumaworks/yumaworks-config-change.yang",
        "used":3
      },
      {
        "name":"yumaworks-db-api",
        "revision":"2024-05-26",
        "source":"/yumaworks/yumaworks-db-api.yang",
        "used":36
      },
      {
        "name":"yumaworks-event-filter",
        "revision":"2014-02-09",
        "source":"/yumaworks/yumaworks-event-filter.yang",
        "used":7
      },
      {
        "name":"yumaworks-event-stream",
        "revision":"2024-02-16",
        "source":"/yumaworks/yumaworks-event-stream.yang",
        "used":13
      },
      {
        "name":"yumaworks-extensions",
        "revision":"2024-04-04",
        "source":"/yumaworks/yumaworks-extensions.yang",
        "used":1
      },
      {
        "name":"yumaworks-getbulk",
        "revision":"2021-08-07",
        "source":"/yumaworks/yumaworks-getbulk.yang",
        "used":16
      },
      {
        "name":"yumaworks-grpc-mon",
        "revision":"2022-01-10",
        "source":"/yumaworks/yumaworks-grpc-mon.yang",
        "used":36
      },
      {
        "name":"yumaworks-ids",
        "revision":"2014-07-12",
        "source":"/yumaworks/yumaworks-ids.yang",
        "used":6
      },
      {
        "name":"yumaworks-internal",
        "revision":"2019-01-22",
        "source":"/yumaworks/yumaworks-internal.yang",
        "used":4
      },
      {
        "name":"yumaworks-lock",
        "revision":"2023-04-29",
        "source":"/yumaworks/yumaworks-lock.yang",
        "used":7
      },
      {
        "name":"yumaworks-mgr-common",
        "revision":"2018-07-11",
        "source":"/yumaworks/yumaworks-mgr-common.yang",
        "used":1
      },
      {
        "name":"yumaworks-opsmgr",
        "revision":"2018-07-10",
        "source":"/yumaworks/yumaworks-opsmgr.yang",
        "used":105
      },
      {
        "name":"yumaworks-restconf",
        "revision":"2024-06-18",
        "source":"/yumaworks/yumaworks-restconf.yang",
        "used":5
      },
      {
        "name":"yumaworks-restconf-commit",
        "revision":"2017-03-29",
        "source":"/yumaworks/yumaworks-restconf-commit.yang",
        "used":1
      },
      {
        "name":"yumaworks-schema-mount",
        "revision":"2022-01-19",
        "source":"/yumaworks/yumaworks-schema-mount.yang",
        "used":15
      },
      {
        "name":"yumaworks-schema-mount-annot",
        "revision":"2021-12-08",
        "source":"/yumaworks/yumaworks-schema-mount-annot.yang",
        "used":1
      },
      {
        "name":"yumaworks-server",
        "revision":"2018-04-21",
        "source":"/yumaworks/yumaworks-server.yang",
        "used":264
      },
      {
        "name":"yumaworks-sesmgr",
        "revision":"2018-04-28",
        "source":"/yumaworks/yumaworks-sesmgr.yang",
        "used":58
      },
      {
        "name":"yumaworks-sil-sa",
        "revision":"2024-09-13",
        "source":"/yumaworks/yumaworks-sil-sa.yang",
        "used":357
      },
      {
        "name":"yumaworks-sm-yanglib",
        "revision":"2022-09-24",
        "source":"/yumaworks/yumaworks-sm-yanglib.yang",
        "used":22
      },
      {
        "name":"yumaworks-support-save",
        "revision":"2022-05-19",
        "source":"/yumaworks/yumaworks-support-save.yang",
        "used":5
      },
      {
        "name":"yumaworks-system",
        "revision":"2024-05-25",
        "source":"/yumaworks/yumaworks-system.yang",
        "used":105
      },
      {
        "name":"yumaworks-system-dev",
        "revision":"2024-04-09",
        "source":"/yumaworks/yumaworks-system-dev.yang",
        "used":1
      },
      {
        "name":"yumaworks-templates",
        "revision":"2017-02-20",
        "source":"/yumaworks/yumaworks-templates.yang",
        "used":7
      },
      {
        "name":"yumaworks-term-msg",
        "revision":"2019-05-05",
        "source":"/yumaworks/yumaworks-term-msg.yang",
        "used":3
      },
      {
        "name":"yumaworks-test",
        "revision":"2023-03-16",
        "source":"/yumaworks/yumaworks-test.yang",
        "used":23
      },
      {
        "name":"yumaworks-types",
        "revision":"2024-04-14",
        "source":"/yumaworks/yumaworks-types.yang",
        "used":1
      },
      {
        "name":"yumaworks-virtual-server",
        "revision":"2022-01-19",
        "source":"/yumaworks/yumaworks-virtual-server.yang",
        "used":19
      },
      {
        "name":"yumaworks-yang-api",
        "revision":"2024-06-18",
        "source":"/yumaworks/yumaworks-yang-api.yang",
        "used":2
      },
      {
        "name":"yumaworks-yang-cbor",
        "revision":"2022-05-21",
        "source":"/yumaworks/yumaworks-yang-cbor.yang",
        "used":20
      },
      {
        "name":"yumaworks-yangmap",
        "revision":"2018-01-04",
        "source":"/yumaworks/yumaworks-yangmap.yang",
        "used":19
      },
      {
        "name":"yumaworks-yangpush-dev",
        "revision":"2019-11-22",
        "source":"/yumaworks/yumaworks-yangpush-dev.yang",
        "used":1
      },
      {
        "name":"yumaworks-ycontrol",
        "revision":"2023-08-04",
        "source":"/yumaworks/yumaworks-ycontrol.yang",
        "used":19
      },
      {
        "name":"yumaworks-yp-gnmi",
        "revision":"2023-08-04",
        "source":"/yumaworks/yumaworks-yp-gnmi.yang",
        "used":75
      },
      {
        "name":"yumaworks-yp-grpc",
        "revision":"2023-08-04",
        "source":"/yumaworks/yumaworks-yp-grpc.yang",
        "used":29
      },
      {
        "name":"yumaworks-yp-ha",
        "revision":"2023-08-04",
        "source":"/yumaworks/yumaworks-yp-ha.yang",
        "used":16
      },
      {
        "name":"yumaworks-zmqapi",
        "revision":"2023-06-24",
        "source":"/yumaworks/yumaworks-zmqapi.yang",
        "used":16
      }
    ]
  }
}

The YANG SID files are located in the 'sidfiles' directory.

Generating the YANG SID Files

There are two modes supported for generating the YANG SID files:

  • action=new-sid: The --megarange-action is set to 'new-sid'

    • The specified megarange-file is expected to be complete

    • YANG SID files are generated for the modules specified in the megarange file.

    • A new megarange file is generated with the same name as the --megarange-file except the suffix .new is added.

    • Allows manually maintained megarange files to be used to generate YANG SID files.

  • action=autonew: The --megarange-action is set to 'autonew'

    • Described in previous section