-
Notifications
You must be signed in to change notification settings - Fork 116
OFSW required OpenConfig YANG models
The list of OpenConfig YANG models required for operating an OpenFlow switch. Note that this list specifically enumerates the leaf nodes. When the config path is mentioned, it is implicit that the equivalent state path is also supported.
https://github.com/openconfig/public/tree/master/release/models/openflow Must support the whole model. Exceptions should be communicated for assessment.
/system/openflow/controllers/controller/config/name
/system/openflow/controllers/controller/connections/connection/config/aux-id
/system/openflow/controllers/controller/connections/connection/config/priority
/system/openflow/controllers/controller/connections/connection/config/address
/system/openflow/controllers/controller/connections/connection/config/port
/system/openflow/controllers/controller/connections/connection/config/transport
/system/openflow/controllers/controller/connections/connection/config/certificate-id
/system/openflow/controllers/controller/connections/connection/config/source-interface
/system/openflow/controllers/controller/connections/connection/status/connected
/system/openflow/agent/config/datapath-id
/system/openflow/agent/config/failure-mode
/system/openflow/agent/config/backoff-interval
/system/openflow/agent/config/max-backoff
/system/openflow/agent/config/inactivity-probe
https://github.com/openconfig/public/tree/master/release/models/system Must support enabling and setting NTP server address.
/system/ntp/config/enabled
/system/ntp/servers/server/config/address
Must support setting the time zone name, the hostname and domain-name.
/system/clock/config/timezone-name
/system/config/hostname
/system/config/domain-name
Must support presenting the last time the switch booted.
/system/state/boot-time
Must support setting at least one username and matching password.
/system/aaa/authentication/users/user/config/username
/system/aaa/authentication/users/user/config/password
Must support setting remote syslog.
/system/logging/remote-servers/remote-server/config/host
/system/logging/remote-servers/remote-server/config/remote-port
Must support SSH.
/system/ssh-server/config/enable
/system/ssh-server/config/protocol-version
/system/ssh-server/config/timeout
/system/ssh-server/config/rate-limit
/system/ssh-server/config/session-limit
https://github.com/openconfig/public/tree/master/release/models/platform Components can be hardware components. E.g.: cpu, fan, power supply, sensor, transceiver, port, module, line card, chassis, etc.. Components can also be software. E.g.: OS. Components are categorized into well defined and enumerated types. E.g.: CPU, OS, power supply, etc.. Must support reporting various data for chassis or line cards.
/components/component/state/name
/components/component/state/type
/components/component/state/id
/components/component/state/description
/components/component/state/mfg-name
/components/component/state/mfg-date
/components/component/state/hardware-version
/components/component/state/firmware-version
/components/component/state/software-version
/components/component/state/serial-no
/components/component/state/part-no
Must support reporting individual fan speeds.
/components/component/fan/state/speed
Must support reporting individual power supply data.
/components/component/power-supply/state/enabled
/components/component/power-supply/state/capacity
/components/component/power-supply/state/input-current
/components/component/power-supply/state/input-voltage
/components/component/power-supply/state/output-current
/components/component/power-supply/state/output-voltage
/components/component/power-supply/state/output-power
Must support reporting cpu utilization data.
/components/component/cpu/utilization/state/instant
/components/component/cpu/utilization/state/avg
/components/component/cpu/utilization/state/min
/components/component/cpu/utilization/state/max
/components/component/cpu/utilization/state/interval
/components/component/cpu/utilization/state/min-time
/components/component/cpu/utilization/state/max-time
Must support reporting memory utilization data.
/components/component/state/memory/available
/components/component/state/memory/utilized
Must support reporting temperature from individual sensors.
/components/component/state/temperature/instant
/components/component/state/temperature/avg
/components/component/state/temperature/min
/components/component/state/temperature/max
/components/component/state/temperature/interval
/components/component/state/temperature/min-time
/components/component/state/temperature/max-time
/components/component/state/temperature/alarm-status
/components/component/state/temperature/alarm-threshold
/components/component/state/temperature/alarm-severity
Must support reporting various transceiver data.
/components/component/transceiver/state/vendor
/components/component/transceiver/state/vendor-part
/components/component/transceiver/state/vendor-rev
/components/component/transceiver/state/serial-no
/components/component/transceiver/state/form-factor
/components/component/transceiver/state/connector-type
/components/component/transceiver/state/output-power/instant
/components/component/transceiver/state/output-power/avg
/components/component/transceiver/state/output-power/min
/components/component/transceiver/state/output-power/max
/components/component/transceiver/state/output-power/interval
/components/component/transceiver/state/output-power/min-time
/components/component/transceiver/state/output-power/max-time
/components/component/transceiver/state/input-power/instant
/components/component/transceiver/state/input-power/avg
/components/component/transceiver/state/input-power/min
/components/component/transceiver/state/input-power/max
/components/component/transceiver/state/input-power/interval
/components/component/transceiver/state/input-power/min-time
/components/component/transceiver/state/input-power/max-time
/components/component/transceiver/state/laser-bias-current/instant
/components/component/transceiver/state/laser-bias-current/avg
/components/component/transceiver/state/laser-bias-current/min
/components/component/transceiver/state/laser-bias-current/max
/components/component/transceiver/state/laser-bias-current/interval
/components/component/transceiver/state/laser-bias-current/min-time
/components/component/transceiver/state/laser-bias-current/max-time
https://github.com/openconfig/public/tree/master/release/models/interfaces OpenFlow already collects a fair bit of information from the interfaces in regards to data plane. The ifindex must match the OpenFlow port number. The name must match the one in OFPortDesc.
/interfaces/interface/config/enabled
/interfaces/interface/state/name
/interfaces/interface/state/type
/interfaces/interface/state/description
/interfaces/interface/state/ifindex
/interfaces/interface/state/oper-status
All ports should have PoE enabled by default. However, it should be possible to disable PoE in individual ports.
/interfaces/interface/ethernet/poe/config/enabled
/interfaces/interface/ethernet/poe/state/power-used
/interfaces/interface/ethernet/poe/state/power-class
For platforms that support MACsec, all of the MACsec model must be supported.
/macsec/mka/policies/...
/macsec/mka/key-chains/...
/macsec/mka/state/...
/macsec/interfaces/...
The following leafs are required if the Target uses Licenses.
/system/license/...
The following leafs are required.
/system/grpc-server/config/enable
/system/grpc-server/config/port
/system/grpc-server/config/transport-security (not required if gNMI uses encryption and authentication via certificates)
/system/grpc-server/config/certificate-id
/system/grpc-server/config/metadata-authentication (not required if defaulted to false as in the model)
Any other service not mentioned in this document must be disabled by default. For instances where this is not the case, OpenConfig paths must be provided in order to disable them.
The management interface must have DHCP enabled by default. Setting the following leafs is required.
/interfaces/interface/subinterfaces/subinterface/ipv4/config/enabled
/interfaces/interface/subinterfaces/subinterface/ipv4/config/dhcp-client
/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/config/ip
/interfaces/interface/subinterfaces/subinterface/ipv4/addresses/address/config/prefix-length