RENCI-NRIG / orca5

ORCA5 Software
Eclipse Public License 1.0
2 stars 1 forks source link

Interdomain slice modify can fail when a single site is both Modified and Added #161

Closed hinchliff closed 6 years ago

hinchliff commented 6 years ago

From RENCI-NRIG/exogeni#175:

Exception is received after slice modifications described as below.

  1. Create a p2p request a1@site_A connected to b1@site_B
  2. Submit request
  3. Modify slice Add node b2@site_B and link to a1@site_A Add node c1@site_C and link to b1@site_B

It was discovered that the UnitDomain field being used in the modifyStorage storage function was not able to correctly differentiate between the B2 node that was being added and the B1 node that was already present but being modified.

hinchliff commented 6 years ago

There are some minor lingering visualization issues, with doubled links present: 161_interdomain_modify_manifest 161_interdomain_modify_manifest.rdf.txt

hinchliff commented 6 years ago

These are the two VLANs on either side of the A-RCI node. The first one (8f34d342) is from the create, while the second one (88f80454) is from the modify:

  <rdf:Description rdf:about="http://geni-orca.renci.org/owl/rciNet.rdf#rciNet/Domain/vlan/8f34d342-cddb-4271-89a0-c936d4082a98/vlan">
    <rdf:type rdf:resource="http://geni-orca.renci.org/owl/topology.owl#CrossConnect"/>
    <j.3:inDomain rdf:resource="http://geni-orca.renci.org/owl/rciNet.rdf#rciNet/Domain/vlan"/>
    <j.3:message>Reservation 8440e336-a03d-4652-ae36-0284f37940ed (Slice 175) is in state [Active,None]
</j.3:message>
    <j.3:hasReservationState rdf:resource="http://geni-orca.renci.org/owl/request.owl#Active"/>
    <j.15:hasInterface rdf:resource="http://geni-orca.renci.org/owl/d5873c92-0fa6-412b-9ef4-bbaff90000fb#Link3-A-RCI/0/intf"/>
    <j.15:hasInterface rdf:resource="http://geni-orca.renci.org/owl/rciNet.rdf#RciNet/IBM/G8052/TenGigabitEthernet/1/1/ethernet"/>
    <j.15:hasInterface rdf:resource="http://geni-orca.renci.org/owl/rciNet.rdf#RciNet/IBM/G8052/TenGigabitEthernet/1/0/ethernet"/>
    <j.2:bandwidth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">10000000</j.2:bandwidth>
    <j.8:hasResourceType rdf:resource="http://geni-orca.renci.org/owl/domain.owl#VLAN"/>
    <j.15:hasURL>http://geni-orca.renci.org/owl/rciNet.rdf#rciNet/Domain/vlan/8f34d342-cddb-4271-89a0-c936d4082a98/vlan</j.15:hasURL>
    <j.11:inRequestNetworkConnection rdf:resource="http://geni-orca.renci.org/owl/d5873c92-0fa6-412b-9ef4-bbaff90000fb#Link3"/>
    <j.15:inConnection rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">true</j.15:inConnection>
    <rdfs:label>1012</rdfs:label>
  </rdf:Description>
  <rdf:Description rdf:about="http://geni-orca.renci.org/owl/rciNet.rdf#rciNet/Domain/vlan/88f80454-6bb3-4f76-8040-a182063101e6/vlan">
    <rdf:type rdf:resource="http://geni-orca.renci.org/owl/topology.owl#CrossConnect"/>
    <j.3:inDomain rdf:resource="http://geni-orca.renci.org/owl/rciNet.rdf#rciNet/Domain/vlan"/>
    <j.3:message>Reservation 76811909-da89-49ea-98b3-ebb146baa7ef (Slice 175) is in state [Active,None]
</j.3:message>
    <j.3:hasReservationState rdf:resource="http://geni-orca.renci.org/owl/request.owl#Active"/>
    <j.15:hasInterface rdf:resource="http://geni-orca.renci.org/owl/rciNet.rdf#RciNet/IBM/G8052/TenGigabitEthernet/1/1/ethernet"/>
    <j.15:hasInterface rdf:resource="http://geni-orca.renci.org/owl/rciNet.rdf#RciNet/IBM/G8052/TenGigabitEthernet/1/0/ethernet"/>
    <j.15:hasInterface rdf:resource="http://geni-orca.renci.org/owl/bb4ef467-36fc-4a68-82e7-f156ee454d41#Link37-A-RCI"/>
    <j.15:hasInterface rdf:resource="http://geni-orca.renci.org/owl/bb4ef467-36fc-4a68-82e7-f156ee454d41#Link37-A-RCI/0/intf"/>
    <j.2:bandwidth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">10000000</j.2:bandwidth>
    <j.8:hasResourceType rdf:resource="http://geni-orca.renci.org/owl/domain.owl#VLAN"/>
    <j.15:hasURL>http://geni-orca.renci.org/owl/rciNet.rdf#rciNet/Domain/vlan/88f80454-6bb3-4f76-8040-a182063101e6/vlan</j.15:hasURL>
    <j.11:inRequestNetworkConnection rdf:resource="http://geni-orca.renci.org/owl/bb4ef467-36fc-4a68-82e7-f156ee454d41#Link37"/>
    <j.15:inConnection rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">true</j.15:inConnection>
    <rdfs:label>1013</rdfs:label>
  </rdf:Description>

Is that extra hasInterface statement in the second one causing the doubled link?

<j.15:hasInterface rdf:resource="http://geni-orca.renci.org/owl/bb4ef467-36fc-4a68-82e7-f156ee454d41#Link37-A-RCI"/>
ibaldin commented 6 years ago

The model has extra interface and link objects that are causing visual double links. For example, nodes B-BBN and bbnNet has two interfaces (interface names are different by /0/intf suffix:

DEBUG - Interface http://geni-orca.renci.org/owl/bb4ef467-36fc-4a68-82e7-f156ee454d41#Link38-B-BBN between http://geni-orca.renci.org/owl/d5873c92-0fa6-412b-9ef4-bbaff90000fb#B-BBN and http://geni-orca.renci.org/owl/bbnNet.rdf#bbnNet/Domain/vlan/b7ed96ce-8e5c-4197-80bb-b79108ce4f35/vlan has IP/netmask null/null DEBUG - Creating a link UnnamedLink13 from B-BBN to bbnNet

DEBUG - Interface http://geni-orca.renci.org/owl/bb4ef467-36fc-4a68-82e7-f156ee454d41#Link38-B-BBN/0/intf between http://geni-orca.renci.org/owl/d5873c92-0fa6-412b-9ef4-bbaff90000fb#B-BBN and http://geni-orca.renci.org/owl/bbnNet.rdf#bbnNet/Domain/vlan/b7ed96ce-8e5c-4197-80bb-b79108ce4f35/vlan has IP/netmask null/null DEBUG - Creating a link UnnamedLink14 from B-BBN to bbnNet

<rdf:Description rdf:about="http://geni-orca.renci.org/owl/bbnNet.rdf#bbnNet/Domain/vlan/b7ed96ce-8e5c-4197-80bb-b79108ce4f35/vlan">
    <rdf:type rdf:resource="http://geni-orca.renci.org/owl/topology.owl#CrossConnect"/>
    <j.3:inDomain rdf:resource="http://geni-orca.renci.org/owl/bbnNet.rdf#bbnNet/Domain/vlan"/>
    <j.3:message>Reservation cef30e17-84b4-4497-8d5c-2b0660639a26 (Slice 175) is in state [Active,None]
</j.3:message>
    <j.3:hasReservationState rdf:resource="http://geni-orca.renci.org/owl/request.owl#Active"/>
    <j.15:hasInterface rdf:resource="http://geni-orca.renci.org/owl/bbnNet.rdf#BbnNet/IBM/G8052/GigabitEthernet/1/0/ethernet"/>
    <j.15:hasInterface rdf:resource="http://geni-orca.renci.org/owl/bbnNet.rdf#BbnNet/IBM/G8052/TenGigabitEthernet/1/1/ethernet"/>
    <j.15:hasInterface rdf:resource="http://geni-orca.renci.org/owl/bb4ef467-36fc-4a68-82e7-f156ee454d41#Link38-B-BBN"/>
    <j.15:hasInterface rdf:resource="http://geni-orca.renci.org/owl/bb4ef467-36fc-4a68-82e7-f156ee454d41#Link38-B-BBN/0/intf"/>
    <j.2:bandwidth rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">10000000</j.2:bandwidth>
    <j.8:hasResourceType rdf:resource="http://geni-orca.renci.org/owl/domain.owl#VLAN"/>
    <j.15:hasURL>http://geni-orca.renci.org/owl/bbnNet.rdf#bbnNet/Domain/vlan/b7ed96ce-8e5c-4197-80bb-b79108ce4f35/vlan</j.15:hasURL>
    <j.11:inRequestNetworkConnection rdf:resource="http://geni-orca.renci.org/owl/bb4ef467-36fc-4a68-82e7-f156ee454d41#Link38"/>
    <j.15:inConnection rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">true</j.15:inConnection>
    <rdfs:label>2602</rdfs:label>
  </rdf:Description>

It does have a statement that the two interface are owl:sameAs. I'll keep looking to see if I can filter out one of them

ibaldin commented 6 years ago

This is addressed in Flukes pull request RENCI-NRIG/flukes#17