= Network Stitching = A key architectural question for GENI has been how to connect the resources provided by multiple aggregates into a coherent network. The key objective is to enable automated and realtime network stitching for slices which span multiple aggregates. Ethernet VLANs have been identified as the initial network technology to provide slice level inter-aggregate connections and isolation. Currently there is an [https://wiki.maxgigapop.net/twiki/bin/view/GENI/NetworkStitching Stitching Architecture adopted architecture], including an RSpec schema for describing stitching resources and requests. There is also a prototype Stitching Computation Service, and a client tool as part of Omni. This architecture is further implemented at many InstaGENI and some ExoGENI racks. This approach was demonstrated at [wiki:GEC17Agenda/GENIWideAreaNetworking GEC17]. A sample experiment showing how to use this technology is posted [wiki:GENIExperimenter/ExperimentExample-stitching here]. Experimenters interested in using this technology should contact [mailto:help@geni.net help@geni.net] for further guidance. '''This remainder of this page is out of date and needs to be replaced.''' ---- This question was the topic of one of the four software engineering meetings at GEC10. Details are on the meeting page. [wiki:GEC10Stitching GEC10 meeting] The session concluded by adopting a specific stitching architecture: [http://wiki.maxgigapop.net/twiki/bin/view/GENI/NetworkStitching Stitching Architecture as adopted at GEC10]. Next steps centered around developing a schema for describing interconnections, and continued API discussions. The topic was re-visited at GEC11. [wiki:GEC11Stitching GEC11 stitching meeting] At this session, we - described and adopted a schema for describing stitching resources and requests, as a GENI RSpec extension: [https://wiki.maxgigapop.net/twiki/bin/view/GENI/NetworkStitchingRpecsandWorkFlow Proposed Stitching schema and workflow] - demonstrated a tree mode VLAN stitch across PG, ION and MAX aggregates using the Omni client At GEC12, there was a brief [attachment:wiki:GEC12ControlFrameworkTopics:stitching-session-gec12-lehman-v2.pdf] update on status from Tom Lehman - Omni1.4 includes a library demonstrating tree mode stitching without negotiation - Negotiation should be the next focus, specifically AM API changes to createSliver or using tickets - Work continues on exploring a production aggregate manager for ION - Chain mode stitching needs attention == Links == * [http://wiki.maxgigapop.net/twiki/bin/view/GENI/NetworkStitching Stitching Architecture as adopted at GEC10] * [https://wiki.maxgigapop.net/twiki/bin/view/GENI/NetworkStitchingRpecsandWorkFlow Proposed Stitching schema and workflow] * [http://wiki.maxgigapop.net/twiki/bin/view/GENI/NetworkStitchingWorkFlowExamples Stitching Workflow examples] * [https://geni-orca.renci.org/trac/wiki/Stitching Orca stitching thoughts] == GEC10 Stitching Engineering Meeting == At GEC10, there was a community discussion of how to reserve network connections between aggregates. ([wiki:GEC10Stitching GEC10 meeting]). This is a summary of the results of that session. Tom Lehman of ISI presented a common stitching architecture proposal. By the end of the meeting, the community agreed to this architecture. We agreed that many details are left to discuss, and we hope to formally accept a stitching API at GEC11. The architecture is based on a common schema and 6 functions, fully described here: http://wiki.maxgigapop.net/twiki/bin/view/GENI/NetworkStitching. Tom Lehman also outlined various deployment choices. Each alternative would locate those functions in ways that map the architecture to how things are currently done in ProtoGENI, Orca, and !OpenFlow. === Community Agreement === The session concluded with community agreement on three points: - GENI stitching will follow the described architecture - Details will be worked out - Next steps as outlined below === Next steps === - Schema: Jon Duerig of ProtoGENI is iterating on a PG-compatible stitching schema that preserves ION compatibility. - Functions: The community will continue discussing key points, particularly working out how chain & tree interoperate, and working though some use cases. - API to be proposed for adoption at GEC11 - Interoperability demonstration at GEC12 === Architecture Summary === The architecture and information model is inspired by IETF GMPLS and PCE (https://datatracker.ietf.org/wg/ccamp, https://datatracker.ietf.org/wg/pce/) adapted to the GENI environment. This proposal starts mostly at layer 2. The key thing is to view aggregates as a topology. Aggregates must advertise connection points in an RSpec in a common format to permit functions to compute paths across aggregates. There are 6 components in the architecture: - stitching resource elements - schema - topology service - path computation function - workflow function - AM API extension == GEC11 Network Stitching Engineering Meeting == Full agenda, summary, and slides for the [wiki:GEC11Stitching GEC11 stitching meeting] are on the wiki. A summary follows. === Meeting Summary === '''Tom Lehman''' reviewed the agreed-upon GENI stitching architecture: - Several functions, to be implemented in various locations or skipped in certain scenarios : - Static topology collection - Path computation - Workflow/coordination - A common schema for describing connections between aggregates, and the capabilities of those connections. - AM API revisions to support 'chain' (AM to AM) mode, and negotiation. '''The stitching schema''' - Based on and interoperable with IDC / OSCARS / perfSonar Topology service - AMs advertise connection points - Requests and manifests list hop by hop paths - http://hpn.east.isi.edu/rspec/ext/stitch/0.1/stitch-schema.xsd - Follow links in Background Reading for examples and more information '''Aaron Helsinger''' and '''Chris Benninger''' did a demo of a tree-mode (client-driven) VLAN stitching from ProtoGENI (using the schema) across ION, to MAX. The script calculates dependencies and orders its calls appropriately. '''Tom''' briefly discussed some remaining points to cover - Negotiation: How do 2 Aggregates negotiation a common stitching mechanism and configuration? IE, how do they pick a VLAN tag? - Proposal: an AM API call that reserves a resource without instantiating it, returning the reserved resource and the other options that are available - Chain mode: need an aggregate to aggregate call - Note authorization issues === Possible Next steps === - Make sample stitching client code available - Complete schema implementation at ProtoGENI - Discuss and agree on APIs to support negotiation (eg of VLAN tags) - Investigate policy considerations in having a real ION Aggregate Manager - Prototype topology service based on perfSonar topology service - Prototype path computation service based on IDC computation service - Discuss and agree on APIs to support chain/AM-to-AM mode