220 likes | 348 Views
Resource Representations in GENI. Rob Sherwood, OpenFlow Hongwei Zhang, Wireless sensor network description language Ilia Baldine, Yufeng Xin , Semantic Resource Descriptions in ORCA BACK at 10:45 ibaldin@renci.org. Semantic Resource Descriptions in ORCA (Part 2).
E N D
Resource Representations in GENI • Rob Sherwood, OpenFlow • Hongwei Zhang, Wireless sensor network description language • Ilia Baldine, YufengXin, Semantic Resource Descriptions in ORCA • BACK at 10:45 • ibaldin@renci.org Presentation title goes here
Semantic Resource Descriptions in ORCA (Part 2) YufengXin and Ilia Baldine
NDL-OWL in ORCA • Last time (GEC7): • Introduction RDF and OWL • Example of NDL-OWL descriptions • Today: • Short recap • How we use NDL-OWL in ORCA
Resource representations in GENI • Used by elements of control frameworks • Used by experimenter tools • Visualizations, performance measurements etc. etc. • Have a lifecycle • Current state of the substrate • Request specification • Slice specification • ‘As-built’ manifest NDL-OWL in ORCA
Why NDL(-OWL)? Application layer Network/routing layer Cross-Layer Information Exchange Optical/physical layer
Using G.805 model in BEN • BEN Layers • Fiber • OCG/DWDM • Lambda • Ethernet • IP • Detailed information about layers and adaptations is required • Optimized management • Cross-layer measurements
XML vs. RDF Presentation title goes here
SPARQL/GLEEN • SPARQL – SQL-like query language for RDF graphs SELECT ?pop1 ?lat ?lon WHERE { ?pop1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://geni-orca.renci.org/owl/collections.owl#Set> . ?pop1 <http://geni-orca.renci.org/owl/location.owl#locatedAt> ?loc . ?loc <http://www.w3.org/2003/01/geo/wgs84_pos#lat> ?lat . ?loc <http://www.w3.org/2003/01/geo/wgs84_pos#long> ?lon . } • GLEEN – extension to SPARQL for network path finding
Retrieve all connected resources • Retrieve all edges in the topology SELECT DISTINCT ?src ?dst ?connection ?bw WHERE { {?srcndl:connectedTo ?dst} UNION { ?connection a ndl:NetworkConnection. ?connection ndl:hasInterface ?src. ?connection ndl:hasInterface ?dst. ?connection layer:bandwidth ?bw. FILTER(?src != ?dst) } UNION { ?connection a ndl:NetworkConnection. ?connection ndl:hasInterface ?intf1. ?connection ndl:hasInterface ?intf2. ?srcndl:hasInterface ?intf1. ?dstndl:hasInterface ?intf2. ?src a compute:Server. ?dst a compute:Server. ?connection layer:bandwidth ?bw. FILTER(?src != ?dst) }} • Produces a list of <src, dst, edge, bandwidth> tuples • Very verbose!
Gleen:OnPath example SELECT ?object WHERE { <http://some/resource> gleen:OnPath ('[ndl:hasInterface]*/([ndl:connectedTo] | [ndl:switchedTo] | [ndl:linkTo])+/[ndl:interfaceOf]*’ ?object). FILTER(?object != <http://some/resource>) } • Return: a list of neighboring devices or interfaces of resource http://some/resource in the RDF graph
Gleen:SubGraph SELECT ?a ?b ?c WHERE { (<http://some/resource> gleen:OnPath ('[ndl:hasInterface]+/([ndl:connectedTo]|[ndl:switchedTo]|[ndl:linkTo])*/[ndl:interfaceOf]' <http://some/other/resource>) gleen:Subgraph (?a ?b ?c). ?a rdf:typendl:Interface. ?crdf:typendl:Interface. } • Return: a list of intermediate links/connections between two connected resources in the RDF graph. • Not necessarily in-order!
Using NDL-OWL resource descriptions in ORCA • Initial substrate descriptions used by ‘authority’ actors • Transit authorities use NDL for internal (intra-domain) multi-layered path computation • Abstracted descriptions advertized by brokers for inter-domain path finding • Full and abstract site NDL-OWL descriptions available through registry • User requests expressed as desired topology descriptions with specific resources • FormatX -> NDL-OWL conversions • FormatX = {NS2, PG RSpec, PL RSpec, … } Presentation title goes here
Authority actor NDL Operations • Initial substrate NDL created by the operator • Abstract domain NDL model computed by the authority actor based on the initial description: • DomainService class • Topology abstraction advertisement • Border interfaces and available resources (for bandwidth accounting) • Switching capability • Delegated resource and units • Access method (ORCAActor, etc.) • Label producer? • To assist stitching precedence computation
Abstraction Domain NDL <rdf:Descriptionrdf:about="http://geni-orca.renci.org/owl/nlr.rdf#NLR/Domain"> <domain:hasServicerdf:resource="http://geni-orca.renci.org/owl/nlr.rdf#NLR/Domain/NetworkService/1"/> <rdfs:labelxml:lang="en">http://geni-orca.renci.org/owl/nlr.rdf</rdfs:label> <ndl:hasSwitchMatrixrdf:resource="http://geni-orca.renci.org/owl/nlr.rdf#NLR/Domain/SwitchingMatrix"/> <ndl:hasInterfacerdf:resource="http://geni-orca.renci.org/owl/nlr.rdf#NLR/StarLight/Cisco/6509/TenGigabitEthernet/1/3/fiber"/> <rdf:typerdf:resource="http://geni-orca.renci.org/owl/topology.owl#Device"/> <rdf:typerdf:resource="http://geni-orca.renci.org/owl/topology.owl#NetworkDomain"/> <layer:isLabelProducerrdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">true</layer:isLabelProducer> <ndl:hasInterfacerdf:resource="http://geni-orca.renci.org/owl/nlr.rdf#NLR/Renci/Cisco/6509/TenGigabitEthernet/1/2/fiber"/> </rdf:Description>
Broker: Resource allocation • Consumes the abstract NDL from all the sites • Keeping track of resource allocation and domain interface resources (e.g. bandwidth on border interfaces) • Passes the abstract NDL to the service manager upon query
Service Manager controller policy • Assemble the abstract descriptions into a Inter-domain NDL-OWL model • Accept user allocation request the request in NDL-OWL format • Perform the inter-domain path computation • Which domains will need to provide resources to create this path • Compute the dependency tree of domains to determine what order the resources will be requested in • Form the reservations and DomainRequest(s) for authorities in NDL-OWL • Redeem the DomainRequest(s) to sites.
Converting to NDL-OWL • Emulab NS2 -> NDL-OWL converter (many thanks to Rob Ricci for his help) • For testing: web page (.jsp) • For production use: XMLRPC service • http://geni-test.renci.org/ndl-conversion/convert.jsp • PG and PL RSpec coming • To be used in conjunction with ORCA XMLRPC controller offering PG interface
Label Stitching Problem • Multiple domains on the path need to create a seamless connection • Label negotiation is required at domain peering points • E.g. VLAN tag can be generated, translated, accepted or tunneled • Sites or devices inside domains have various capabilities: • Switching capability (Layer-specific: VLAN, Lambda, ..) • Label producer vs. consumer (or both) • Label translation capability • Available label set (constraint) • Multiple domain label assignment and stitching solutions possible: • Fully centralized – single point of failure • Distributed (RSVP) – slow, hard to optimize • Coordinated – for a given connection an entity coordinates the order/sequence in which domains stitch/connect to one another
Example of a path dependency Renci Net RENCI VMs BEN NLR StarLight Duke Net Duke VMs Umass Vise
ORCA redeem dependency tree • Neighbor relationship • Peer relationship • Both are label producers or pre-configured • Provider-customer relationship (NRL-BEN) • Translating at the customer • Master-Slave relationship (Access network - VM sites) • Slaves wait and use the same label from the master • Redeem dependency tree • Determines the order in which controller policy ‘redeems’ resources given by the broker from domains. • Domains pass back relevant information needed by their neighbors to perform the stitching.
Future work • Add expressivity to • NDL-OWL requests • Edge resource descriptions and IP layer • Measurement resources • Topology mapping and multi-point support • Persistent RDF/OWL storage • More advanced reasoning and rule based implementation • Using inference and various logics • Slice manifest NDL