haomianzheng / IETF-ACTN-YANG-Model

IETF Optical YANG models in ACTN Architecture
4 stars 4 forks source link

ODUflex bandwidth representation #97

Closed italobusi closed 2 years ago

italobusi commented 2 years ago

In draft-ietf-ccamp-layer1-types-11, the uint64 (in kbit/s) is used to represent the ODUflex nominal bit rate as well as the OPUflex payload rate:

          +--rw (oduflex-type)?
             +--:(generic)
             |  +--rw nominal-bit-rate        uint64
             ..........................................
             +--:(packet)
                +--rw opuflex-payload-rate    uint64

The definition of the bandwidth bit rate in YANG is still under discussion. In control plane binary protocols this information is usually encoded in IEEE floating point but the bandwidth-ieee-float32 data type defined in RFC 8294 is quite unfriendly to text protocols like YANG …

The uint64 in kbps is also a bit unfriendly with large bandwidth values (think about 1Gbps in uint64)

See also:

https://github.com/ietf-ccamp-wg/draft-ietf-ccamp-client-signal-yang/issues/7

https://github.com/tsaad-dev/te/issues/116

Maybe the bandwidth-scientific-notation defined in draft-ietf-teas-yang-l3-te-topo-12 could be a better option:

          +--rw (oduflex-type)?
             +--:(generic)
             |  +--rw nominal-bit-rate        te-pkt-types:bandwidth-scientific-notation
             ..........................................
             +--:(packet)
                +--rw opuflex-payload-rate    te-pkt-types:bandwidth-scientific-notation

Thinking further, maybe this data type should be moved to the te-types (revision) since it has broader applicability than just packet networks

The drawback is that we create a dependency between the l1-types and another TEAS draft

italobusi commented 2 years ago

See: https://datatracker.ietf.org/doc/html/draft-busi-teas-te-types-update

Draft to be discussed at IETF 113: waiting for the output of that discussion

italobusi commented 2 years ago

Regarding the lossless translation issue discussed in https://github.com/ietf-ccamp-wg/draft-ietf-ccamp-client-signal-yang/issues/7#issue-1063663889

An alternative option could be to define the bandwidth as a union between the bandwidth-scientific-notation data type and the floating point data type: