Committed by
Gerrit Code Review
[Falcon] Cleanup of unused annotations in optical test topos.
First round of cleanups in opticalUtils.py. Change-Id: I5f627fc471220c3a7194d913764f8c84e6f0fe6e
Showing
4 changed files
with
90 additions
and
90 deletions
| ... | @@ -90,7 +90,7 @@ class OpticalDomain(Domain): | ... | @@ -90,7 +90,7 @@ class OpticalDomain(Domain): |
| 90 | oean = { "optical.regens": 0 } | 90 | oean = { "optical.regens": 0 } |
| 91 | self.addSwitch('OE%s' % i, dpid='0000ffffffffff0%s' % i, annotations=oean, cls=LINCSwitch) | 91 | self.addSwitch('OE%s' % i, dpid='0000ffffffffff0%s' % i, annotations=oean, cls=LINCSwitch) |
| 92 | 92 | ||
| 93 | - an = { "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" } | 93 | + an = { "durable": "true" } |
| 94 | self.addLink('OE1', 'OE2', port1=50, port2=30, annotations=an, cls=LINCLink) | 94 | self.addLink('OE1', 'OE2', port1=50, port2=30, annotations=an, cls=LINCLink) |
| 95 | self.addLink('OE2', 'OE3', port1=50, port2=30, annotations=an, cls=LINCLink) | 95 | self.addLink('OE2', 'OE3', port1=50, port2=30, annotations=an, cls=LINCLink) |
| 96 | self.addLink('OE3', 'OE1', port1=50, port2=30, annotations=an, cls=LINCLink) | 96 | self.addLink('OE3', 'OE1', port1=50, port2=30, annotations=an, cls=LINCLink) |
| ... | @@ -188,7 +188,7 @@ def setup(argv): | ... | @@ -188,7 +188,7 @@ def setup(argv): |
| 188 | 188 | ||
| 189 | # connect COs to core - sort of hard-wired at this moment | 189 | # connect COs to core - sort of hard-wired at this moment |
| 190 | for i in range(1,len(domains)): | 190 | for i in range(1,len(domains)): |
| 191 | - an = { "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" } | 191 | + an = { "bandwidth": 100000, "durable": "true" } |
| 192 | net.addLink(domains[i].getTether(), d0.getSwitches('OE%s' % i), | 192 | net.addLink(domains[i].getTether(), d0.getSwitches('OE%s' % i), |
| 193 | port1=OVS_AP, port2=OE_AP, speed=10000, annotations=an, cls=LINCLink) | 193 | port1=OVS_AP, port2=OE_AP, speed=10000, annotations=an, cls=LINCLink) |
| 194 | 194 | ... | ... |
| ... | @@ -38,34 +38,34 @@ class SmallOpticalTopo( Topo ): | ... | @@ -38,34 +38,34 @@ class SmallOpticalTopo( Topo ): |
| 38 | JFKR10 = self.addSwitch( 'JFK-R10', dpid='0000ffffffff0005', annotations={ "latitude": 40.8, "longitude": -73.1 } ) | 38 | JFKR10 = self.addSwitch( 'JFK-R10', dpid='0000ffffffff0005', annotations={ "latitude": 40.8, "longitude": -73.1 } ) |
| 39 | ATLR10 = self.addSwitch( 'ATL-R10', dpid='0000ffffffff0006', annotations={ "latitude": 33.8, "longitude": -84.1 } ) | 39 | ATLR10 = self.addSwitch( 'ATL-R10', dpid='0000ffffffff0006', annotations={ "latitude": 33.8, "longitude": -84.1 } ) |
| 40 | 40 | ||
| 41 | - self.addLink( O1, O2, port1=50, port2=30, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=LINCLink ) | 41 | + self.addLink( O1, O2, port1=50, port2=30, annotations={ "durable": "true" }, cls=LINCLink ) |
| 42 | - self.addLink( O2, O3, port1=50, port2=30, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=LINCLink ) | 42 | + self.addLink( O2, O3, port1=50, port2=30, annotations={ "durable": "true" }, cls=LINCLink ) |
| 43 | - self.addLink( O3, O4, port1=50, port2=50, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=LINCLink ) | 43 | + self.addLink( O3, O4, port1=50, port2=50, annotations={ "durable": "true" }, cls=LINCLink ) |
| 44 | - self.addLink( O1, O5, port1=20, port2=50, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=LINCLink ) | 44 | + self.addLink( O1, O5, port1=20, port2=50, annotations={ "durable": "true" }, cls=LINCLink ) |
| 45 | - self.addLink( O2, O5, port1=20, port2=20, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=LINCLink ) | 45 | + self.addLink( O2, O5, port1=20, port2=20, annotations={ "durable": "true" }, cls=LINCLink ) |
| 46 | - self.addLink( O3, O6, port1=20, port2=50, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=LINCLink ) | 46 | + self.addLink( O3, O6, port1=20, port2=50, annotations={ "durable": "true" }, cls=LINCLink ) |
| 47 | - self.addLink( O4, O6, port1=20, port2=20, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=LINCLink ) | 47 | + self.addLink( O4, O6, port1=20, port2=20, annotations={ "durable": "true" }, cls=LINCLink ) |
| 48 | - self.addLink( O5, O6, port1=30, port2=40, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=LINCLink ) | 48 | + self.addLink( O5, O6, port1=30, port2=40, annotations={ "durable": "true" }, cls=LINCLink ) |
| 49 | - self.addLink( O5, O7, port1=40, port2=50, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=LINCLink ) | 49 | + self.addLink( O5, O7, port1=40, port2=50, annotations={ "durable": "true" }, cls=LINCLink ) |
| 50 | - self.addLink( O6, O8, port1=30, port2=50, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=LINCLink ) | 50 | + self.addLink( O6, O8, port1=30, port2=50, annotations={ "durable": "true" }, cls=LINCLink ) |
| 51 | - self.addLink( O7, O8, port1=20, port2=30, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=LINCLink ) | 51 | + self.addLink( O7, O8, port1=20, port2=30, annotations={ "durable": "true" }, cls=LINCLink ) |
| 52 | - self.addLink( O7, O9, port1=30, port2=50, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=LINCLink ) | 52 | + self.addLink( O7, O9, port1=30, port2=50, annotations={ "durable": "true" }, cls=LINCLink ) |
| 53 | - self.addLink( O8, O10, port1=20, port2=50, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=LINCLink ) | 53 | + self.addLink( O8, O10, port1=20, port2=50, annotations={ "durable": "true" }, cls=LINCLink ) |
| 54 | - self.addLink( O9, O10, port1=20, port2=20, annotations={ "optical.waves": 80, "optical.type": "WDM", "optical.kms": 1000, "durable": "true" }, cls=LINCLink ) | 54 | + self.addLink( O9, O10, port1=20, port2=20, annotations={ "durable": "true" }, cls=LINCLink ) |
| 55 | 55 | ||
| 56 | - self.addLink( SFOR10, O1, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=LINCLink ) | 56 | + self.addLink( SFOR10, O1, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "durable": "true" }, cls=LINCLink ) |
| 57 | - self.addLink( SFOR10, O1, port1=3, port2=11, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=LINCLink ) | 57 | + self.addLink( SFOR10, O1, port1=3, port2=11, speed1=10000, annotations={ "bandwidth": 100000, "durable": "true" }, cls=LINCLink ) |
| 58 | 58 | ||
| 59 | - self.addLink( LAXR10, O3, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=LINCLink ) | 59 | + self.addLink( LAXR10, O3, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "durable": "true" }, cls=LINCLink ) |
| 60 | # added second tap | 60 | # added second tap |
| 61 | - self.addLink( LAXR10, O3, port1=3, port2=11, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=LINCLink ) | 61 | + self.addLink( LAXR10, O3, port1=3, port2=11, speed1=10000, annotations={ "bandwidth": 100000, "durable": "true" }, cls=LINCLink ) |
| 62 | - self.addLink( SDGR10, O4, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=LINCLink ) | 62 | + self.addLink( SDGR10, O4, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "durable": "true" }, cls=LINCLink ) |
| 63 | - self.addLink( CHGR10, O7, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=LINCLink ) | 63 | + self.addLink( CHGR10, O7, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "durable": "true" }, cls=LINCLink ) |
| 64 | 64 | ||
| 65 | - self.addLink( JFKR10, O9, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=LINCLink ) | 65 | + self.addLink( JFKR10, O9, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "durable": "true" }, cls=LINCLink ) |
| 66 | - self.addLink( JFKR10, O9, port1=3, port2=11, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=LINCLink ) | 66 | + self.addLink( JFKR10, O9, port1=3, port2=11, speed1=10000, annotations={ "bandwidth": 100000, "durable": "true" }, cls=LINCLink ) |
| 67 | 67 | ||
| 68 | - self.addLink( ATLR10, O10, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "optical.type": "cross-connect", "durable": "true" }, cls=LINCLink ) | 68 | + self.addLink( ATLR10, O10, port1=2, port2=10, speed1=10000, annotations={ "bandwidth": 100000, "durable": "true" }, cls=LINCLink ) |
| 69 | 69 | ||
| 70 | h1 = self.addHost( 'h1' ) | 70 | h1 = self.addHost( 'h1' ) |
| 71 | h2 = self.addHost( 'h2' ) | 71 | h2 = self.addHost( 'h2' ) | ... | ... |
This diff is collapsed. Click to expand it.
| ... | @@ -346,7 +346,7 @@ class LINCSwitch(OpticalSwitch): | ... | @@ -346,7 +346,7 @@ class LINCSwitch(OpticalSwitch): |
| 346 | portDict[ 'port' ] = port | 346 | portDict[ 'port' ] = port |
| 347 | portType = 'COPPER' | 347 | portType = 'COPPER' |
| 348 | if isinstance(intf.link, LINCLink): | 348 | if isinstance(intf.link, LINCLink): |
| 349 | - portType = 'OCH' if intf.link.isCrossConnect else 'OMS' | 349 | + portType = 'OCH' if intf.link.isCrossConnect() else 'OMS' |
| 350 | portDict[ 'type' ] = portType | 350 | portDict[ 'type' ] = portType |
| 351 | intfList = [ intf.link.intf1, intf.link.intf2 ] | 351 | intfList = [ intf.link.intf1, intf.link.intf2 ] |
| 352 | intfList.remove(intf) | 352 | intfList.remove(intf) |
| ... | @@ -396,10 +396,9 @@ class LINCSwitch(OpticalSwitch): | ... | @@ -396,10 +396,9 @@ class LINCSwitch(OpticalSwitch): |
| 396 | info('*** Converting Topology.json to linc-oe format (TopoConfig.json) file (no oecfg) \n') | 396 | info('*** Converting Topology.json to linc-oe format (TopoConfig.json) file (no oecfg) \n') |
| 397 | 397 | ||
| 398 | topoConfigJson = {} | 398 | topoConfigJson = {} |
| 399 | - dpIdToName = {} | ||
| 400 | 399 | ||
| 401 | - topoConfigJson["switchConfig"] = LINCSwitch.getSwitchConfig(dpIdToName) | 400 | + topoConfigJson["switchConfig"] = LINCSwitch.getSwitchConfig(net.switches) |
| 402 | - topoConfigJson["linkConfig"] = LINCSwitch.getLinkConfig(dpIdToName) | 401 | + topoConfigJson["linkConfig"] = LINCSwitch.getLinkConfig(net.links) |
| 403 | 402 | ||
| 404 | #Writing to TopoConfig.json | 403 | #Writing to TopoConfig.json |
| 405 | with open( 'TopoConfig.json', 'w' ) as outfile: | 404 | with open( 'TopoConfig.json', 'w' ) as outfile: |
| ... | @@ -443,8 +442,7 @@ class LINCSwitch(OpticalSwitch): | ... | @@ -443,8 +442,7 @@ class LINCSwitch(OpticalSwitch): |
| 443 | 442 | ||
| 444 | info('*** Adding cross-connect (tap) interfaces to packet switches...\n') | 443 | info('*** Adding cross-connect (tap) interfaces to packet switches...\n') |
| 445 | for link in net.links: | 444 | for link in net.links: |
| 446 | - if isinstance(link, LINCLink): | 445 | + if isinstance(link, LINCLink) and link.isCrossConnect(): |
| 447 | - if link.annotations[ 'optical.type' ] == 'cross-connect': | ||
| 448 | for intf in [ link.intf1, link.intf2 ]: | 446 | for intf in [ link.intf1, link.intf2 ]: |
| 449 | if not isinstance(intf, LINCIntf): | 447 | if not isinstance(intf, LINCIntf): |
| 450 | intfList = [ intf.link.intf1, intf.link.intf2 ] | 448 | intfList = [ intf.link.intf1, intf.link.intf2 ] |
| ... | @@ -502,12 +500,12 @@ class LINCSwitch(OpticalSwitch): | ... | @@ -502,12 +500,12 @@ class LINCSwitch(OpticalSwitch): |
| 502 | id = id.split("/", 1)[0] | 500 | id = id.split("/", 1)[0] |
| 503 | for i in range(3, len(id) - 1, 2): | 501 | for i in range(3, len(id) - 1, 2): |
| 504 | nodeDpid += (id[i:(i + 2):]) + ":" | 502 | nodeDpid += (id[i:(i + 2):]) + ":" |
| 505 | - return nodeDpid[0:-1]; | 503 | + return nodeDpid[0:-1] |
| 506 | 504 | ||
| 507 | @staticmethod | 505 | @staticmethod |
| 508 | def makeTopoJSON(): | 506 | def makeTopoJSON(): |
| 509 | """ | 507 | """ |
| 510 | - Builds ONOS network conifg system compatible dicts to be written as Topology.json file. | 508 | + Builds ONOS network config system compatible dicts to be written as Topology.json file. |
| 511 | """ | 509 | """ |
| 512 | topology = {} | 510 | topology = {} |
| 513 | links = {} | 511 | links = {} |
| ... | @@ -549,77 +547,68 @@ class LINCSwitch(OpticalSwitch): | ... | @@ -549,77 +547,68 @@ class LINCSwitch(OpticalSwitch): |
| 549 | return topology | 547 | return topology |
| 550 | 548 | ||
| 551 | @staticmethod | 549 | @staticmethod |
| 552 | - def getSwitchConfig (dpIdToName): | 550 | + def getSwitchConfig(switches): |
| 553 | - switchConfig = []; | 551 | + switchConfig = [] |
| 554 | - #Iterate through all switches and convert the ROADM switches to linc-oe format | ||
| 555 | - for switch in LINCSwitch.opticalJSON["devices"]: | ||
| 556 | - if switch.get("type", "none") == "ROADM": | ||
| 557 | - builtSwitch = {} | ||
| 558 | - | ||
| 559 | - #set basic switch params based on annotations | ||
| 560 | - builtSwitch["allowed"] = True; | ||
| 561 | - builtSwitch["latitude"] = switch["annotations"].get("latitude", 0.0); | ||
| 562 | - builtSwitch["longitude"] = switch["annotations"].get("longitude", 0.0); | ||
| 563 | 552 | ||
| 564 | - #assumed that all switches have this entry | 553 | + # Iterate through all switches and convert the ROADM switches to linc-oe format |
| 565 | - nodeId = switch["uri"] | 554 | + for switch in switches: |
| 566 | - | 555 | + if isinstance(switch, LINCSwitch): |
| 567 | - #convert the nodeId to linc-oe format | 556 | + builtSwitch = {} |
| 568 | - nodeDpid = LINCSwitch.dpId(nodeId); | ||
| 569 | - | ||
| 570 | - builtSwitch["name"] = switch.get("name", "none"); | ||
| 571 | 557 | ||
| 572 | - #keep track of the name corresponding to each switch dpid | 558 | + # Set basic switch params based on annotations |
| 573 | - dpIdToName[nodeDpid] = builtSwitch["name"]; | 559 | + builtSwitch["allowed"] = True |
| 560 | + builtSwitch["latitude"] = switch.annotations.get("latitude", 0.0) | ||
| 561 | + builtSwitch["longitude"] = switch.annotations.get("longitude", 0.0) | ||
| 574 | 562 | ||
| 575 | - builtSwitch["nodeDpid"] = nodeDpid | 563 | + # Convert dpid to linc-oe format |
| 564 | + builtSwitch["name"] = switch.name | ||
| 565 | + builtSwitch["nodeDpid"] = LINCSwitch.dpId('of:' + switch.dpid) | ||
| 576 | 566 | ||
| 577 | - #set switch params and type | 567 | + # Set switch params and type |
| 578 | - builtSwitch["params"] = {}; | 568 | + builtSwitch["params"] = {} |
| 579 | - builtSwitch["params"]["numregens"] = switch["annotations"].get("optical.regens", 0); | 569 | + builtSwitch["params"]["numregens"] = switch.annotations.get("optical.regens", 0) |
| 580 | builtSwitch["type"] = "Roadm" | 570 | builtSwitch["type"] = "Roadm" |
| 581 | 571 | ||
| 582 | - #append to list of switches | 572 | + switchConfig.append(builtSwitch) |
| 583 | - switchConfig.append(builtSwitch); | 573 | + |
| 584 | return switchConfig | 574 | return switchConfig |
| 585 | 575 | ||
| 586 | @staticmethod | 576 | @staticmethod |
| 587 | - def getLinkConfig (dpIdToName): | 577 | + def getLinkConfig(links): |
| 588 | - newLinkConfig = []; | 578 | + linkConfig = [] |
| 589 | - #Iterate through all optical links and convert them to linc-oe format | 579 | + |
| 590 | - for link in LINCSwitch.opticalJSON["links"]: | 580 | + # Iterate through all non-edge links and convert them to linc-oe format |
| 591 | - if link.get("type", "none") == "OPTICAL": | 581 | + for link in links: |
| 582 | + if isinstance(link, LINCLink): | ||
| 592 | builtLink = {} | 583 | builtLink = {} |
| 593 | 584 | ||
| 594 | - #set basic link params for src and dst | 585 | + # Set basic link params for src and dst |
| 595 | - builtLink["allowed"] = True; | 586 | + builtLink["allowed"] = True |
| 596 | - builtLink["nodeDpid1"] = LINCSwitch.dpId(link["src"]) | 587 | + builtLink["nodeDpid1"] = LINCSwitch.dpId('of:' + link.intf1.node.dpid) |
| 597 | - builtLink["nodeDpid2"] = LINCSwitch.dpId(link["dst"]) | 588 | + builtLink["nodeDpid2"] = LINCSwitch.dpId('of:' + link.intf2.node.dpid) |
| 598 | 589 | ||
| 599 | - #set more params such as name/bandwidth/port/waves if they exist | 590 | + # Set more params such as name/bandwidth/port if they exist |
| 600 | params = {} | 591 | params = {} |
| 601 | - params["nodeName1"] = dpIdToName.get(builtLink["nodeDpid1"], "none") | 592 | + params["nodeName1"] = link.intf1.node.name |
| 602 | - params["nodeName2"] = dpIdToName.get(builtLink["nodeDpid2"], "none") | 593 | + params["nodeName2"] = link.intf2.node.name |
| 603 | - | ||
| 604 | - params["port1"] = int(link["src"].split("/")[1]) | ||
| 605 | - params["port2"] = int(link["dst"].split("/")[1]) | ||
| 606 | 594 | ||
| 607 | - if "bandwidth" in link["annotations"]: | 595 | + params["port1"] = link.port1 |
| 608 | - params["bandwidth"] = link["annotations"]["bandwidth"] | 596 | + params["port2"] = link.port2 |
| 609 | 597 | ||
| 610 | - if "optical.waves" in link["annotations"]: | 598 | + if "bandwidth" in link.annotations: |
| 611 | - params["numWaves"] = link["annotations"]["optical.waves"] | 599 | + params["bandwidth"] = link.annotations["bandwidth"] |
| 612 | 600 | ||
| 613 | builtLink["params"] = params | 601 | builtLink["params"] = params |
| 614 | 602 | ||
| 615 | - #set type of link (WDM or pktOpt) | 603 | + # Set link type to WDM or packet (LINC-config-generator relies on it) |
| 616 | - if link["annotations"].get("optical.type", "cross-connect") == "WDM": | 604 | + if link.isTransportLayer(): |
| 617 | builtLink["type"] = "wdmLink" | 605 | builtLink["type"] = "wdmLink" |
| 618 | else: | 606 | else: |
| 619 | builtLink["type"] = "pktOptLink" | 607 | builtLink["type"] = "pktOptLink" |
| 620 | 608 | ||
| 621 | - newLinkConfig.append(builtLink); | 609 | + linkConfig.append(builtLink) |
| 622 | - return newLinkConfig | 610 | + |
| 611 | + return linkConfig | ||
| 623 | 612 | ||
| 624 | 613 | ||
| 625 | @staticmethod | 614 | @staticmethod |
| ... | @@ -628,9 +617,9 @@ class LINCSwitch(OpticalSwitch): | ... | @@ -628,9 +617,9 @@ class LINCSwitch(OpticalSwitch): |
| 628 | tapCount = 0 | 617 | tapCount = 0 |
| 629 | time = 0 | 618 | time = 0 |
| 630 | for link in net.links: | 619 | for link in net.links: |
| 631 | - if isinstance(link, LINCLink): | 620 | + if isinstance(link, LINCLink) and link.isCrossConnect(): |
| 632 | - if link.annotations[ 'optical.type' ] == 'cross-connect': | ||
| 633 | tapCount += 1 | 621 | tapCount += 1 |
| 622 | + | ||
| 634 | while True: | 623 | while True: |
| 635 | # tapCount can be less than the actual number of taps if the optical network | 624 | # tapCount can be less than the actual number of taps if the optical network |
| 636 | # is a subgraph of a larger multidomain network. | 625 | # is a subgraph of a larger multidomain network. |
| ... | @@ -748,14 +737,13 @@ class LINCLink(Link): | ... | @@ -748,14 +737,13 @@ class LINCLink(Link): |
| 748 | self.port2 = port2 | 737 | self.port2 = port2 |
| 749 | params1 = { 'speed': speed1 } | 738 | params1 = { 'speed': speed1 } |
| 750 | params2 = { 'speed': speed2 } | 739 | params2 = { 'speed': speed2 } |
| 751 | - # self.isCrossConnect = True if self.annotations.get('optical.type') == 'cross-connect' else False | ||
| 752 | if isinstance(node1, LINCSwitch) and isinstance(node2, LINCSwitch): | 740 | if isinstance(node1, LINCSwitch) and isinstance(node2, LINCSwitch): |
| 753 | - self.isCrossConnect = False | 741 | + self.isXC = False |
| 754 | else: | 742 | else: |
| 755 | - self.isCrossConnect = True | 743 | + self.isXC = True |
| 756 | if isinstance(node1, LINCSwitch): | 744 | if isinstance(node1, LINCSwitch): |
| 757 | cls1 = LINCIntf | 745 | cls1 = LINCIntf |
| 758 | - if self.isCrossConnect: | 746 | + if self.isXC: |
| 759 | node1.crossConnects.append(self) | 747 | node1.crossConnects.append(self) |
| 760 | else: | 748 | else: |
| 761 | cls1 = Intf | 749 | cls1 = Intf |
| ... | @@ -764,7 +752,7 @@ class LINCLink(Link): | ... | @@ -764,7 +752,7 @@ class LINCLink(Link): |
| 764 | intfName1 = 'lo' | 752 | intfName1 = 'lo' |
| 765 | if isinstance(node2, LINCSwitch): | 753 | if isinstance(node2, LINCSwitch): |
| 766 | cls2 = LINCIntf | 754 | cls2 = LINCIntf |
| 767 | - if self.isCrossConnect: | 755 | + if self.isXC: |
| 768 | node2.crossConnects.append(self) | 756 | node2.crossConnects.append(self) |
| 769 | else: | 757 | else: |
| 770 | cls2 = Intf | 758 | cls2 = Intf |
| ... | @@ -788,6 +776,18 @@ class LINCLink(Link): | ... | @@ -788,6 +776,18 @@ class LINCLink(Link): |
| 788 | configData[ 'annotations' ] = self.annotations | 776 | configData[ 'annotations' ] = self.annotations |
| 789 | return configData | 777 | return configData |
| 790 | 778 | ||
| 779 | + def isCrossConnect(self): | ||
| 780 | + if isinstance(self.intf1.node, LINCSwitch) ^ isinstance(self.intf2.node, LINCSwitch): | ||
| 781 | + return True | ||
| 782 | + | ||
| 783 | + return False | ||
| 784 | + | ||
| 785 | + def isTransportLayer(self): | ||
| 786 | + if isinstance(self.intf1.node, LINCSwitch) and isinstance(self.intf2.node, LINCSwitch): | ||
| 787 | + return True | ||
| 788 | + | ||
| 789 | + return False | ||
| 790 | + | ||
| 791 | class LINCIntf(OpticalIntf): | 791 | class LINCIntf(OpticalIntf): |
| 792 | """ | 792 | """ |
| 793 | LINC interface class | 793 | LINC interface class |
| ... | @@ -810,7 +810,7 @@ class LINCIntf(OpticalIntf): | ... | @@ -810,7 +810,7 @@ class LINCIntf(OpticalIntf): |
| 810 | configDict[ 'speed' ] = self.speed | 810 | configDict[ 'speed' ] = self.speed |
| 811 | portType = 'COPPER' | 811 | portType = 'COPPER' |
| 812 | if isinstance(self.link, LINCLink): | 812 | if isinstance(self.link, LINCLink): |
| 813 | - portType = 'OCH' if self.link.isCrossConnect else 'OMS' | 813 | + portType = 'OCH' if self.link.isCrossConnect() else 'OMS' |
| 814 | configDict[ 'type' ] = portType | 814 | configDict[ 'type' ] = portType |
| 815 | return configDict | 815 | return configDict |
| 816 | 816 | ... | ... |
-
Please register or login to post a comment