Git Product home page Git Product logo

opi-api's Introduction

OPI API and Behavioral Model Group

Linters OPI Storage API CI OPI Security API CI OPI Network API CI

I Want To Contribute

This project welcomes contributions and suggestions. We are happy to have the Community involved via submission of Issues and Pull Requests (with substantive content or even just fixes). We are hoping for the documents, test framework, etc. to become a community process with active engagement. PRs can be reviewed by by any number of people, and a maintainer may accept.

See CONTRIBUTING and GitHub Basic Process for more details.

Overview

OPI subgroup dealing with APIs. The focus of the subgroup is:

  • Define the object models for each of the components and services on the platform.
    • Define the layering of the Capabilities that are abstracted and the associated APIs
  • Define both host system facing and control/management facing APIs
    • Discovery and Service Advertisement API
    • Capabilities/Capacity Advertisement API
      • Information such as Processor Cores available, Bandwidth, Memory, etc.
    • Configuration API
    • Consumption API for the data connections to the Host Compute
  • Create a Taxonomy for services:
  • Define recommended industry APIs to be used.
    • For Example in Networking there are (OVS DB, OpenConfig, VPP, etc.)
  • Identify gaps in APIs and recommend extensions for those capabilities
  • Create/Define the Backend/Southbound facing interface APIs
  • Produce protocol buffer (protobuf) definitions.
  • Produce reference orchestration client to support testing of the API.
  • Align the APIs with the Use cases, usage deployments, and service chaining to support various capabilities.

The API subgroup does not want to re-invent any industry standard APIs that already exist. Standard APIs such as OVS DB, OpenConfig, VPP, etc. that are used for configuration of service capabilities will be reviewed and examined for gaps. Gaps in capabilities will be addressed either by defining extensions to existing APIs or new APIs will need to be defined (such as Storage APIs).

OPI API Boundary

The OPI API boundary for the configuration/control interface will end at the protobuf as shown in the diagram below.

Config API Boundary

The use of gRPC is the preferred mechanism for the config/control interface, with the protobuf containing the information to be used by the underlying shim. This allows for implementations to provide:

  • A mechanism where the gRPC can setup separate control flows for REST/OVS or other specific traffic mechanisms
  • The use of an API Gateway that can
    • Utilize gRPC messages and deliver to the appropriate shim
    • Provide a gRPC to REST translation
    • Support gNMI and gNOI traffic over the gRPC API Gateway

The OPI API boundary for the consumption interface will provide the exposed VF/PF capabilities to be used by the Host platform and/or the compute cores on the xPU.


  • Leader
  • Meeting Time & Date
    • Thursdays 12:00-13:00 ET
  • Slack Channel
  • Status
    • Active
  • Agenda
    • Refer to the team-api slack channel for current agenda topics

opi-api's People

Contributors

glimchb avatar sandersms avatar sanders-mark avatar artek-koltun avatar renovate[bot] avatar mestery avatar jainvipin avatar pwalessi avatar idandaly avatar moshe-shahar avatar stevedoyle avatar mardim91 avatar mkalderon avatar pathreya avatar pwalessi-dell avatar amarv-marvell avatar maryamtahhan avatar chujieyang avatar donaldh avatar shachartal avatar fabrizio8 avatar keithwiles avatar sburla-marvell avatar tedstreete avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.