From 3430b042873f2eac94acd323125eaaa4a5f7f3e9 Mon Sep 17 00:00:00 2001 From: YohanPipereau Date: Thu, 28 Feb 2019 17:21:51 +0100 Subject: Merge IETF and Openconfig to use SCVPP scvpp should eventually be the only interface with VAPI and should not depend on sysrepo. -All sysrepo error codes in scvpp codes have been changed for errno error codes. scvpp might eventually needs its own error codes. -All log messages in scvpp have been removed as error codes are the only way of reporting failures in a library. -Move VAPI symbol definition to SCVPP. In scvpp, unused maccros SC_VPP_VAPI_RECV and SC_REGISTER_RPC_EVT_HANDLER have been removed. Regarding plugins update: -Use Openconfig way to convert interface name to interface index. -Use Openconfig way to enable/disable an interface. -Use Openconfig way of configuring interface IPs but use more arguments like IETF. -Use Openconfig way of adding a new route. -Use Openconfig way of dumping an IP. -Use common interface dump operation for get_name and get_id. -Delete unused create loopback Change-Id: Icc513a064a2528c2b4cbda2b0dd57755a3b08ef9 Signed-off-by: Yohan Pipereau --- src/scvpp/src/sc_vpp_comm.h | 89 +++++++-------------------------------------- 1 file changed, 14 insertions(+), 75 deletions(-) (limited to 'src/scvpp/src/sc_vpp_comm.h') diff --git a/src/scvpp/src/sc_vpp_comm.h b/src/scvpp/src/sc_vpp_comm.h index ceb3a80..649295d 100644 --- a/src/scvpp/src/sc_vpp_comm.h +++ b/src/scvpp/src/sc_vpp_comm.h @@ -16,16 +16,15 @@ #ifndef __SC_VPP_COMMM_H__ #define __SC_VPP_COMMM_H__ + +#include + #include #include #include -DEFINE_VAPI_MSG_IDS_VPE_API_JSON; -#include -#include -#include //for SC_LOG_DBG - -extern vapi_mode_e g_vapi_mode; +// Use VAPI macros to define symbols +DEFINE_VAPI_MSG_IDS_VPE_API_JSON; #define VPP_INTFC_NAME_LEN 64 #define VPP_TAPV2_NAME_LEN VPP_INTFC_NAME_LEN @@ -39,38 +38,12 @@ extern vapi_mode_e g_vapi_mode; #define VPP_IKEV2_PSK_LEN VPP_INTFC_NAME_LEN #define VPP_IKEV2_ID_LEN 32 -#ifndef SC_THIS_FUNC -#ifdef __FUNCTION__ -#define SC_THIS_FUNC __FUNCTION__ -#else -#define SC_THIS_FUNC __func__ -#endif -#endif - -#ifndef SC_NOLOG -#define SC_LOG_DBG SRP_LOG_DBG -#define SC_LOG_ERR SRP_LOG_ERR -#define SC_LOG_DBG_MSG SRP_LOG_DBG_MSG -#define SC_LOG_ERR_MSG SRP_LOG_ERR_MSG -#else -#define SC_LOG_DBG //printf -#define SC_LOG_DBG //SRP_LOG_DBG -#define SC_LOG_ERR //SRP_LOG_ERR -#define SC_LOG_DBG_MSG //SRP_LOG_DBG_MSG -#define SC_LOG_ERR_MSG //SRP_LOG_ERR_MSG -#endif - -#define SC_INVOKE_BEGIN SC_LOG_DBG("inovke %s bein.",SC_THIS_FUNC); -#define SC_INVOKE_END SC_LOG_DBG("inovke %s end,with return OK.",SC_THIS_FUNC); -#define SC_INVOKE_ENDX(...) SC_LOG_DBG("inovke %s end,with %s.",SC_THIS_FUNC, ##__VA_ARGS__) - /**********************************MACROS**********************************/ #define ARG_CHECK(retval, arg) \ do \ { \ if (NULL == (arg)) \ { \ - SC_LOG_ERR_MSG(#arg ":NULL pointer passed."); \ return (retval); \ } \ } \ @@ -91,43 +64,12 @@ extern vapi_mode_e g_vapi_mode; ARG_CHECK(retval, arg3); \ ARG_CHECK(retval, arg4) -/** - * when use tihs must fist DEFINE_VAPI_MSG_IDS_VXLAN_API_JSON - */ -#define SC_VPP_VAPI_RECV \ -do { \ - size_t size; \ - int recv_vapimsgid = -1; \ - rv = vapi_recv (g_vapi_ctx_instance, (void *) &resp, &size, 0, 0); \ - recv_vapimsgid = vapi_lookup_vapi_msg_id_t(g_vapi_ctx_instance, ntohs(resp->header._vl_msg_id) ); \ - if(recv_vapimsgid <= vapi_msg_id_get_next_index_reply \ - || recv_vapimsgid >= vapi_get_message_count ()) { \ - SC_LOG_DBG("***recv error msgid[%d] not in [0-%d) ,try again!***\n", \ - recv_vapimsgid, vapi_get_message_count ()); \ - } else { \ - SC_LOG_DBG("recv msgid [%d]\n", recv_vapimsgid); \ - break; \ - } \ - } while(1); - -#define SC_REGISTER_RPC_EVT_HANDLER(rpc_evt_handle) \ -do { \ - sr_error_t rc = rpc_evt_handle(session, &subscription); \ - if (SR_ERR_OK != rc) \ - { \ - SC_LOG_ERR("load plugin failed: %s", sr_strerror(rc)); \ - sr_unsubscribe(session, subscription); \ - SC_INVOKE_ENDX(sr_strerror(rc)); \ - return rc; \ - } \ -} while(0); - #define VAPI_RETVAL_CB(api_name) \ static vapi_error_e \ api_name##_cb (vapi_ctx_t ctx, void *caller_ctx, vapi_error_e rv, bool is_last, \ vapi_payload_##api_name##_reply * reply) \ { \ - return vapi_retval_cb(__FUNCTION__, reply->retval); \ + return reply->retval; \ } #define VAPI_COPY_CB(api_name) \ @@ -160,21 +102,18 @@ api_name##_cb (vapi_ctx_t ctx, void *caller_ctx, vapi_error_e rv, bool is_last, #define VAPI_CALL(call_code) VAPI_CALL_MODE(call_code, g_vapi_mode) -//returns true on success -bool sc_aton(const char *cp, u8 * buf, size_t length); +int sc_aton(const char *cp, u8 * buf, size_t length); char * sc_ntoa(const u8 * buf); -vapi_error_e -vapi_retval_cb(const char* func_name, i32 retval); +/* + * VPP + */ + +extern vapi_ctx_t g_vapi_ctx_instance; +extern vapi_mode_e g_vapi_mode; -/////////////////////////// -//VPP接口 int sc_connect_vpp(); int sc_disconnect_vpp(); int sc_end_with(const char* str, const char* end); -extern vapi_ctx_t g_vapi_ctx_instance; -#endif //__SC_VPP_COMMM_H__ - - - +#endif //__SC_VPP_COMMM_H__ -- cgit 1.2.3-korg