
Added plugin vpp-swan is a plugin that helps offloading Strongswan IPsec ESP process from Linux Kernel to VPP. Type: feature Signed-off-by: Gabriel Oginski <gabrielx.oginski@intel.com> Change-Id: Iec77945892453fac1890d3c49d7d86fc6b09c893
86 lines
2.4 KiB
C
86 lines
2.4 KiB
C
#ifndef KERNEL_VPP_SHARED_H_
|
|
#define KERNEL_VPP_SHARED_H_
|
|
/*
|
|
* Copyright (c) 2022 Intel and/or its affiliates.
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at:
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
typedef struct vac_t vac_t;
|
|
|
|
/**
|
|
* Callback function invoked for received event messages.
|
|
*
|
|
* @param data associated event message, destroyed by VPP API wrapper
|
|
* @param data_len length of the event message
|
|
* @param ctx user data, as passed to register_event
|
|
*/
|
|
typedef void (*event_cb_t) (char *data, int data_len, void *ctx);
|
|
|
|
/**
|
|
* Wrapper around VPP binary API client.
|
|
*/
|
|
struct vac_t
|
|
{
|
|
|
|
/**
|
|
* Destroy the VPP API client.
|
|
*/
|
|
void (*destroy) (vac_t *this);
|
|
|
|
/**
|
|
* Send VPP API message and wait for a reply
|
|
*
|
|
* @param in VPP API message to send
|
|
* @param in_len length of the message to send
|
|
* @param out received VPP API message
|
|
* @param out_len length of the received message
|
|
*/
|
|
status_t (*send) (vac_t *this, char *in, int in_len, char **out,
|
|
int *out_len);
|
|
|
|
/**
|
|
* Send VPP API dump message and wait for a reply.
|
|
*
|
|
* @param in VPP API message to send
|
|
* @param in_len length of the message to send
|
|
* @param out received VPP API message
|
|
* @param out_len length of the received message
|
|
*/
|
|
status_t (*send_dump) (vac_t *this, char *in, int in_len, char **out,
|
|
int *out_len);
|
|
|
|
/**
|
|
* Register for VPP API event of a given kind.
|
|
*
|
|
* @param in VPP API event message to register
|
|
* @param in_len length of the event message to register
|
|
* @param cb callback function to register
|
|
* @param event_id event ID
|
|
* @param ctx user data passed to callback invocations
|
|
*/
|
|
status_t (*register_event) (vac_t *this, char *in, int in_len, event_cb_t cb,
|
|
uint16_t event_id, void *ctx);
|
|
};
|
|
|
|
extern vac_t *vac;
|
|
|
|
/**
|
|
* Establishing a binary API connection to VPP.
|
|
*
|
|
* @param name client name
|
|
* @return vac_t instance
|
|
*/
|
|
vac_t *vac_create (char *name);
|
|
|
|
#endif /* KERNEL_VPP_SHARED_H_ */
|