diff options
Diffstat (limited to 'hicn-plugin/src/hicn_api_test.c')
-rw-r--r-- | hicn-plugin/src/hicn_api_test.c | 148 |
1 files changed, 117 insertions, 31 deletions
diff --git a/hicn-plugin/src/hicn_api_test.c b/hicn-plugin/src/hicn_api_test.c index 1dc8158d4..bf58cf245 100644 --- a/hicn-plugin/src/hicn_api_test.c +++ b/hicn-plugin/src/hicn_api_test.c @@ -183,11 +183,11 @@ fib_proto_from_ip46 (ip46_type_t iproto) case IP46_TYPE_IP6: return FIB_PROTOCOL_IP6; case IP46_TYPE_ANY: - ASSERT(0); + ASSERT (0); return FIB_PROTOCOL_IP4; } - ASSERT(0); + ASSERT (0); return FIB_PROTOCOL_IP4; } @@ -203,7 +203,7 @@ fib_proto_to_ip46 (fib_protocol_t fproto) case FIB_PROTOCOL_MPLS: return (IP46_TYPE_ANY); } - ASSERT(0); + ASSERT (0); return (IP46_TYPE_ANY); } @@ -229,7 +229,7 @@ ip_prefix_encode (const fib_prefix_t * in, vl_api_prefix_t * out) { out->len = in->fp_len; ip_address_encode (&in->fp_addr, - fib_proto_to_ip46 (in->fp_proto), &out->address); + fib_proto_to_ip46 (in->fp_proto), &out->address); } ///////////////////////////////////////////////////// @@ -253,7 +253,9 @@ _(hicn_api_face_del_reply) \ _(hicn_api_route_nhops_add_reply) \ _(hicn_api_route_del_reply) \ _(hicn_api_route_nhop_del_reply) \ -_(hicn_api_punting_add_reply) +_(hicn_api_punting_add_reply) \ +_(hicn_api_face_cons_del_reply) \ +_(hicn_api_face_prod_del_reply) #define _(n) \ static void vl_api_##n##_t_handler \ @@ -297,7 +299,9 @@ _(HICN_API_STRATEGIES_GET_REPLY, hicn_api_strategies_get_reply) \ _(HICN_API_STRATEGY_GET_REPLY, hicn_api_strategy_get_reply) \ _(HICN_API_PUNTING_ADD_REPLY, hicn_api_punting_add_reply) \ _(HICN_API_REGISTER_PROD_APP_REPLY, hicn_api_register_prod_app_reply) \ -_(HICN_API_REGISTER_CONS_APP_REPLY, hicn_api_register_cons_app_reply) +_(HICN_API_FACE_PROD_DEL_REPLY, hicn_api_face_prod_del_reply) \ +_(HICN_API_REGISTER_CONS_APP_REPLY, hicn_api_register_cons_app_reply) \ +_(HICN_API_FACE_CONS_DEL_REPLY, hicn_api_face_cons_del_reply) static int @@ -777,7 +781,8 @@ static void clib_net_to_host_i32 (rmp->flags)); } -static void format_ip_face (vl_api_hicn_face_ip_t * rmp) +static void +format_ip_face (vl_api_hicn_face_ip_t * rmp) { vat_main_t *vam = hicn_test_main.vat_main; u8 *sbuf = 0; @@ -798,7 +803,8 @@ static void format_ip_face (vl_api_hicn_face_ip_t * rmp) clib_net_to_host_i32 (rmp->flags), rmp->if_name); } -static void format_udp_face (vl_api_hicn_face_udp_t * rmp) +static void +format_udp_face (vl_api_hicn_face_udp_t * rmp) { vat_main_t *vam = hicn_test_main.vat_main; u8 *sbuf = 0; @@ -813,8 +819,7 @@ static void format_udp_face (vl_api_hicn_face_udp_t * rmp) sbuf = format (0, "local_addr %U port %u remote_addr %U port %u", format_ip46_address, &local_addr, 0 /*IP46_ANY_TYPE */ , lport, - format_ip46_address, - &remote_addr, 0 /*IP46_ANY_TYPE */ , rport); + format_ip46_address, &remote_addr, 0 /*IP46_ANY_TYPE */ , rport); fformat (vam->ofp, "%s swif %d flags %d name %s\n", sbuf, @@ -1028,8 +1033,8 @@ api_hicn_api_route_get (vat_main_t * vam) } //Construct the API message M (HICN_API_ROUTE_GET, mp); - if (!ip46_address_is_ip4(&(prefix.fp_addr))) - prefix.fp_proto = fib_proto_from_ip46(IP46_TYPE_IP6); + if (!ip46_address_is_ip4 (&(prefix.fp_addr))) + prefix.fp_proto = fib_proto_from_ip46 (IP46_TYPE_IP6); ip_prefix_encode (&prefix, &mp->prefix); //send it... @@ -1185,8 +1190,8 @@ api_hicn_api_route_nhops_add (vat_main_t * vam) M (HICN_API_ROUTE_NHOPS_ADD, mp); ip_prefix_encode (&prefix, &mp->prefix); - if (!ip46_address_is_ip4(&(prefix.fp_addr))) - prefix.fp_proto = fib_proto_from_ip46(IP46_TYPE_IP6); + if (!ip46_address_is_ip4 (&(prefix.fp_addr))) + prefix.fp_proto = fib_proto_from_ip46 (IP46_TYPE_IP6); mp->face_ids[0] = clib_host_to_net_u32 (faceid); mp->n_faces = 1; @@ -1232,8 +1237,8 @@ api_hicn_api_route_del (vat_main_t * vam) M (HICN_API_ROUTE_DEL, mp); ip_prefix_encode (&prefix, &mp->prefix); - if (!ip46_address_is_ip4(&(prefix.fp_addr))) - prefix.fp_proto = fib_proto_from_ip46(IP46_TYPE_IP6); + if (!ip46_address_is_ip4 (&(prefix.fp_addr))) + prefix.fp_proto = fib_proto_from_ip46 (IP46_TYPE_IP6); /* send it... */ S (mp); @@ -1280,8 +1285,8 @@ api_hicn_api_route_nhop_del (vat_main_t * vam) M (HICN_API_ROUTE_NHOP_DEL, mp); ip_prefix_encode (&prefix, &mp->prefix); - if (!ip46_address_is_ip4(&(prefix.fp_addr))) - prefix.fp_proto = fib_proto_from_ip46(IP46_TYPE_IP6); + if (!ip46_address_is_ip4 (&(prefix.fp_addr))) + prefix.fp_proto = fib_proto_from_ip46 (IP46_TYPE_IP6); mp->faceid = clib_host_to_net_u32 (faceid); @@ -1411,8 +1416,9 @@ static void } fformat (vam->ofp, "%s", mp->description); } + static int -api_hicn_api_ip_punting_add(vat_main_t * vam) +api_hicn_api_ip_punting_add (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_hicn_api_punting_add_t *mp; @@ -1451,9 +1457,9 @@ api_hicn_api_ip_punting_add(vat_main_t * vam) /* Construct the API message */ M (HICN_API_PUNTING_ADD, mp); mp->type = IP_PUNT; - if (!ip46_address_is_ip4(&(prefix.fp_addr))) + if (!ip46_address_is_ip4 (&(prefix.fp_addr))) { - prefix.fp_proto = fib_proto_from_ip46(IP46_TYPE_IP6); + prefix.fp_proto = fib_proto_from_ip46 (IP46_TYPE_IP6); } ip_prefix_encode (&prefix, &mp->rule.ip.prefix); @@ -1469,7 +1475,7 @@ api_hicn_api_ip_punting_add(vat_main_t * vam) } static int -api_hicn_api_udp_punting_add(vat_main_t * vam) +api_hicn_api_udp_punting_add (vat_main_t * vam) { unformat_input_t *input = vam->input; vl_api_hicn_api_punting_add_t *mp; @@ -1489,13 +1495,13 @@ api_hicn_api_udp_punting_add(vat_main_t * vam) else if (unformat (input, "sport %u", &sport)); else if (unformat (input, "dport %u", &dport)); else if (unformat (input, "ip4")) - { - ip_version = ADDRESS_IP4; - } + { + ip_version = ADDRESS_IP4; + } else if (unformat (input, "ip6")) - { - ip_version = ADDRESS_IP6; - } + { + ip_version = ADDRESS_IP6; + } else if (unformat (input, "intfc %d", &swif)) {; } @@ -1526,9 +1532,9 @@ api_hicn_api_udp_punting_add(vat_main_t * vam) /* Construct the API message */ M (HICN_API_PUNTING_ADD, mp); mp->type = UDP_PUNT; - if (!ip46_address_is_ip4(&(prefix.fp_addr))) + if (!ip46_address_is_ip4 (&(prefix.fp_addr))) { - prefix.fp_proto = fib_proto_from_ip46(IP46_TYPE_IP6); + prefix.fp_proto = fib_proto_from_ip46 (IP46_TYPE_IP6); } ip_prefix_encode (&prefix, &mp->rule.ip.prefix); @@ -1579,6 +1585,10 @@ api_hicn_api_register_prod_app (vat_main_t * vam) clib_warning ("Please specify prefix..."); return 1; } + + prefix.fp_proto = + ip46_address_is_ip4 (&(prefix.fp_addr)) ? FIB_PROTOCOL_IP4 : + FIB_PROTOCOL_IP6; /* Construct the API message */ M (HICN_API_REGISTER_PROD_APP, mp); ip_prefix_encode (&prefix, &mp->prefix); @@ -1618,6 +1628,43 @@ static void } static int +api_hicn_api_face_prod_del (vat_main_t * vam) +{ + unformat_input_t *input = vam->input; + vl_api_hicn_api_face_prod_del_t *mp; + u32 faceid = 0, ret; + + while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) + { + if (unformat (input, "face %d", &faceid)) + {; + } + else + { + break; + } + } + + //Check for presence of face ID + if (faceid == ~0) + { + clib_warning ("Please specify face ID"); + return 1; + } + //Construct the API message + M (HICN_API_FACE_PROD_DEL, mp); + mp->faceid = clib_host_to_net_u32 (faceid); + + //send it... + S (mp); + + //Wait for a reply... + W (ret); + + return ret; +} + +static int api_hicn_api_register_cons_app (vat_main_t * vam) { vl_api_hicn_api_register_cons_app_t *mp; @@ -1635,6 +1682,43 @@ api_hicn_api_register_cons_app (vat_main_t * vam) return ret; } +static int +api_hicn_api_face_cons_del (vat_main_t * vam) +{ + unformat_input_t *input = vam->input; + vl_api_hicn_api_face_cons_del_t *mp; + u32 faceid = 0, ret; + + while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) + { + if (unformat (input, "face %d", &faceid)) + {; + } + else + { + break; + } + } + + //Check for presence of face ID + if (faceid == ~0) + { + clib_warning ("Please specify face ID"); + return 1; + } + //Construct the API message + M (HICN_API_FACE_CONS_DEL, mp); + mp->faceid = clib_host_to_net_u32 (faceid); + + //send it... + S (mp); + + //Wait for a reply... + W (ret); + + return ret; +} + static void vl_api_hicn_api_register_cons_app_reply_t_handler (vl_api_hicn_api_register_cons_app_reply_t * mp) @@ -1696,7 +1780,9 @@ _(hicn_api_strategy_get, "strategy <id>") \ _(hicn_api_ip_punting_add, "prefix <IP4/IP6>/<subnet> intfc <swif>") \ _(hicn_api_udp_punting_add, "prefix <IP4/IP6>/<subnet> intfc <swif> sport <port> dport <port> ip4/ip6") \ _(hicn_api_register_prod_app, "prefix <IP4/IP6>/<subnet> id <appif_id>") \ -_(hicn_api_register_cons_app, "") +_(hicn_api_face_prod_del, "face <faceID>") \ +_(hicn_api_register_cons_app, "") \ +_(hicn_api_face_cons_del, "face <faceID>") void hicn_vat_api_hookup (vat_main_t * vam) |