Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Group Service

    • Provides the following API to applications

      • Future<Group> CreateGroup(Device, GroupType, Collection<GroupBuckets>, GroupKey, appid)

      • Group GetGroup(Device, GroupKey)

      • void AddBucketsToGroup(Device, OldGroupKey, Collection<GroupBuckets>, NewGroupKey, appid)

      • void RemoveBucketsFromGroup(Device, OldGroupKey, Collection<GroupBuckets>, NewGroupKey, appid)

      • void RemoveGroup(Device, GroupKey, appid)
      • GetAllGroups(Device, appid)

         

    • DataModel

      • Group Types to be supported

        • Select

        • Indirect

        • All

        • Failover

      • Key

        • An application specific cookie that supports Hash and Equals method

      • Id

        • The GroupId derived from PortNumber construct

      • Bucket

        • One or more collection of Traffic Treatments

           

  • Group Manager

    • Implements the Group Service

    • Handles the Group create/modify/remove operations for any devices. If the device is not under the current controller instance, Group manager uses the distributed Group store to send GROUP_ADD_REQUEST to the master controller instance of that device.

    • GroupId generation

      • Group ID space is per device. 

      • A monotonically increasing Group ID is maintained per device that will be incremented every time a new group is created.

      • Group Store replicates any changes to per device Group ID to all instances in the cluster, so that any instance in the cluster can generate a Group ID for a device even if it is not master.

    • Creates the groups only if the device doesn’t have those groups populated. If group already exists, the APIs return with the existing group object.

    • Maintains monotonically increasing Group ID number space for each device

    • ONOS Group construct/object:

...