wiki:GeniNetworkStitching

Version 8 (modified by Aaron Helsinger, 9 years ago) (diff)

--

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.

GEC10 meeting

The topic was re-visited at GEC11.

GEC11 stitching meeting

GEC10 Stitching Engineering Meeting

At GEC10, there was a community discussion of how to reserve network connections between aggregates. (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 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

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