summaryrefslogtreecommitdiff
path: root/cesar/cl/src/trace.c
blob: 9ad0392a54bee8c2daf860cb849f16f2e838e29e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/* Cesar project {{{
 *
 * Copyright (C) 2007 Spidcom
 *
 * <<<Licence>>>
 *
 * }}} */
/**
 * \file    cl/src/trace.c
 * \brief   « brief description »
 * \ingroup « module »
 *
 * « long description »
 */
#include "common/std.h"

#include "cl/cl.h"
#include "cl/inc/trace.h"

#include "cl/inc/context.h"

/**
 * Initialize the trace buffer
 * \param  ctx  the cl context
 */
void
cl_trace_init (cl_t *ctx)
{
    static trace_namespace_t namespace;
    static const trace_event_id_t event_ids[] =
    {
        TRACE_EVENT (CL_TRACE_INIT, "CL_INIT", TIMESTAMP),
        TRACE_EVENT (CL_TRACE_UNINIT, "CL_UNINIT", TIMESTAMP),
        TRACE_EVENT (CL_TRACE_MME_SEND_MULTIUNICAST, "MME Multiunicast, length: %d, buffer: %x, dtei: %d", TIMESTAMP),
        TRACE_EVENT (CL_TRACE_MME_SEND_UNASSOC_UNICAST, "MME send as unassociated unicast, length: %d, buffer: %x, dtei: %d", TIMESTAMP),
        TRACE_EVENT (CL_TRACE_MME_SEND_TO_UNASSOC, "MME send to unassociated STA, length: %d, buffer: %x, dtei: %d", TIMESTAMP),
        TRACE_EVENT (CL_TRACE_MME_SEND_UNICAST, "MME send unicast, length: %d, buffer: %x, dtei: %d", TIMESTAMP),
        TRACE_EVENT (CL_TRACE_MME_SEND_TO_DRIVER, "CL_MME_SEND_TO_DRIVER length : %d, buffer @ : %x", TIMESTAMP),
        TRACE_EVENT (CL_TRACE_MME_SEND_DONE, "CL_MME_SEND_DONE buffer : %d", TIMESTAMP),
        TRACE_EVENT (CL_TRACE_MME_SEND_DROP, "CL_MME_SEND_DROP authenticated : %d, buffer @ :  %x, length : %d", TIMESTAMP),
        TRACE_EVENT (CL_TRACE_MME_BUFFER_ADD, "CL_MME_BUFFER_ADD buffer @ : %x", TIMESTAMP),
        TRACE_EVENT (CL_TRACE_MME_RECV, "CL_MME_RECV length : %d, buffer @ : %x, from sar : %d", TIMESTAMP),
        TRACE_EVENT (CL_TRACE_MME_RECV_DONE, "CL_MME_RECV_DONE buffer @ : %x, from sar : %d", TIMESTAMP),
        TRACE_EVENT (CL_TRACE_MACTOTEI_COPY, "CL_MACTOTEI_COPY table @ : %x, tag : %d", TIMESTAMP),
        TRACE_EVENT (CL_TRACE_MACTOTEI_USE, "CL_MACTOTEI_USE table @ : %x", TIMESTAMP),
        TRACE_EVENT (CL_TRACE_MACTOTEI_FIND_TEI, "CL_MACTOTEI_FIND_TEI mac @ : %m, found  %d, tei use : %x", TIMESTAMP),
        TRACE_EVENT (CL_TRACE_CLASSIFIER, "CL_CLASSIFIER tei : %x, bcast  %d, acs : %d, drop : %d, lid : %x", TIMESTAMP),
        TRACE_EVENT (CL_TRACE_DATA_SEND, "CL_DATA_SEND buffer @ : %x, length : %d, tei : %x, lid : %x, bcast : %d", TIMESTAMP),
        TRACE_EVENT (CL_TRACE_DATA_SEND_DROP, "CL_DATA_SEND_DROP authenticated : %d, buffer @ :  %x, length : %d", TIMESTAMP),
        TRACE_EVENT (CL_TRACE_DATA_SEND_DONE, "CL_DATA_SEND_DONE buffer @ :  %x", TIMESTAMP),
        TRACE_EVENT (CL_TRACE_DATA_SEND_MULTI_FAILED, "Multiunicast data send failed drop : %d, acs : %d, mfs : %x, dtei : %x, group : %d", TIMESTAMP),
        TRACE_EVENT (CL_TRACE_DATA_RECV, "CL_DATA_RECV buffer @ :  %x, destination : %m, source : %m, length : %d", TIMESTAMP),
        TRACE_EVENT (CL_TRACE_DATA_BUFFER_ADD, "CL_DATA_BUFFER_ADD buffer @ : %x", TIMESTAMP),
        TRACE_EVENT (CL_TRACE_BRIDGE_ADD, "Bridging MAC %m"),
    };
    dbg_assert (ctx);
    trace_namespace_init (&namespace, event_ids, COUNT (event_ids));
    trace_buffer_add (&ctx->trace, "cl", 8, 4, true, &namespace);
}

/**
 * Uninitialize the trace buffer
 * \param  ctx  the cl context.
 */
void
cl_trace_uninit(cl_t *ctx)
{
    dbg_assert (ctx);
    trace_buffer_remove (&ctx->trace);
}

/**
 * Print the trace
 * \param  ctx  the cl context.
 */
void
cl_trace_print (cl_t *ctx)
{
    dbg_assert (ctx);

    trace_buffer_dbg_dump(&ctx->trace);
}