Update Summary of DPACC docs

Slides:



Advertisements
Similar presentations
1 Internet Protocol Version 6 (IPv6) What the caterpillar calls the end of the world, nature calls a butterfly. - Anonymous.
Advertisements

Keith Wiles DPACC vNF Overview and Proposed methods Keith Wiles – v0.5.
Module: Definition ● A logical collection of related program entities ● Not necessarily a physical concept, e.g., file, function, class, package ● Often.
Introduction. 2 What Is SmartFlow? SmartFlow is the first application to test QoS and analyze the performance and behavior of the new breed of policy-based.
DPACC vNF Overview and Proposed methods Keith Wiles – v0.5.
dpacc framework discussion data plane
Copyright © 2007, Oracle. All rights reserved. Managing Concurrent Requests.
SeGW function offload 1/4 SeGW VNF SmGW VNF Virtual Switch Other VNF VNFs NFVI Network Processor Offload “programming” 1)VNF need to talk to Packet Processor.
Cohesion and Coupling CS 4311
Proposed B-release planning for dpacc documentation (for discussion) 9/16/2015 1December 7, 2015 OPNFV Introduction.
1 Data Link Layer Lecture 23 Imran Ahmed University of Management & Technology.
How to write a MSGQ Transport (MQT) Overview Nov 29, 2005 Todd Mullanix.
Virtio-IPsec-LA PoC Implementation
Figure A: From Openstack Nomad. Figure B: From Gap on OpenStack ① ① ④ ④.
DPACC Metadata 2016/2/25. Motivation Openstack needs to define a general metadata for acceleration resources Acc-agent interface s-API Agent-VIM interface.
LonWorks Introduction Hwayoung Chae.
DPACC Metadata Update Discussion Lingli Deng 2016/05/05.
DPACC Metadata Revised 2016/4/6. Table of Contents Motivation Information Elements Data representation Convergence discussion for IFA004.
Virtual Local Area Networks In Security By Mark Reed.
DPACC Metadata Revised 2016/3/21. Table of Contents Motivation Information Elements Data representation Convergence discussion for IFA004.
Translation Lookaside Buffer
MQTT-255 Support alternate authenticaion mechanisms
Monitoring systems COMET types MS55 & MS6
Zero-copy Receive Path in Virtio
Program Management Portal (PgMP): What’s New in R8 for the Client
The 8085 Microprocessor Architecture
PANA Discussion and Open Issues (draft-ietf-pana-pana-01.txt)
PANA Issues and Resolutions
OSPF (Open Shortest Path First)
EA C451 Vishal Gupta.
The 8085 Microprocessor Architecture
Chapter 6 Delivery & Forwarding of IP Packets
Siemens Step 7 Project with Controllere in 7 Steps: Step 1
Programmable Logic Controllers (PLCs) An Overview.
Virtio Inline Accelerator
Chapter 3: Open Systems Interconnection (OSI) Model
Virtio Keith Wiles July 11, 2016.
Assembly Language Programming II: C Compiler Calling Sequences
Translation Lookaside Buffer
Implementing an OpenFlow Switch on the NetFPGA platform
rte_security: A new crypto-offload framework in DPDK
All or Nothing The Challenge of Hardware Offload
Chapter 15. Internet Protocol
The 8085 Microprocessor Architecture
Windows Virtual PC / Hyper-V
Contractor Sourcing Application (CSA) Training
Submission Title: LB Resolutions from kivinen
Machine Independent Assembler Features
Rekeying Protocol Fix Date: Authors: Month Year
Java IDE Dwight Deugo Nesa Matic Portions of the notes for this lecture include excerpts from.
Channel Access Concepts
Update Summary of DPACC docs
Ch 17 - Binding Protocol Addresses
Submission Title: LB Resolutions from kivinen
Machine Independent Assembler Features
IP datagram fields cont.
INSTRUCTION SET DESIGN
Latest Update on Gap Analysis of Openstack for DPACC
DPACC API Guidelines 2019/10/12.
Latest Update on Gap Analysis of Openstack for DPACC
Latest Update DPACC Use-cases
Virtio-ipsec F.F. Ozog (6WIND) v1 (2015/05/29).
Platform Performance Acceleration
Latest Update DPACC Use-cases
Accelerator Management g-API’s
Figure 3-2 VIM-NFVI acceleration management architecture
Latest Update DPACC Architecture
Multiprocessors and Multi-computers
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
DetNet Architecture Updates
Presentation transcript:

Update Summary of DPACC docs 2016/3/11

Quick Summary Work-in-progress docs New doc for API guidelines Dpacc architecture: https://docs.google.com/document/d/1O4rtCh1vbTOO5cMwmRwfv3UJb_bVWZrqXQS_-QJAk10/edit# No new major issues. Plan to migrate to gerrit next week. OpenStack Gap Analysis: https://docs.google.com/document/d/1_fOinIQNcPwNODZPzGK5vRMPJQLwL7iLds4NFnjXSms/edit# No new input this week. Renaming issue raised online. Plan to bring to review after completion of Section 5 next week. Dpacc usecase: detailed discussion later. New doc for API guidelines https://docs.google.com/document/d/1Yp5AYO8vqDRRVVBIFGa0updhDTmvyqFLl4bsZREDVa Y/edit?usp=sharing Based on the proposal and discussion last week Working on addressing comments and welcome more review and feedback Plan to bring to review next week

Latest Update DPACC API Guidelines https://docs.google.com/document/d/1Yp5AYO8vqDRRVVBIFGa0updhD TmvyqFLl4bsZREDVaY/edit 10/22/2019

Update Summary API - Queries Use-cases Do we need to remove the “accmodel” name ? API - Queries API Naming convention (apitype_accfunc_accmodel_operation_suffix ) API Operations Examples (apitype_accfunc_accmodel_operation_suffix ) Return Values – Error codes Response Arguments Use-cases Software accelerator in Host (or) Guest ? Given the DPACC Arch Doc reference

API Naming convention (apitype_accfunc_accmodel_operation_suffix ) accmodel, stands for the acceleration model the accelerated application is intended to be using via the API. E.g. “la” for lookaside model, “in” for inline model and “dp” for data path offload model. Please refer to [dpacc-usecase] for the definitions of the three acceleration models of DPACC. Keith: suggest to remove model information from api name and insert it the arguments instead. Ola: It is ok to have the model name in the API, as the application is aware of the accelerator type. Denis: It is better to have the model name in the API name because the API is different for different models. For example encap_packet for lookaside has to supply output buffers, whereas encap_packet for inline does not have to supply them.

API Operations Examples (apitype_accfunc_accmodel_operation_suffix ) Keith: what is the difference between "set" and "modify"? Rajesh: Set API is used to update the global configuration like Hostname,time etc., get/set API's operations are used in sequence. There won't be delete API call for this set of API's, as it has always some global value. To configure the new record, add/modify/delete API's are used. Denis: set API is used for setting global parameters of the driver or accelerator. modify api is used to change an existing IPsec SA or PDCP security context. Right now, we do not have an example for set API.

Return Values – Error codes The error code is a 32 bit number constructed as follows Error codes are negative, except when return is successful when the error code is 0 Positive return values may be used to indicate other non-error return values such as number of packets processed in a multi_packet call.  These return values are common to all accelerators The most significant 16 bits is the accelerator ID assigned as follows ipsec_la 0xFFFE pdcp_la 0xFFFD The least significant 16 bits is the error code Common error codes applicable to all accelerators:- ACCELERATOR_NOT_AVAILABLE 1 ACCELERATOR_API_VER_NOT_SUPPORTED 2 ACCELERATOR_COMMON_ERROR_CODE_MAX 0xFFF Accelerator specific error codes:- G_IPSEC_LA_ERROR_CODE_START ACCELERATOR_COMMON_ERROR_CODE_MAX +1 G_IPSEC_LA_ERROR_HANDLE_NOT_FOUND G_IPSEC_LA_ERROR_CODE_START G_IPSEC_LA_ERROR_NOT_SUPPORTED G_IPSEC_LA_ERROR_CODE_START +1 Reserve and define the commonly used error codes. Accelerator specific errors should start from COMMON_ERROR_CODE_MAX.

Removed cb_arg_len field. Response Arguments struct g_ipsec_la_resp_args  {  struct  g_ipsec_la_resp_cbfn cb_fn;  /* Callback function if ASYNC flag is chosen */  void *cb_arg;  int32_t cb_arg_len;    /* Callback argument length */ } Keith: suggest to define response functions types and then further define the arguments for each of them. Denis: Instead of variable length cb_arg for the callback, we can fix them to be 1 void *arg. Then the callback function type will be have this general format: cb_fn(<callback specific args>, void *arg, int32_t error_code) Exact callback function type for each API should then be defined indicating appropriate <callback specific args>. Removed cb_arg_len field.

Use-cases - Software accelerator in Host (or) Guest If the guest does not require host support the host layer are optional. The host layer allows the guest to have better acceleration support without having to have a SAL layer in the guest. The guest can have crypto support in software (either guest SAL as in Example A or host SAL as in Example B) or be using a external crypto hardware via the hio interface. Example A-1 on the left includes a VM with a SAL for direct access to external device and VM to VM support only supplied by kernel based vSwitch or external device. The sio is optional for host access for management, and non- hio packets may have poor performance in some cases. Example B-1 in the middle includes a legacy application using crypto lib via VirtIO to accelerate crypto operations in the host, where VM to VM is still missing, but can be supported by SAL to external switch accelerator. The design could also be enhanced by adding a kernel based vSwitch for VM to VM traffic. Example B-2 in the middle includes a legacy application being agnostic to the encrypted traffic being handled in the host software or in external accelerator, which means it sends and receives packet in clear text format as the host layer or the device is encrypting or decrypting the packets unbeknownst to the guest application., An SRL (vSwitch/vRouter) is added for VM to VM communication. Example A-2 on the right includes accelerated application using SAL in guest to access crypto accelerator directly, as well as flexible vSwitch or vRouter support in SW or HW. SAL allows for some/all crypto operations to be done in the guest or passed to the host for processing. Reference: DPACC Architecture page 10. https://docs.google.com/document/d/1O4rtCh1vbTO O5cMwmRwfv3UJb_bVWZrqXQS_- QJAk10/edit?pref=2&pli=1