Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Associate flows and make them diverse (ie Anti-Affinity) #1231

Closed
pzakatov opened this issue Aug 30, 2018 · 5 comments
Closed

Associate flows and make them diverse (ie Anti-Affinity) #1231

pzakatov opened this issue Aug 30, 2018 · 5 comments
Labels
area/arch Architecture Backlog feature

Comments

@pzakatov
Copy link
Collaborator

pzakatov commented Aug 30, 2018

example:
Customer wants to have reduncancy on the 2 flows so they reside on different switches and/or ISLs

amount of associated flows could be more than 2

Key Use Cases:

  1. Give me a path B that has no overlap with path A.
  2. Give me a path B that has minimal overlap with path A (ie zero overlap preferred, followed by fewest intersection)
  3. Allow grooming to take place in order to satisfy use case 1 or 2 (ie what if we moved some paths around, could that allow use case 1, or have a better story for 2)
@shusyaM
Copy link
Collaborator

shusyaM commented Aug 30, 2018

  • related flows (need to define how the relation would be calculated) should reside on different inital and reroute paths: isl and switches

@timofei-durakov
Copy link
Collaborator

timofei-durakov commented Nov 2, 2018

  • define model updates to build flow groups (Design required first)
  • define API changes (Design required first)
  • update domain model objects and DTOs, including converters
  • introduce changes in WFM Flow topology(create, update, reroute)

@carmine carmine changed the title associate flows and make them diverse Associate flows and make them diverse (ie Anti-Affinity) Jan 9, 2019
@carmine
Copy link
Collaborator

carmine commented Jan 9, 2019

I've updated the Description with the following:

Key Use Cases:

  1. Give me a path B that has no overlap with path A.
  2. Give me a path B that has minimal overlap with path A (ie zero overlap preferred, followed by fewest intersection)
  3. Allow grooming to take place in order to satisfy use case 1 or 2 (ie what if we moved some paths around, could that allow use case 1, or have a better story for 2)

@pzakatov
Copy link
Collaborator Author

pzakatov commented Jan 25, 2019

Path response example for if a flow marked as diverse

{
  "flowid": "flow",
  "flowpath_forward": [
    {"input_port": 12,"output_port": 1,"switch_id": "00:00:00:00:00:00:01:02"},
    {"input_port": 2,"output_port": 1,"switch_id": "00:00:00:00:00:00:01:01"}
  ],
  "flowpath_reverse": [
    {"input_port": 1,"output_port": 2,"switch_id": "00:00:00:00:00:00:01:01"},
    {"input_port": 1,"output_port": 12,"switch_id": "00:00:00:00:00:00:01:02"
    }
  ],
  "diverse_group": {
    "overlapping_segments": {
      "isl_count": 0,
      "switch_count": 2,
      "isl_percent": 0,
      "switch_percent": 100
    },
    "other_flows": [
      {
        "flowid": "diverse1",
        "flowpath_forward": [
          {"input_port": 13,"output_port": 5,"switch_id": "00:00:00:00:00:00:01:02"},
          {"input_port": 5,"output_port": 1,"switch_id": "00:00:00:00:00:00:01:03"}
        ],
        "flowpath_reverse": [
          {"input_port": 1,"output_port": 5,"switch_id": "00:00:00:00:00:00:01:03"},
          {"input_port": 5,"output_port": 13,"switch_id": "00:00:00:00:00:00:01:02"}
        ],
        "overlapping_segments": {
          "isl_count": 0,
          "switch_count": 1,
          "isl_percent": 0,
          "switch_percent": 50
        }
      },
      {
        "flowid": "diverse2",
        "flowpath_forward": [
          {"input_port": 20,"output_port": 7,"switch_id": "00:00:00:00:00:00:01:01"},
          {"input_port": 5,"output_port": 1,"switch_id": "00:00:00:00:00:00:01:04"}
        ],
        "flowpath_reverse": [
          {"input_port": 5,"output_port": 1,"switch_id": "00:00:00:00:00:00:01:04"},
          {"input_port": 7,"output_port": 20,"switch_id": "00:00:00:00:00:00:01:01"}
        ],
        "overlapping_segments": {
          "isl_count": 0,
          "switch_count": 1,
          "isl_percent": 0,
          "switch_percent": 50
        }
      }
    ]
  }
}

where:

  • other_flows - other flows in this diverse group
  • isl_count - amount of ISLs overlapped between this flow and all other in the group or a particular flow
  • switch_count - amount of switches overlapped between this flow and all other in the group or a particular flow
  • isl_percent - isl_count divided by total ISLs in this group or a particular flow
  • switch_percent - switch_count divided by total switches in this group or a particular flow

@IlyaMoiseev
Copy link
Collaborator

Implemented

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/arch Architecture Backlog feature
Projects
Archived in project
Development

No branches or pull requests

5 participants