Python-API: Inital commit of Python bindings for the VPP API.
[vpp.git] / vpp / api / api.c
index 32be34f..cf2b8f4 100644 (file)
@@ -208,14 +208,6 @@ bad_tx_sw_if_index:                                \
 
 #define foreach_vpe_api_msg                                             \
 _(WANT_INTERFACE_EVENTS, want_interface_events)                         \
-_(WANT_FROM_NETCONF_SERVER, want_from_netconf_server)                   \
-_(WANT_TO_NETCONF_SERVER, want_to_netconf_server)                       \
-_(WANT_FROM_NETCONF_CLIENT, want_from_netconf_client)                   \
-_(WANT_TO_NETCONF_CLIENT, want_to_netconf_client)                       \
-_(FROM_NETCONF_SERVER, from_netconf_server)                             \
-_(TO_NETCONF_SERVER, to_netconf_server)                                 \
-_(FROM_NETCONF_CLIENT, from_netconf_client)                             \
-_(TO_NETCONF_CLIENT, to_netconf_client)                                 \
 _(WANT_OAM_EVENTS, want_oam_events)                                     \
 _(OAM_ADD_DEL, oam_add_del)                                             \
 _(SW_INTERFACE_DUMP, sw_interface_dump)                                 \
@@ -570,10 +562,6 @@ reply:                                                                  \
 }
 
 pub_sub_handler (interface_events,INTERFACE_EVENTS)
-pub_sub_handler (from_netconf_server,FROM_NETCONF_SERVER)
-pub_sub_handler (to_netconf_server,TO_NETCONF_SERVER)
-pub_sub_handler (from_netconf_client,FROM_NETCONF_CLIENT)
-pub_sub_handler (to_netconf_client,TO_NETCONF_CLIENT)
 pub_sub_handler (oam_events,OAM_EVENTS)
 
 #define RESOLUTION_EVENT 1
@@ -3326,7 +3314,7 @@ static void vl_api_cli_request_t_handler
     rp->_vl_msg_id = ntohs(VL_API_CLI_REPLY);
     rp->context = mp->context;
 
-    unformat_init_vector (&input, (u8 *)mp->cmd_in_shmem);
+    unformat_init_vector (&input, (u8 *)(uword)mp->cmd_in_shmem);
 
     vlib_cli_input (vm, &input, shmem_cli_output, 
                     (uword)&shmem_vec);
@@ -5203,11 +5191,11 @@ static void
 vl_api_ikev2_profile_add_del_t_handler
 (vl_api_ikev2_profile_add_del_t * mp)
 {
-    vlib_main_t * vm = vlib_get_main();
     vl_api_ikev2_profile_add_del_reply_t * rmp;
     int rv = 0;
 
 #if IPSEC > 0
+    vlib_main_t * vm = vlib_get_main();
     clib_error_t * error;
     u8 * tmp = format(0, "%s", mp->name);
     error = ikev2_add_del_profile(vm, tmp, mp->is_add);
@@ -5225,11 +5213,11 @@ static void
 vl_api_ikev2_profile_set_auth_t_handler
 (vl_api_ikev2_profile_set_auth_t * mp)
 {
-    vlib_main_t * vm = vlib_get_main();
     vl_api_ikev2_profile_set_auth_reply_t * rmp;
     int rv = 0;
 
 #if IPSEC > 0
+    vlib_main_t * vm = vlib_get_main();
     clib_error_t * error;
     u8 * tmp = format(0, "%s", mp->name);
     u8 * data = vec_new (u8, mp->data_len);
@@ -5250,11 +5238,11 @@ static void
 vl_api_ikev2_profile_set_id_t_handler
 (vl_api_ikev2_profile_set_id_t * mp)
 {
-    vlib_main_t * vm = vlib_get_main();
-    vl_api_ikev2_profile_set_id_reply_t * rmp;
+    vl_api_ikev2_profile_add_del_reply_t * rmp;
     int rv = 0;
 
 #if IPSEC > 0
+    vlib_main_t * vm = vlib_get_main();
     clib_error_t * error;
     u8 * tmp = format(0, "%s", mp->name);
     u8 * data = vec_new (u8, mp->data_len);
@@ -5275,11 +5263,11 @@ static void
 vl_api_ikev2_profile_set_ts_t_handler
 (vl_api_ikev2_profile_set_ts_t * mp)
 {
-    vlib_main_t * vm = vlib_get_main();
     vl_api_ikev2_profile_set_ts_reply_t * rmp;
     int rv = 0;
 
 #if IPSEC > 0
+    vlib_main_t * vm = vlib_get_main();
     clib_error_t * error;
     u8 * tmp = format(0, "%s", mp->name);
     error = ikev2_set_profile_ts(vm, tmp, mp->proto, mp->start_port,
@@ -5299,11 +5287,11 @@ static void
 vl_api_ikev2_set_local_key_t_handler
 (vl_api_ikev2_set_local_key_t * mp)
 {
-    vlib_main_t * vm = vlib_get_main();
-    vl_api_ikev2_set_local_key_reply_t * rmp;
+    vl_api_ikev2_profile_set_ts_reply_t * rmp;
     int rv = 0;
 
 #if IPSEC > 0
+    vlib_main_t * vm = vlib_get_main();
     clib_error_t * error;
 
     error = ikev2_set_local_key(vm, mp->key_file);
@@ -5377,8 +5365,8 @@ vl_api_map_domain_dump_t_handler
   }
 
   pool_foreach(d, mm->domains, ({
+    /* Make sure every field is initiated (or don't skip the memset()) */
     rmp = vl_msg_api_alloc (sizeof (*rmp));
-    memset (rmp, 0, sizeof (*rmp));
     rmp->_vl_msg_id = ntohs(VL_API_MAP_DOMAIN_DETAILS);
     rmp->domain_index = htonl(d - mm->domains);
     rmp->ea_bits_len = d->ea_bits_len;
@@ -5474,15 +5462,15 @@ vl_api_map_summary_stats_t_handler (
 
     map_domain_counter_unlock (mm);
 
-    /* Note: in HOST byte order! */
-    rmp->total_pkts[MAP_DOMAIN_COUNTER_RX] = total_pkts[MAP_DOMAIN_COUNTER_RX];
-    rmp->total_bytes[MAP_DOMAIN_COUNTER_RX] = total_bytes[MAP_DOMAIN_COUNTER_RX];
-    rmp->total_pkts[MAP_DOMAIN_COUNTER_TX] = total_pkts[MAP_DOMAIN_COUNTER_TX];
-    rmp->total_bytes[MAP_DOMAIN_COUNTER_TX] = total_bytes[MAP_DOMAIN_COUNTER_TX];
-    rmp->total_bindings = pool_elts(mm->domains);
+    /* Note: in network byte order! */
+    rmp->total_pkts[MAP_DOMAIN_COUNTER_RX] = clib_host_to_net_u64(total_pkts[MAP_DOMAIN_COUNTER_RX]);
+    rmp->total_bytes[MAP_DOMAIN_COUNTER_RX] = clib_host_to_net_u64(total_bytes[MAP_DOMAIN_COUNTER_RX]);
+    rmp->total_pkts[MAP_DOMAIN_COUNTER_TX] = clib_host_to_net_u64(total_pkts[MAP_DOMAIN_COUNTER_TX]);
+    rmp->total_bytes[MAP_DOMAIN_COUNTER_TX] = clib_host_to_net_u64(total_bytes[MAP_DOMAIN_COUNTER_TX]);
+    rmp->total_bindings = clib_host_to_net_u64(pool_elts(mm->domains));
     rmp->total_ip4_fragments = 0; // Not yet implemented. Should be a simple counter.
-    rmp->total_security_check[MAP_DOMAIN_COUNTER_TX] = map_error_counter_get(ip4_map_node.index, MAP_ERROR_ENCAP_SEC_CHECK);
-    rmp->total_security_check[MAP_DOMAIN_COUNTER_RX] = map_error_counter_get(ip4_map_node.index, MAP_ERROR_DECAP_SEC_CHECK);
+    rmp->total_security_check[MAP_DOMAIN_COUNTER_TX] = clib_host_to_net_u64(map_error_counter_get(ip4_map_node.index, MAP_ERROR_ENCAP_SEC_CHECK));
+    rmp->total_security_check[MAP_DOMAIN_COUNTER_RX] = clib_host_to_net_u64(map_error_counter_get(ip4_map_node.index, MAP_ERROR_DECAP_SEC_CHECK));
 
     vl_msg_api_send_shmem(q, (u8 *)&rmp);
 }
@@ -5668,11 +5656,6 @@ static void vl_api_##nn##_t_handler (                                   \
     vl_msg_api_free (mp);                                               \
 }
 
-BOUNCE_HANDLER(to_netconf_server);
-BOUNCE_HANDLER(from_netconf_server);
-BOUNCE_HANDLER(to_netconf_client);
-BOUNCE_HANDLER(from_netconf_client);
-
 /*
  * vpe_api_hookup
  * Add vpe's API message handlers to the table.
@@ -5708,11 +5691,6 @@ vpe_api_hookup (vlib_main_t *vm)
                              vl_api_sr_tunnel_add_del_t_print,
                              256, 1);
 
-    am->message_bounce [VL_API_FROM_NETCONF_SERVER] = 1;
-    am->message_bounce [VL_API_TO_NETCONF_SERVER] = 1;
-    am->message_bounce [VL_API_FROM_NETCONF_CLIENT] = 1;
-    am->message_bounce [VL_API_TO_NETCONF_CLIENT] = 1;
-
     /* 
      * Trace space for 8 MPLS encap labels, classifier mask+match
      */