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