aboutsummaryrefslogtreecommitdiff
path: root/src/transport/plugin_transport_wlan.c
diff options
context:
space:
mode:
authorDavid Brodski <david@brodski.eu>2011-09-21 19:27:22 +0000
committerDavid Brodski <david@brodski.eu>2011-09-21 19:27:22 +0000
commitcdaabfb92e4a9148c49888e814a428421eab29f3 (patch)
tree14bc10cb5e9b1a7241e33452ad08d05039eb8f1d /src/transport/plugin_transport_wlan.c
parent7e8a0c80d5c74bb682be8933c1dd1d71dcb2a099 (diff)
downloadgnunet-cdaabfb92e4a9148c49888e814a428421eab29f3.tar.gz
gnunet-cdaabfb92e4a9148c49888e814a428421eab29f3.zip
Bugfixes and statistics added
Diffstat (limited to 'src/transport/plugin_transport_wlan.c')
-rw-r--r--src/transport/plugin_transport_wlan.c37
1 files changed, 27 insertions, 10 deletions
diff --git a/src/transport/plugin_transport_wlan.c b/src/transport/plugin_transport_wlan.c
index 1c65f5bcf..07e61c4c5 100644
--- a/src/transport/plugin_transport_wlan.c
+++ b/src/transport/plugin_transport_wlan.c
@@ -817,11 +817,7 @@ wlan_plugin_address_to_string (void *cls, const void *addr, size_t addrlen)
817 GNUNET_snprintf (ret, sizeof (ret), "%s Mac-Address %X:%X:%X:%X:%X:%X", 817 GNUNET_snprintf (ret, sizeof (ret), "%s Mac-Address %X:%X:%X:%X:%X:%X",
818 PROTOCOL_PREFIX, mac->mac[0], mac->mac[1], mac->mac[2], 818 PROTOCOL_PREFIX, mac->mac[0], mac->mac[1], mac->mac[2],
819 mac->mac[3], mac->mac[4], mac->mac[5]); 819 mac->mac[3], mac->mac[4], mac->mac[5]);
820#if DEBUG_wlan 820
821 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, PLUGIN_LOG_NAME,
822 "Func wlan_plugin_address_to_string made string: %s\n",
823 ret);
824#endif
825 return ret; 821 return ret;
826} 822}
827 823
@@ -845,6 +841,7 @@ session_timeout (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
845 (GNUNET_TIME_absolute_add 841 (GNUNET_TIME_absolute_add
846 (queue->content->last_activity, SESSION_TIMEOUT)).rel_value == 0) 842 (queue->content->last_activity, SESSION_TIMEOUT)).rel_value == 0)
847 { 843 {
844 GNUNET_STATISTICS_update (queue->content->mac->plugin->env->stats, _("# wlan session timeouts"), 1, GNUNET_NO);
848 free_session (queue->content->mac->plugin, queue, GNUNET_YES); 845 free_session (queue->content->mac->plugin, queue, GNUNET_YES);
849 } 846 }
850 else 847 else
@@ -868,6 +865,7 @@ create_session (struct Plugin *plugin, struct MacEndpoint *endpoint,
868 const struct GNUNET_PeerIdentity *peer) 865 const struct GNUNET_PeerIdentity *peer)
869{ 866{
870 GNUNET_assert (endpoint != NULL); 867 GNUNET_assert (endpoint != NULL);
868 GNUNET_STATISTICS_update (plugin->env->stats, _("# wlan session created"), 1, GNUNET_NO);
871 struct Sessionqueue *queue = 869 struct Sessionqueue *queue =
872 GNUNET_malloc (sizeof (struct Sessionqueue) + sizeof (struct Session)); 870 GNUNET_malloc (sizeof (struct Sessionqueue) + sizeof (struct Session));
873 871
@@ -1407,6 +1405,8 @@ send_hello_beacon (struct Plugin *plugin)
1407 struct GNUNET_MessageHeader *msgheader2; 1405 struct GNUNET_MessageHeader *msgheader2;
1408 const struct GNUNET_MessageHeader *hello; 1406 const struct GNUNET_MessageHeader *hello;
1409 1407
1408 GNUNET_STATISTICS_update (plugin->env->stats, _("# wlan hello beacons send"), 1, GNUNET_NO);
1409
1410 hello = plugin->env->get_our_hello (); 1410 hello = plugin->env->get_our_hello ();
1411 hallo_size = GNUNET_HELLO_size ((struct GNUNET_HELLO_Message *) hello); 1411 hallo_size = GNUNET_HELLO_size ((struct GNUNET_HELLO_Message *) hello);
1412 GNUNET_assert (sizeof (struct WlanHeader) + hallo_size <= WLAN_MTU); 1412 GNUNET_assert (sizeof (struct WlanHeader) + hallo_size <= WLAN_MTU);
@@ -1621,6 +1621,8 @@ send_ack (struct Plugin *plugin, struct AckSendQueue *ack)
1621 ntohs (ack->hdr->size) - sizeof (struct Radiotap_Send)); 1621 ntohs (ack->hdr->size) - sizeof (struct Radiotap_Send));
1622#endif 1622#endif
1623 1623
1624 GNUNET_STATISTICS_update (plugin->env->stats, _("# wlan acks send"), 1, GNUNET_NO);
1625
1624 getRadiotapHeader (plugin, ack->endpoint, ack->radioHeader); 1626 getRadiotapHeader (plugin, ack->endpoint, ack->radioHeader);
1625 getWlanHeader (ack->ieeewlanheader, &ack->endpoint->addr, plugin, 1627 getWlanHeader (ack->ieeewlanheader, &ack->endpoint->addr, plugin,
1626 ntohs (ack->hdr->size)); 1628 ntohs (ack->hdr->size));
@@ -1725,6 +1727,8 @@ do_transmit (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
1725 1727
1726 if (plugin->sending_messages_head != NULL) 1728 if (plugin->sending_messages_head != NULL)
1727 { 1729 {
1730 GNUNET_STATISTICS_update (plugin->env->stats, _("# wlan fragments send"), 1, GNUNET_NO);
1731
1728 fmq = plugin->sending_messages_head; 1732 fmq = plugin->sending_messages_head;
1729 fm = fmq->content; 1733 fm = fmq->content;
1730 GNUNET_CONTAINER_DLL_remove (plugin->sending_messages_head, 1734 GNUNET_CONTAINER_DLL_remove (plugin->sending_messages_head,
@@ -1881,6 +1885,8 @@ wlan_plugin_send (void *cls, const struct GNUNET_PeerIdentity *target,
1881 } 1885 }
1882 } 1886 }
1883 1887
1888 GNUNET_STATISTICS_update (plugin->env->stats, _("# wlan messages queued"), 1, GNUNET_NO);
1889
1884 //queue message: 1890 //queue message:
1885 1891
1886 //queue message in session 1892 //queue message in session
@@ -2175,6 +2181,7 @@ wlan_data_message_handler (void *cls, const struct GNUNET_MessageHeader *hdr)
2175 return; 2181 return;
2176 } 2182 }
2177 2183
2184 GNUNET_STATISTICS_update (plugin->env->stats, _("# wlan whole messages received"), 1, GNUNET_NO);
2178 wlanheader = (struct WlanHeader *) hdr; 2185 wlanheader = (struct WlanHeader *) hdr;
2179 2186
2180 session = search_session (plugin, endpoint, &wlanheader->source); 2187 session = search_session (plugin, endpoint, &wlanheader->source);
@@ -2367,7 +2374,12 @@ wlan_data_helper (void *cls, struct Session_light *session_light,
2367 ((const struct GNUNET_HELLO_Message *) hdr, 2374 ((const struct GNUNET_HELLO_Message *) hdr,
2368 &tmpsource) == GNUNET_OK) 2375 &tmpsource) == GNUNET_OK)
2369 { 2376 {
2370 session_light->session = create_session (plugin, session_light->macendpoint, &tmpsource); 2377 session_light->session = search_session (plugin, session_light->macendpoint, &tmpsource);
2378 if (session_light->session == NULL)
2379 {
2380 session_light->session = create_session (plugin, session_light->macendpoint, &tmpsource);
2381 }
2382 GNUNET_STATISTICS_update (plugin->env->stats, _("# wlan hallo messages received"), 1, GNUNET_NO);
2371 plugin->env->receive(plugin->env->cls,&session_light->session->target,hdr, NULL, 0, session_light->session, 2383 plugin->env->receive(plugin->env->cls,&session_light->session->target,hdr, NULL, 0, session_light->session,
2372 (const char *) &session_light->session->mac->addr, 2384 (const char *) &session_light->session->mac->addr,
2373 sizeof (session_light->session->mac->addr)); 2385 sizeof (session_light->session->mac->addr));
@@ -2400,7 +2412,7 @@ wlan_data_helper (void *cls, struct Session_light *session_light,
2400 session_light->addr.mac, 2412 session_light->addr.mac,
2401 6)); 2413 6));
2402#endif 2414#endif
2403 2415 GNUNET_STATISTICS_update (plugin->env->stats, _("# wlan fragments received"), 1, GNUNET_NO);
2404 int ret = 2416 int ret =
2405 GNUNET_DEFRAGMENT_process_fragment (session_light->macendpoint->defrag, 2417 GNUNET_DEFRAGMENT_process_fragment (session_light->macendpoint->defrag,
2406 hdr); 2418 hdr);
@@ -2452,6 +2464,7 @@ wlan_data_helper (void *cls, struct Session_light *session_light,
2452 while (fm != NULL) 2464 while (fm != NULL)
2453 { 2465 {
2454 fm2 = fm->next; 2466 fm2 = fm->next;
2467 GNUNET_STATISTICS_update (plugin->env->stats, _("# wlan acks received"), 1, GNUNET_NO);
2455 int ret = GNUNET_FRAGMENT_process_ack (fm->fragcontext, hdr); 2468 int ret = GNUNET_FRAGMENT_process_ack (fm->fragcontext, hdr);
2456 2469
2457 if (ret == GNUNET_OK) 2470 if (ret == GNUNET_OK)
@@ -2543,6 +2556,7 @@ macendpoint_timeout (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
2543 (GNUNET_TIME_absolute_add 2556 (GNUNET_TIME_absolute_add
2544 (endpoint->last_activity, MACENDPOINT_TIMEOUT)).rel_value == 0) 2557 (endpoint->last_activity, MACENDPOINT_TIMEOUT)).rel_value == 0)
2545 { 2558 {
2559 GNUNET_STATISTICS_update (endpoint->plugin->env->stats, _("# wlan mac endpoints timeouts"), 1, GNUNET_NO);
2546 free_macendpoint (endpoint->plugin, endpoint); 2560 free_macendpoint (endpoint->plugin, endpoint);
2547 } 2561 }
2548 else 2562 else
@@ -2564,6 +2578,7 @@ create_macendpoint (struct Plugin *plugin, const struct MacAddress *addr)
2564{ 2578{
2565 struct MacEndpoint *newend = GNUNET_malloc (sizeof (struct MacEndpoint)); 2579 struct MacEndpoint *newend = GNUNET_malloc (sizeof (struct MacEndpoint));
2566 2580
2581 GNUNET_STATISTICS_update (plugin->env->stats, _("# wlan mac endpoints created"), 1, GNUNET_NO);
2567 newend->addr = *addr; 2582 newend->addr = *addr;
2568 newend->plugin = plugin; 2583 newend->plugin = plugin;
2569 newend->addr = *addr; 2584 newend->addr = *addr;
@@ -2613,10 +2628,10 @@ wlan_process_helper (void *cls, void *client,
2613 case GNUNET_MESSAGE_TYPE_WLAN_HELPER_DATA: 2628 case GNUNET_MESSAGE_TYPE_WLAN_HELPER_DATA:
2614#if DEBUG_wlan 2629#if DEBUG_wlan
2615 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, PLUGIN_LOG_NAME, 2630 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, PLUGIN_LOG_NAME,
2616 "Func wlan_process_helper got GNUNET_MESSAGE_TYPE_WLAN_HELPER_DATA size: %u\n", 2631 "Func wlan_process_helper got GNUNET_MESSAGE_TYPE_WLAN_HELPER_DATA size: %u\n",
2617 ntohs (hdr->size)); 2632 ntohs (hdr->size));
2618#endif 2633#endif
2619 2634 GNUNET_STATISTICS_update (plugin->env->stats, _("# wlan WLAN_HELPER_DATA received"), 1, GNUNET_NO);
2620 //call wlan_process_helper with the message inside, later with wlan: analyze signal 2635 //call wlan_process_helper with the message inside, later with wlan: analyze signal
2621 if (ntohs (hdr->size) < 2636 if (ntohs (hdr->size) <
2622 sizeof (struct ieee80211_frame) + 2*sizeof (struct GNUNET_MessageHeader) + 2637 sizeof (struct ieee80211_frame) + 2*sizeof (struct GNUNET_MessageHeader) +
@@ -2667,6 +2682,7 @@ wlan_process_helper (void *cls, void *client,
2667 memcpy (&session_light->addr, &(wlanIeeeHeader->i_addr2), 2682 memcpy (&session_light->addr, &(wlanIeeeHeader->i_addr2),
2668 sizeof (struct MacAddress)); 2683 sizeof (struct MacAddress));
2669 //session_light->session = search_session(plugin,session_light->addr); 2684 //session_light->session = search_session(plugin,session_light->addr);
2685 GNUNET_STATISTICS_update (plugin->env->stats, _("# wlan messaged for this client received"), 1, GNUNET_NO);
2670 2686
2671 pos = 0; 2687 pos = 0;
2672 while (pos < datasize) 2688 while (pos < datasize)
@@ -2674,7 +2690,8 @@ wlan_process_helper (void *cls, void *client,
2674 temp_hdr = (struct GNUNET_MessageHeader *) &wlanIeeeHeader[1] + pos; 2690 temp_hdr = (struct GNUNET_MessageHeader *) &wlanIeeeHeader[1] + pos;
2675 if (ntohs(temp_hdr->size) <= datasize + pos) 2691 if (ntohs(temp_hdr->size) <= datasize + pos)
2676 { 2692 {
2677 wlan_data_helper (plugin, session_light, temp_hdr, rxinfo); 2693 GNUNET_STATISTICS_update (plugin->env->stats, _("# wlan messaged in WLAN_HELPER_DATA received"), 1, GNUNET_NO);
2694 wlan_data_helper (plugin, session_light, temp_hdr, rxinfo);
2678 } 2695 }
2679 else 2696 else
2680 { 2697 {