oopt-goldstone / goldstone-mgmt

TIP Goldstone management layer implementation
Apache License 2.0
7 stars 9 forks source link

xlate/openconfig: disable client-signal-mapping-type configuration #67

Open noguchiko opened 2 years ago

noguchiko commented 2 years ago

This change disables a clinet-signal-mapping-type configuration as a part of optical-channel's operational-mode configuration. Because the attribute is not yet a standard TAI attribute. So common TAI adapters do not support it. This change allows users to configure optical-channel's operational-mode with common TAI adapters.

ishidawataru commented 2 years ago

@noguchiko What is the current behavior if client-signal-mapping-type is not supported by the TAI adapter? south-tai rejects the changes?

noguchiko commented 2 years ago

@ishidawataru

What is the current behavior if client-signal-mapping-type is not supported by the TAI adapter? south-tai rejects the changes?

Yes it does. A set operational-mode operation will fail because south-tai rejects a change for client-signal-mapping-type.


client

$ gnmic -a 192.168.10.37:51052 -u nil -p nil --insecure --timeout 30s set --update-path /openconfig-platform:components/component[name=och-transceiver-line-piu2-0]/config/name --update-value och-transceiver-line-piu2-0 --update-path /openconfig-platform:components/component[name=och-transceiver-line-piu2-0]/openconfig-terminal-device:optical-channel/config/operational-mode --update-value 400
target "192.168.10.37:51052" set request failed: target "192.168.10.37:51052" SetRequest failed: rpc error: code = Aborted desc = failed to apply changes. Apply changes to the repository failed: apply failed. unsupported attribute: client-signal-mapping-type, <class 'goldstone.north.gnmi.repo.repo.ApplyFailedError'>
Error: one or more requests failed

xlate-oc

DEBUG core change_cb l.122 | id: 1, event: change, changes: [ChangeCreated(/openconfig-platform:components/component[name='och-transceiver-line-piu2-0']: {'name': 'och-transceiver-line-piu2-0', 'config': {'name': 'och-transceiver-line-piu2-0'}, 'power-supply': {'config': {'enabled': True}}, 'optical-channel': {'config': {'operational-mode': 400}}}), ChangeCreated(/openconfig-platform:components/component[name='och-transceiver-line-piu2-0']/name: 'och-transceiver-line-piu2-0'), ChangeCreated(/openconfig-platform:components/component[name='och-transceiver-line-piu2-0']/config: {'name': 'och-transceiver-line-piu2-0'}), ChangeCreated(/openconfig-platform:components/component[name='och-transceiver-line-piu2-0']/config/name: 'och-transceiver-line-piu2-0'), ChangeCreated(/openconfig-platform:components/component[name='och-transceiver-line-piu2-0']/power-supply: {'config': {'enabled': True}}), ChangeCreated(/openconfig-platform:components/component[name='och-transceiver-line-piu2-0']/power-supply/config: {'enabled': True}), ChangeCreated(/openconfig-platform:components/component[name='och-transceiver-line-piu2-0']/power-supply/config/openconfig-platform-psu:enabled: True), ChangeCreated(/openconfig-platform:components/component[name='och-transceiver-line-piu2-0']/openconfig-terminal-device:optical-channel: {'config': {'operational-mode': 400}}), ChangeCreated(/openconfig-platform:components/component[name='och-transceiver-line-piu2-0']/openconfig-terminal-device:optical-channel/config: {'operational-mode': 400}), ChangeCreated(/openconfig-platform:components/component[name='och-transceiver-line-piu2-0']/openconfig-terminal-device:optical-channel/config/operational-mode: 400)]
DEBUG sysrepo get l.71 | xpath: /goldstone-transponder:modules/module[name='piu2']/network-interface[name='0'], ds: running, not found. returning None
INFO lib validate l.142 | Given service value: 400
DEBUG lib validate l.146 | Validated Goldstone value: ('400g', 'dp-16-qam', 'ofec', 'flexo-lr')
DEBUG sysrepo get l.71 | xpath: /goldstone-transponder:modules/module[name='piu2'], ds: running, not found. returning None
DEBUG sysrepo get l.71 | xpath: /goldstone-transponder:modules/module[name='piu2']/network-interface[name='0'], ds: running, not found. returning None
ERROR lib post l.307 | Failed to apply changes. unsupported attribute: client-signal-mapping-type

xlate-oc received an unsupported attribute: client-signal-mapping-type error.

south-tai

DEBUG core change_cb l.122 | id: 1, event: change, changes: [ChangeCreated(/goldstone-transponder:modules/module[name='piu2']: {'name': 'piu2', 'config': {'name': 'piu2'}, 'network-interface': [{'name': '0', 'config': {'name': '0', 'line-rate': '400g', 'modulation-format': 'dp-16-qam', 'fec-type': 'ofec', 'client-signal-mapping-type': 'flexo-lr'}}]}), ChangeCreated(/goldstone-transponder:modules/module[name='piu2']/name: 'piu2'), ChangeCreated(/goldstone-transponder:modules/module[name='piu2']/config: {'name': 'piu2'}), ChangeCreated(/goldstone-transponder:modules/module[name='piu2']/config/name: 'piu2'), ChangeCreated(/goldstone-transponder:modules/module[name='piu2']/network-interface[name='0']: {'name': '0', 'config': {'name': '0', 'line-rate': '400g', 'modulation-format': 'dp-16-qam', 'fec-type': 'ofec', 'client-signal-mapping-type': 'flexo-lr'}}), ChangeCreated(/goldstone-transponder:modules/module[name='piu2']/network-interface[name='0']/name: '0'), ChangeCreated(/goldstone-transponder:modules/module[name='piu2']/network-interface[name='0']/config: {'name': '0', 'line-rate': '400g', 'modulation-format': 'dp-16-qam', 'fec-type': 'ofec', 'client-signal-mapping-type': 'flexo-lr'}), ChangeCreated(/goldstone-transponder:modules/module[name='piu2']/network-interface[name='0']/config/name: '0'), ChangeCreated(/goldstone-transponder:modules/module[name='piu2']/network-interface[name='0']/config/line-rate: '400g'), ChangeCreated(/goldstone-transponder:modules/module[name='piu2']/network-interface[name='0']/config/modulation-format: 'dp-16-qam'), ChangeCreated(/goldstone-transponder:modules/module[name='piu2']/network-interface[name='0']/config/fec-type: 'ofec'), ChangeCreated(/goldstone-transponder:modules/module[name='piu2']/network-interface[name='0']/config/client-signal-mapping-type: 'flexo-lr')]
DEBUG transponder get_module_from_xpath l.677 | xpath: [('goldstone-transponder', 'modules', []), (None, 'module', [('name', 'piu2')]), (None, 'config', [])]
INFO transponder _init l.123 | obj: <taish.Module object at 0xffff9c5350f0>, xpath: [(None, 'config', [])]
DEBUG transponder get_module_from_xpath l.677 | xpath: [('goldstone-transponder', 'modules', []), (None, 'module', [('name', 'piu2')]), (None, 'config', []), (None, 'name', [])]
INFO transponder _init l.123 | obj: <taish.Module object at 0xffff9c5391b0>, xpath: [(None, 'config', []), (None, 'name', [])]
DEBUG transponder get_module_from_xpath l.677 | xpath: [('goldstone-transponder', 'modules', []), (None, 'module', [('name', 'piu2')]), (None, 'network-interface', [('name', '0')]), (None, 'config', [])]
DEBUG transponder get_module_from_xpath l.677 | xpath: [('goldstone-transponder', 'modules', []), (None, 'module', [('name', 'piu2')]), (None, 'network-interface', [('name', '0')]), (None, 'config', []), (None, 'name', [])]
DEBUG transponder get_module_from_xpath l.677 | xpath: [('goldstone-transponder', 'modules', []), (None, 'module', [('name', 'piu2')]), (None, 'network-interface', [('name', '0')]), (None, 'config', []), (None, 'line-rate', [])]
INFO transponder validate l.65 | cap: attr_id: 9
default_value: "400g"
supportedvalues: "100g"
supportedvalues: "200g"
supportedvalues: "300g"
supportedvalues: "400g"

DEBUG sysrepo get l.88 | xpath: /goldstone-transponder:modules, ds: running, value: {}
DEBUG transponder get_module_from_xpath l.677 | xpath: [('goldstone-transponder', 'modules', []), (None, 'module', [('name', 'piu2')]), (None, 'network-interface', [('name', '0')]), (None, 'config', []), (None, 'modulation-format', [])]
INFO transponder validate l.65 | cap: attr_id: 10
default_value: "dp-16-qam"
supportedvalues: "dp-qpsk"
supportedvalues: "dp-8-qam"
supportedvalues: "dp-16-qam"

DEBUG transponder get_module_from_xpath l.677 | xpath: [('goldstone-transponder', 'modules', []), (None, 'module', [('name', 'piu2')]), (None, 'network-interface', [('name', '0')]), (None, 'config', []), (None, 'fec-type', [])]
INFO transponder validate l.65 | cap: attr_id: 11
default_value: "ofec"
supportedvalues: "sc-fec"
supportedvalues: "cfec"
supportedvalues: "ofec"
supportedvalues: "hg-fec"

DEBUG transponder get_module_from_xpath l.677 | xpath: [('goldstone-transponder', 'modules', []), (None, 'module', [('name', 'piu2')]), (None, 'network-interface', [('name', '0')]), (None, 'config', []), (None, 'client-signal-mapping-type', [])]

It seems there are no supported values for the attribute client-signal-mapping-type.

ishidawataru commented 2 years ago

@noguchiko I think the current behavior is valid. xlate-oc should not skip setting client-signal-mapping-type. Which TAI adapter are you using? libtai-ldc.so? In that case, I think I can add support of client-signal-mapping-type relatively soon.

noguchiko commented 2 years ago

@ishidawataru

Which TAI adapter are you using? libtai-ldc.so?

Yes.

In that case, I think I can add support of client-signal-mapping-type relatively soon.

It sounds good to me! Should I create an issue for the work?

ishidawataru commented 2 years ago

@noguchiko Yes, please. The TAI adapters don't have their own open repo and binary-distributed ATM. Please open an issue in goldstone-buildimages repo.