openBackhaul / MacAddressTableRecorder

Markus' first Application on the MW SDN Controller
Apache License 2.0
4 stars 0 forks source link

Clarification on /v1/provide-list-of-network-element-interfaces-on-path-in-generic-representation #134

Open schiavi-siae opened 12 months ago

schiavi-siae commented 12 months ago

/v1/provide-list-of-network-element-interfaces-on-path-in-generic-representation, the operation, input, and output are not clear. Can we have a more detailed description?

kurzkama commented 11 months ago

Hi Valentina,

you already implemented /v1/provide-list-of-network-element-interfaces-on-path. So I think your question is the how the input and output in generic representations is handled?

When the GUI of the generic representation is opened (with /v1/start-application-in-generic-representation) you have to add an additional field for the MATR application. The content of the field is described in the profile instance list:

From MacAddressTableRecorder+profileInstances.yaml

If the user enters a valid MAC Address ('TargetMacAddress') the MATR applications collects the same data as in /v1/provide-list-of-network-element-interfaces-on-path and provides the data to the user in generic representation as described below:

From MacAddressTableRecorder+profileInstances.yaml

Have I understood the problem correctly, otherwise please contact me again.

Best Regards Markus

schiavi-siae commented 10 months ago

Thank you for the response, but I still need clarification to proceed.

1)

When the GUI of the generic representation is opened (with /v1/start-application-in-generic-representation) you have to add an additional field for the MATR application. The content of the field is described in the profile instance list:

From MacAddressTableRecorder+profileInstances.yaml

 

  - profile-name: 'ActionProfile'

    uuid: 'matr-1-0-0-action-p-003'

    capability:

      operation-name: '/v1/start-application-in-generic-representation'

      label: 'List network element interfaces on path to target MAC address'

      input-value-list:

        - field-name: 'TargetMacAddress'

      display-in-new-browser-window: false

    configuration:

      consequent-operation-reference: '/core-model-1-4:control-construct/logical-termination-point=matr-1-0-0-op-s-is-004/layer-protocol=0/operation-server-interface-1-0:operation-server-interface-pac/operation-server-interface-capability/operation-name'.

<<<<<<<

Where should the matr-1-0-0-action-p-003 field be inserted? It's already existing in the MacAddressTableRecorder+profileInstances.yaml and when i call /v1/start-application-in-generic-representation the result alrady contains the information related to provide-list-of-network-element-interfaces-on-path-in-generic-representation, 

 {

  "consequent-action-list": [     {       "label": "Inform about Application",       "request": "http://127.0.0.1:8080/v1/inform-about-application-in-generic-representation",       "display-in-new-browser-window": false,       "input-value-list": []     },     {       "label": "List network element interfaces on path to target network element",       "request": "http://127.0.0.1:8080/v1/provide-list-of-network-element-interfaces-on-path-in-generic-representation",       "display-in-new-browser-window": false,       "input-value-list": [         {           "field-name": "TargetMacAddress"         }       ]     }   ],   "response-value-list": [     {       "value": "MacAddressTableRecorder",       "datatype": "string",       "field-name": "applicationName"     }   ] }

If I understood correctly and if that's what you meant.

2) The final result of the correct operation, the one that would return 200 as an HTTP code, should be something like this? {   "consequent-action-list": [     {       "label": "Release History",       "request": "http://127.0.0.1:8080/v1/provide-list-of-network-element-interfaces-on-path-in-generic-representation",       "display-in-new-browser-window": false,       "input-value-list": [        {       "field-name": "TargetMacAddress",       "field-value": "01:01:01:01:01:01"        }       ]     }   ],   "response-value-list": [         {       "value": "513250009:01:01:01:01:01:01",       "datatype": "string",       "field-name": "listOfNetworkElementInterfacesOnPath"     }     {       "value": "513250008:01:01:01:01:01:01",       "datatype": "string",       "field-name": "listOfNetworkElementInterfacesOnPath"     }   ] }