Skip to content

BasicFlow in Federator network does not change path attribute by domain driver request #215

@pavellikin

Description

@pavellikin

Dear Odenos community,

We observed an issue with Federated network during internal testing. We tried to test the following scenario:

  1. Our logic application already installed BasicFlow with specified path attribute on the Federated network. Established flow status was already received from both domain drivers.
  2. We simulated some network fault. Domain controller recalculates the path by itself and notify own driver. Driver recognized new path, requested BasicFlow from NetworkInterface, changed BasicFlow path attribute and push it into Odenos.
  3. We did not receive onFlowUpdate in our logic component after all actions.

Please find BasicFlow push steps in the driver logs file:

2015-11-17 09:44:14:812 INFO  OdenosAdapterDriver:380 - [OUT] Push flow to Odenos: flow org.o3project.odenos.core.component.network.flow.basic.BasicFlow@36c4618a[version=1,flowId=1_1,owner=test_23,enabled=true,priority=0,status=established,matches=[org.o3project.odenos.core.component.network.flow.basic.BasicFlowMatch@16dfc71d[inNode=Node1,inPort=1_0_0_0_0_1]],path=[LINK1_0_0_0_0_2_2_0_0_0_0_2, LINK2_0_0_0_0_4_4_0_0_0_0_2],edgeActions={Node4=[org.o3project.odenos.core.component.network.flow.basic.FlowActionOutput@3d894ca6[output=4_0_0_0_0_5]]},attributes={}]
2015-11-17 09:44:14:824 DEBUG OdenosAdapterDriver:382 - pushFlow() -> Received: 200

2015-11-17 09:44:54:826 INFO  OdenosAdapterDriver:380 - [OUT] Push flow to Odenos: flow org.o3project.odenos.core.component.network.flow.basic.BasicFlow@36c4618a[version=2,flowId=1_1,owner=test_23,enabled=true,priority=0,status=established,matches=[org.o3project.odenos.core.component.network.flow.basic.BasicFlowMatch@16dfc71d[inNode=Node1,inPort=1_0_0_0_0_1]],path=[LINK1_0_0_0_0_4_2_0_0_0_0_5, LINK2_0_0_0_0_4_4_0_0_0_0_2],edgeActions={Node4=[org.o3project.odenos.core.component.network.flow.basic.FlowActionOutput@3d894ca6[output=4_0_0_0_0_5]]},attributes={}]
2015-11-17 09:44:54:827 DEBUG OdenosAdapterDriver:382 - pushFlow() -> Received: 200

2015-11-17 09:44:54:828 INFO  OdenosAdapterDriver:203 - [IN] On flow updated: network original-nw1, flow org.o3project.odenos.core.component.network.flow.basic.BasicFlow@7b0aa31f[version=2,flowId=1_1,owner=test_23,enabled=true,priority=0,status=established,matches=[org.o3project.odenos.core.component.network.flow.basic.BasicFlowMatch@775b8754[inNode=Node1,inPort=1_0_0_0_0_1]],path=[LINK1_0_0_0_0_2_2_0_0_0_0_2, LINK2_0_0_0_0_4_4_0_0_0_0_2],edgeActions={Node4=[org.o3project.odenos.core.component.network.flow.basic.FlowActionOutput@1a11d904[output=4_0_0_0_0_5]]},attributes={}]
2015-11-17 09:44:54:829 INFO  OdenosAdapterDriver:203 - [IN] On flow updated: network original-nw1, flow org.o3project.odenos.core.component.network.flow.basic.BasicFlow@42be11bc[version=3,flowId=1_1,owner=test_23,enabled=true,priority=0,status=established,matches=[org.o3project.odenos.core.component.network.flow.basic.BasicFlowMatch@4c7e6fdf[inNode=Node1,inPort=1_0_0_0_0_1]],path=[LINK1_0_0_0_0_4_2_0_0_0_0_5, LINK2_0_0_0_0_4_4_0_0_0_0_2],edgeActions={Node4=[org.o3project.odenos.core.component.network.flow.basic.FlowActionOutput@e2c0b5[output=4_0_0_0_0_5]]},attributes={}]

We checked both original and Federated networks and observed that BasicFlow path attribute was changed in the original network, but nor in Federated.
Please find these REST GET responses that illustrate described Odenos state:

http://localhost:10080/federated-nw/flows
{
  "priority": {
    "0": [
      "1"
    ]
  },
  "type": "FlowSet",
  "flows": {
    "1": {
      "enabled": true,
      "matches": [
        {
          "in_port": "original-nw1_Node1_1_0_0_0_0_1",
          "in_node": "original-nw1_Node1",
          "type": "BasicFlowMatch"
        }
      ],
      "flow_id": "1",
      "status": "established",
      "edge_actions": {
        "original-nw0_S0001-1": [
          {
            "output": "original-nw0_S0001-1_S0001-1_0_4_9_0_1",
            "type": "FlowActionOutput"
          }
        ]
      },
      "priority": "0",
      "path": [
        "original-nw1_LINK1_0_0_0_0_2_2_0_0_0_0_2",
        "original-nw1_LINK2_0_0_0_0_4_4_0_0_0_0_2",
        "federator_boundary4_link01",
        "original-nw2_LINKof:000000000000000c_0_0_0_0_1_of:0000000000000001_0_0_0_0_3",
        "original-nw2_LINKof:0000000000000001_0_0_0_0_4_of:000000000000000d_0_0_0_0_1",
        "federator_boundary1_link02",
        "original-nw0_3_1005002_1_1001001_719285823882225"
      ],
      "owner": "test_23",
      "attributes": {},
      "type": "BasicFlow",
      "version": "2"
    }
  },
  "version": "2"
}

http://localhost:10080/original-nw1/flows
{
  "priority": {
    "0": [
      "1_1"
    ]
  },
  "type": "FlowSet",
  "flows": {
    "1_1": {
      "enabled": true,
      "matches": [
        {
          "in_port": "1_0_0_0_0_1",
          "in_node": "Node1",
          "type": "BasicFlowMatch"
        }
      ],
      "flow_id": "1_1",
      "status": "established",
      "edge_actions": {
        "Node4": [
          {
            "output": "4_0_0_0_0_5",
            "type": "FlowActionOutput"
          }
        ]
      },
      "priority": "0",
      "path": [
        "LINK1_0_0_0_0_4_2_0_0_0_0_5",
        "LINK2_0_0_0_0_4_4_0_0_0_0_2"
      ],
      "owner": "test_23",
      "attributes": {},
      "type": "BasicFlow",
      "version": "3"
    }
  },
  "version": "3"
}

Could you please elaborate - is described scenario valid or not?
Is it possible to trigger path attribute change from driver level?

Thanks,
Pavel.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions