openBackhaul / ethernetContainer

Technology specific interface definition for an Ethernet Container
Apache License 2.0
1 stars 0 forks source link

How can header compression be switched off? #29

Closed michbin closed 2 years ago

michbin commented 4 years ago

The ethernet-container-configuration/header-compression-kind attribute is used to configure a certain header compression mode. This is done by selecting the name of the desired mode from the supported-header-compression-kind-list.

It is not clear how header compression can be disabled (switched off).

niloda commented 4 years ago

A solution could be to create an header compression profile in supported-header-compression-kind-list which does not perform any compression and set header-compression-kind to point to this profile.

The profile can be created with the following parameters:

header-compression-name = "Disable" header-compression-mode = HEADER_COMPRESSION_MODE_TYPE_PROTOCOL_BASED (or HEADER_COMPRESSION_MODE_TYPE_LENGTH_BASED) compressed-protocol-layer-list = PROTOCOL_LAYER_TYPE_NONE (only one element in the list) mpls-payload-kind-list = MPLS_PAYLOAD_KIND_TYPE_NONE (only one element in the list) compressed-header-length = -1 (or 0)

Since header-compression-kind must point to an existng profile, the proposed profile can be used for those devices that do not implement the header compression to meet this rule, and for any other device to disable the header compression

demx8as6 commented 4 years ago

Looking to the yang tree:

   |  +--rw header-compression-kind?                  -> /core-model:control-construct/logical-termination-point/layer-protocol/ethernet-container:ethernet-container-pac/ethernet-container-capability/supported-header-compression-kind-list/header-compression-name

The parameter "header-compression-kind" is an optional parameter and can be removed by the client. If the parameter "header-compression-kind" is removed from the ...-configuration data tree, no compression is set.

michbin commented 4 years ago

header-compression-name = "Disable" header-compression-mode = HEADER_COMPRESSION_MODE_TYPE_PROTOCOL_BASED (or HEADER_COMPRESSION_MODE_TYPE_LENGTH_BASED) compressed-protocol-layer-list = PROTOCOL_LAYER_TYPE_NONE (only one element in the list) mpls-payload-kind-list = MPLS_PAYLOAD_KIND_TYPE_NONE (only one element in the list) compressed-header-length = -1 (or 0)

In that case I would rather prefer to have HEADER_COMPRESSION_MODE_TYPE_NONE (which is not currently defined).

If the parameter "header-compression-kind" is removed from the ...-configuration data tree, no compression is set.

Would this also apply if the configuration data is retrieved? That is, would the header-compression-kind attribute be omitted if header compression is disabled? (There is no default value for a leaf-ref.)

niloda commented 4 years ago

In that case I would rather prefer to have HEADER_COMPRESSION_MODE_TYPE_NONE (which is not currently defined).

I think it's a good idea, but we must be willing to update the YANG module.

If the parameter "header-compression-kind" is removed from the ...-configuration data tree, no compression is set.

I would prefer to set header-compression-kind with a consistent value, in this case with a reference to an existing profile, instead of removing it in order to disable the header compression,

niloda commented 4 years ago

header-compression-name = "Disable" I would suggest changing the name of this profile to something like "no-compression"

demx8as6 commented 4 years ago

According to the discussion in ONF-5G-xHaul call from 2020-04-22

Solution: Add new enumeration (in yang an additional identity statement) called "HEADER_COMPRESSION_MODE_TYPE_NO_COMPRESSION". UML and yang needs to be updated.

openBackhaul commented 4 years ago

Decision made on the 5G-xhaul-call on 22nd of April 2020:: Change on the modeling: The headerCompressionModeType enumeration attribute is to be amended by the value "NO_COMPRESSION", respectively "HEADER_COMPRESSION_MODE_TYPE_NO_COMPRESSION" in the YANG. During interface design time: An instance of HeaderCompressionKind has to be created. The key attribute headerCompressionName is free to be chosen by the vendor. The headerCompressionMode has to be chosen to be "NO_COMPRESSION". The rest of attributes to have their default values. During interface applying time: The afore mentioned instance of HeaderCompressionKind to be chose for switching off the the header compression.

openBackhaul commented 2 years ago

Fixed with EthernetContainer_2.0.0-tsp.220405.1755.