= 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. However, there are many architecture and design decisions still required. These include, how do you select the VLAN IDs to use and inform all necessary aggregates? How do you handle external networks which may be in between two GENI Aggregates of interest? Is the network stitching service a shared service which coordinates across aggregates, or are aggregates responsible for coordinating amongst themselves, or a hybrid model? How is stitching related information described and shared ? 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 topic was re-visited at GEC11. [wiki:GEC11Stitching GEC11 stitching meeting] == Links == * [http://geni.maxgigapop.net/twiki/bin/view/GENI/NetworkStitching Stitching Architecture as adopted at GEC10] * [https://geni.maxgigapop.net/twiki/bin/view/GENI/NetworkStitchingRpecsandWorkFlow Proposed Stitching schema and workflow] * [http://geni.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://geni.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