aboutsummaryrefslogtreecommitdiffstats
path: root/ctrl/sysrepo-plugins/hicn-plugin/test/vapi-test/test.c
diff options
context:
space:
mode:
Diffstat (limited to 'ctrl/sysrepo-plugins/hicn-plugin/test/vapi-test/test.c')
-rw-r--r--[-rwxr-xr-x]ctrl/sysrepo-plugins/hicn-plugin/test/vapi-test/test.c316
1 files changed, 142 insertions, 174 deletions
diff --git a/ctrl/sysrepo-plugins/hicn-plugin/test/vapi-test/test.c b/ctrl/sysrepo-plugins/hicn-plugin/test/vapi-test/test.c
index f7b92c3c5..d3e47c970 100755..100644
--- a/ctrl/sysrepo-plugins/hicn-plugin/test/vapi-test/test.c
+++ b/ctrl/sysrepo-plugins/hicn-plugin/test/vapi-test/test.c
@@ -5,177 +5,149 @@
#include <signal.h>
#include <inttypes.h>
-#include<vapi/hicn.api.vapi.h>
-
+#include <vapi/hicn.api.vapi.h>
DEFINE_VAPI_MSG_IDS_HICN_API_JSON;
vapi_ctx_t g_vapi_ctx_instance;
-
#define APP_NAME "test_hicn_plugin"
#define MAX_OUTSTANDING_REQUESTS 4
#define RESPONSE_QUEUE_SIZE 2
vapi_ctx_t g_vapi_ctx_instance = NULL;
-
-void usage(){
- printf("choose the test [route_add [4|6], punt_add [4|6], face_add [4|6], route_dump, face_dump]\n");
+void usage() {
+ printf(
+ "choose the test [route_add [4|6], punt_add [4|6], face_add [4|6], "
+ "route_dump, face_dump]\n");
}
-static vapi_error_e call_hicn_api_punting_add(struct vapi_ctx_s *ctx,
- void *callback_ctx,
- vapi_error_e rv,
- bool is_last,
- vapi_payload_hicn_api_punting_add_reply *reply){
-if(!reply->retval){
- printf("Successfully done");
- return VAPI_OK;
- }else
- return VAPI_EUSER;
+static vapi_error_e call_hicn_api_punting_add(
+ struct vapi_ctx_s *ctx, void *callback_ctx, vapi_error_e rv, bool is_last,
+ vapi_payload_hicn_api_punting_add_reply *reply) {
+ if (!reply->retval) {
+ printf("Successfully done");
+ return VAPI_OK;
+ } else
+ return VAPI_EUSER;
}
-static vapi_error_e call_hicn_api_face_ip_add(struct vapi_ctx_s *ctx,
- void *callback_ctx,
- vapi_error_e rv,
- bool is_last,
- vapi_payload_hicn_api_face_ip_add_reply *reply){
-if(!reply->retval){
- printf("Successfully done");
- return VAPI_OK;
- }else
- return VAPI_EUSER;
-
+static vapi_error_e call_hicn_api_face_ip_add(
+ struct vapi_ctx_s *ctx, void *callback_ctx, vapi_error_e rv, bool is_last,
+ vapi_payload_hicn_api_face_ip_add_reply *reply) {
+ if (!reply->retval) {
+ printf("Successfully done");
+ return VAPI_OK;
+ } else
+ return VAPI_EUSER;
}
-static vapi_error_e call_hicn_api_route_nhops_add(struct vapi_ctx_s *ctx,
- void *callback_ctx,
- vapi_error_e rv,
- bool is_last,
- vapi_payload_hicn_api_route_nhops_add_reply *reply){
-if(!reply->retval){
- printf("Successfully done");
- return VAPI_OK;
- }else
- return VAPI_EUSER;
+static vapi_error_e call_hicn_api_route_nhops_add(
+ struct vapi_ctx_s *ctx, void *callback_ctx, vapi_error_e rv, bool is_last,
+ vapi_payload_hicn_api_route_nhops_add_reply *reply) {
+ if (!reply->retval) {
+ printf("Successfully done");
+ return VAPI_OK;
+ } else
+ return VAPI_EUSER;
}
-static vapi_error_e
-hicn_api_routes_dump_cb(struct vapi_ctx_s *ctx, void *callback_ctx,
- vapi_error_e rv, bool is_last,
- vapi_payload_hicn_api_routes_details *reply)
-{
-
- char buf[20];
- if (reply!=NULL){
- memset(buf, 0x00, 20);
- if (reply->prefix.address.af==ADDRESS_IP4){
- struct sockaddr_in sa;
- memcpy(&sa.sin_addr.s_addr, reply->prefix.address.un.ip4, 4);
- inet_ntop(AF_INET, &(sa.sin_addr.s_addr), buf, INET_ADDRSTRLEN);
- printf("Prefix:%s\n",buf);
- }else{
- struct sockaddr_in6 sa;
- memcpy(&sa.sin6_addr,reply->prefix.address.un.ip6,6);
- inet_ntop(AF_INET6, &(sa.sin6_addr), buf, INET6_ADDRSTRLEN);
- printf("Prefix:%s\n",buf);
- }
- }else
- {
- printf("---------Routes------- \n");
- }
- return 0;
-
+static vapi_error_e hicn_api_routes_dump_cb(
+ struct vapi_ctx_s *ctx, void *callback_ctx, vapi_error_e rv, bool is_last,
+ vapi_payload_hicn_api_routes_details *reply) {
+ char buf[20];
+ if (reply != NULL) {
+ memset(buf, 0x00, 20);
+ if (reply->prefix.address.af == ADDRESS_IP4) {
+ struct sockaddr_in sa;
+ memcpy(&sa.sin_addr.s_addr, reply->prefix.address.un.ip4, 4);
+ inet_ntop(AF_INET, &(sa.sin_addr.s_addr), buf, INET_ADDRSTRLEN);
+ printf("Prefix:%s\n", buf);
+ } else {
+ struct sockaddr_in6 sa;
+ memcpy(&sa.sin6_addr, reply->prefix.address.un.ip6, 6);
+ inet_ntop(AF_INET6, &(sa.sin6_addr), buf, INET6_ADDRSTRLEN);
+ printf("Prefix:%s\n", buf);
+ }
+ } else {
+ printf("---------Routes------- \n");
+ }
+ return 0;
}
-
-
-static vapi_error_e
-hicn_api_face_stats_dump_cb(struct vapi_ctx_s *ctx, void *callback_ctx,
- vapi_error_e rv, bool is_last,
- vapi_payload_hicn_api_face_stats_details *reply)
-{
- if (reply!=NULL){
-
- printf("face_id:%d \n", reply->faceid);
- printf("irx_packets:%" PRId64 "\n", reply->irx_packets);
- printf("irx_bytes:%" PRId64 "\n", reply->irx_bytes);
- printf("itx_packets:%" PRId64 "\n", reply->itx_packets);
- printf("itx_bytes:%" PRId64 "\n", reply->itx_bytes);
- printf("drx_packets:%" PRId64 "\n", reply->drx_packets);
- printf("drx_bytes:%" PRId64 "\n", reply->drx_bytes);
- printf("dtx_packets:%" PRId64 "\n", reply->dtx_packets);
- printf("dtx_bytes:%" PRId64 "\n", reply->dtx_bytes);
-
- }else
- {
- printf("---------Facees------- \n");
- }
- return 0;
+static vapi_error_e hicn_api_face_stats_dump_cb(
+ struct vapi_ctx_s *ctx, void *callback_ctx, vapi_error_e rv, bool is_last,
+ vapi_payload_hicn_api_face_stats_details *reply) {
+ if (reply != NULL) {
+ printf("face_id:%d \n", reply->faceid);
+ printf("irx_packets:%" PRId64 "\n", reply->irx_packets);
+ printf("irx_bytes:%" PRId64 "\n", reply->irx_bytes);
+ printf("itx_packets:%" PRId64 "\n", reply->itx_packets);
+ printf("itx_bytes:%" PRId64 "\n", reply->itx_bytes);
+ printf("drx_packets:%" PRId64 "\n", reply->drx_packets);
+ printf("drx_bytes:%" PRId64 "\n", reply->drx_bytes);
+ printf("dtx_packets:%" PRId64 "\n", reply->dtx_packets);
+ printf("dtx_bytes:%" PRId64 "\n", reply->dtx_bytes);
+
+ } else {
+ printf("---------Facees------- \n");
+ }
+ return 0;
}
-
-int hicn_connect_vpp()
-{
-
- if (g_vapi_ctx_instance == NULL)
- {
- vapi_error_e rv = vapi_ctx_alloc(&g_vapi_ctx_instance);
- rv = vapi_connect(g_vapi_ctx_instance, APP_NAME, NULL, MAX_OUTSTANDING_REQUESTS, RESPONSE_QUEUE_SIZE, VAPI_MODE_BLOCKING, true);
- if (rv != VAPI_OK)
- {
- vapi_ctx_free(g_vapi_ctx_instance);
- return -1;
- }
- }
- else
- {
- }
- return 0;
+int hicn_connect_vpp() {
+ if (g_vapi_ctx_instance == NULL) {
+ vapi_error_e rv = vapi_ctx_alloc(&g_vapi_ctx_instance);
+ rv = vapi_connect(g_vapi_ctx_instance, APP_NAME, NULL,
+ MAX_OUTSTANDING_REQUESTS, RESPONSE_QUEUE_SIZE,
+ VAPI_MODE_BLOCKING, true);
+ if (rv != VAPI_OK) {
+ vapi_ctx_free(g_vapi_ctx_instance);
+ return -1;
+ }
+ } else {
+ }
+ return 0;
}
-int hicn_disconnect_vpp()
-{
- if (NULL != g_vapi_ctx_instance)
- {
- vapi_disconnect(g_vapi_ctx_instance);
- vapi_ctx_free(g_vapi_ctx_instance);
- g_vapi_ctx_instance = NULL;
- }
- return 0;
+int hicn_disconnect_vpp() {
+ if (NULL != g_vapi_ctx_instance) {
+ vapi_disconnect(g_vapi_ctx_instance);
+ vapi_ctx_free(g_vapi_ctx_instance);
+ g_vapi_ctx_instance = NULL;
+ }
+ return 0;
}
-int main(int argc, char **argv)
-{
-
- if (argc<2){
+int main(int argc, char **argv) {
+ if (argc < 2) {
usage();
return 1;
}
- /* connect to vpp */
+ /* connect to vpp */
int rc = hicn_connect_vpp();
- if (-1 == rc){
+ if (-1 == rc) {
perror("vpp connect error");
return -1;
}
- if (!strcmp(argv[1],"route_add")){
+ if (!strcmp(argv[1], "route_add")) {
vapi_msg_hicn_api_route_nhops_add *msg;
msg = vapi_alloc_hicn_api_route_nhops_add(g_vapi_ctx_instance);
- if (!strcmp(argv[2],"4")){
+ if (!strcmp(argv[2], "4")) {
struct sockaddr_in sa;
- inet_pton(AF_INET, "192.168.10.10", &(sa.sin_addr));
- unsigned char * tmp = (unsigned char *) &sa.sin_addr.s_addr;
- memcpy(&msg->payload.prefix.address.un.ip4[0],tmp,4);
+ inet_pton(AF_INET, "192.168.10.10", &(sa.sin_addr));
+ unsigned char *tmp = (unsigned char *)&sa.sin_addr.s_addr;
+ memcpy(&msg->payload.prefix.address.un.ip4[0], tmp, 4);
msg->payload.prefix.address.af = ADDRESS_IP4;
- }else{
+ } else {
void *dst = malloc(sizeof(struct in6_addr));
inet_pton(AF_INET6, "2001::1", dst);
- unsigned char * tmp = (unsigned char *) ((struct in6_addr *)dst)->s6_addr;
- memcpy(&msg->payload.prefix.address.un.ip6[0],tmp,16);
+ unsigned char *tmp = (unsigned char *)((struct in6_addr *)dst)->s6_addr;
+ memcpy(&msg->payload.prefix.address.un.ip6[0], tmp, 16);
msg->payload.prefix.address.af = ADDRESS_IP6;
}
@@ -189,97 +161,93 @@ int main(int argc, char **argv)
msg->payload.face_ids[6] = 0;
msg->payload.n_faces = 1;
- if(vapi_hicn_api_route_nhops_add(g_vapi_ctx_instance,msg,call_hicn_api_route_nhops_add,NULL)!=VAPI_OK){
+ if (vapi_hicn_api_route_nhops_add(g_vapi_ctx_instance, msg,
+ call_hicn_api_route_nhops_add,
+ NULL) != VAPI_OK) {
perror("Operation failed");
return -1;
}
- }else if (!strcmp(argv[1],"face_add")){
-
+ } else if (!strcmp(argv[1], "face_add")) {
vapi_msg_hicn_api_face_ip_add *fmsg;
fmsg = vapi_alloc_hicn_api_face_ip_add(g_vapi_ctx_instance);
-
- if (!strcmp(argv[2],"4")){
+ if (!strcmp(argv[2], "4")) {
struct sockaddr_in sa;
- inet_pton(AF_INET, "192.168.50.19", &(sa.sin_addr));
- unsigned char * tmp = (unsigned char *) &sa.sin_addr.s_addr;
- memcpy(&fmsg->payload.face.local_addr.un.ip4[0],tmp,4);
+ inet_pton(AF_INET, "192.168.50.19", &(sa.sin_addr));
+ unsigned char *tmp = (unsigned char *)&sa.sin_addr.s_addr;
+ memcpy(&fmsg->payload.face.local_addr.un.ip4[0], tmp, 4);
fmsg->payload.face.local_addr.af = ADDRESS_IP4;
-
- inet_pton(AF_INET, "192.168.60.10", &(sa.sin_addr));
+ inet_pton(AF_INET, "192.168.60.10", &(sa.sin_addr));
tmp = (unsigned char *)&sa.sin_addr.s_addr;
- memcpy(&fmsg->payload.face.remote_addr.un.ip4[0],tmp,4);
+ memcpy(&fmsg->payload.face.remote_addr.un.ip4[0], tmp, 4);
fmsg->payload.face.remote_addr.af = ADDRESS_IP4;
- }else{
-
+ } else {
void *dst = malloc(sizeof(struct in6_addr));
inet_pton(AF_INET6, "2001::1", dst);
- unsigned char * tmp = (unsigned char *) ((struct in6_addr *)dst)->s6_addr;
- memcpy(&fmsg->payload.face.local_addr.un.ip6[0],tmp,16);
+ unsigned char *tmp = (unsigned char *)((struct in6_addr *)dst)->s6_addr;
+ memcpy(&fmsg->payload.face.local_addr.un.ip6[0], tmp, 16);
fmsg->payload.face.local_addr.af = ADDRESS_IP6;
-
inet_pton(AF_INET6, "3001::1", dst);
- tmp =(unsigned char *) ((struct in6_addr *)dst)->s6_addr;
- memcpy(&fmsg->payload.face.remote_addr.un.ip6[0],tmp,16);
+ tmp = (unsigned char *)((struct in6_addr *)dst)->s6_addr;
+ memcpy(&fmsg->payload.face.remote_addr.un.ip6[0], tmp, 16);
fmsg->payload.face.remote_addr.af = ADDRESS_IP6;
}
- fmsg->payload.face.swif = 0; // This is the idx number of interface
+ fmsg->payload.face.swif = 0; // This is the idx number of interface
- if(vapi_hicn_api_face_ip_add(g_vapi_ctx_instance,fmsg,call_hicn_api_face_ip_add,NULL)!=VAPI_OK){
- perror("Operation failed");
- return -1;
+ if (vapi_hicn_api_face_ip_add(g_vapi_ctx_instance, fmsg,
+ call_hicn_api_face_ip_add, NULL) != VAPI_OK) {
+ perror("Operation failed");
+ return -1;
}
- }else if (!strcmp(argv[1],"route_dump")){
- // routes dump
+ } else if (!strcmp(argv[1], "route_dump")) {
+ // routes dump
vapi_msg_hicn_api_routes_dump *rmsg;
rmsg = vapi_alloc_hicn_api_routes_dump(g_vapi_ctx_instance);
- vapi_hicn_api_routes_dump(g_vapi_ctx_instance, rmsg, hicn_api_routes_dump_cb, NULL);
+ vapi_hicn_api_routes_dump(g_vapi_ctx_instance, rmsg,
+ hicn_api_routes_dump_cb, NULL);
- }else if (!strcmp(argv[1],"face_dump")){
- // faces dump
+ } else if (!strcmp(argv[1], "face_dump")) {
+ // faces dump
vapi_msg_hicn_api_face_stats_dump *fmsg;
fmsg = vapi_alloc_hicn_api_face_stats_dump(g_vapi_ctx_instance);
- vapi_hicn_api_face_stats_dump(g_vapi_ctx_instance, fmsg, hicn_api_face_stats_dump_cb, NULL);
- }else if (!strcmp(argv[1],"punt_add")){
-
+ vapi_hicn_api_face_stats_dump(g_vapi_ctx_instance, fmsg,
+ hicn_api_face_stats_dump_cb, NULL);
+ } else if (!strcmp(argv[1], "punt_add")) {
vapi_msg_hicn_api_punting_add *pmsg;
pmsg = vapi_alloc_hicn_api_punting_add(g_vapi_ctx_instance);
- pmsg->payload.type=IP_PUNT;
-
- if(!strcmp(argv[2],"4")){
+ pmsg->payload.type = IP_PUNT;
+ if (!strcmp(argv[2], "4")) {
struct sockaddr_in sa;
// store this IP address in sa:
- inet_pton(AF_INET, "192.168.10.20", &(sa.sin_addr));
- unsigned char * tmp = (unsigned char *) &sa.sin_addr.s_addr;
- memcpy(&pmsg->payload.rule.ip.prefix.address.un.ip4[0],tmp,4);
+ inet_pton(AF_INET, "192.168.10.20", &(sa.sin_addr));
+ unsigned char *tmp = (unsigned char *)&sa.sin_addr.s_addr;
+ memcpy(&pmsg->payload.rule.ip.prefix.address.un.ip4[0], tmp, 4);
pmsg->payload.rule.ip.prefix.address.af = ADDRESS_IP4;
-
- }else{
-
+ } else {
void *dst = malloc(sizeof(struct in6_addr));
inet_pton(AF_INET6, "3001::1", dst);
- unsigned char * tmp =(unsigned char *) ((struct in6_addr *)dst)->s6_addr;
- memcpy(&pmsg->payload.rule.ip.prefix.address.un.ip6[0],tmp,16);
+ unsigned char *tmp = (unsigned char *)((struct in6_addr *)dst)->s6_addr;
+ memcpy(&pmsg->payload.rule.ip.prefix.address.un.ip6[0], tmp, 16);
pmsg->payload.rule.ip.prefix.address.af = ADDRESS_IP6;
}
pmsg->payload.rule.ip.prefix.len = 24;
pmsg->payload.rule.ip.swif = 0;
- if (vapi_hicn_api_punting_add(g_vapi_ctx_instance, pmsg, call_hicn_api_punting_add, NULL)!=VAPI_OK){
- perror("Operation failed");
- return -1;
+ if (vapi_hicn_api_punting_add(g_vapi_ctx_instance, pmsg,
+ call_hicn_api_punting_add, NULL) != VAPI_OK) {
+ perror("Operation failed");
+ return -1;
}
- }else
- {
+ } else {
usage();
return 1;
}