ogs_core_initialize:
   40|      1|{
   41|      1|    ogs_mem_init();
   42|      1|    ogs_log_init();
   43|      1|    ogs_pkbuf_init();
   44|      1|    ogs_socket_init();
   45|      1|    ogs_tlv_init();
   46|       |
   47|      1|    ogs_log_install_domain(&__ogs_mem_domain, "mem", ogs_core()->log.level);
   48|      1|    ogs_log_install_domain(&__ogs_sock_domain, "sock", ogs_core()->log.level);
   49|      1|    ogs_log_install_domain(&__ogs_event_domain, "event", ogs_core()->log.level);
   50|      1|    ogs_log_install_domain(&__ogs_thread_domain,
   51|      1|            "thread", ogs_core()->log.level);
   52|      1|    ogs_log_install_domain(&__ogs_tlv_domain, "tlv", ogs_core()->log.level);
   53|      1|}
ogs_core:
   65|    605|{
   66|    605|    return &self;
   67|    605|}

ogs_hash_make:
   70|      3|{
   71|      3|    ogs_hash_t *ht;
   72|      3|    ogs_time_t now = ogs_get_monotonic_time();
   73|       |
   74|      3|    ht = ogs_malloc(sizeof(ogs_hash_t));
  ------------------
  |  |   68|      3|    ogs_talloc_size(__ogs_talloc_core, size, __location__)
  ------------------
   75|      3|    if (!ht) {
  ------------------
  |  Branch (75:9): [True: 0, False: 3]
  ------------------
   76|      0|        ogs_error("ogs_malloc() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
   77|      0|        return NULL;
   78|      0|    }
   79|       |
   80|      3|    ht->free = NULL;
   81|      3|    ht->count = 0;
   82|      3|    ht->max = INITIAL_MAX;
  ------------------
  |  |   60|      3|#define INITIAL_MAX 15 /* tunable == 2^n - 1 */
  ------------------
   83|      3|    ht->seed = (unsigned int)((now >> 32) ^ now ^ 
   84|      3|                              (uintptr_t)ht ^ (uintptr_t)&now) - 1;
   85|      3|    ht->array = alloc_array(ht, ht->max);
   86|      3|    ht->hash_func = NULL;
   87|       |
   88|      3|    return ht;
   89|      3|}
ogs-hash.c:alloc_array:
   63|      3|{
   64|      3|    ogs_hash_entry_t **ptr = ogs_calloc(1, sizeof(*ht->array) * (max + 1));
  ------------------
  |  |   70|      3|    ogs_talloc_zero_size(__ogs_talloc_core, (nmemb) * (size), __location__)
  ------------------
   65|      3|    ogs_assert(ptr);
  ------------------
  |  |  113|      3|    do { \
  |  |  114|      3|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|      3|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 3, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      3|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|      3|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 3]
  |  |  ------------------
  ------------------
   66|      3|    return ptr;
   67|      3|}

ogs-log.c:ogs_list_first:
   51|   362k|{
   52|   362k|    return list->next;
   53|   362k|}
ogs-log.c:ogs_list_next:
   61|    761|{
   62|    761|    ogs_list_t *node = (ogs_list_t *)lnode;
   63|    761|    return node->next;
   64|    761|}
ogs-log.c:ogs_list_add:
  115|      8|{
  116|      8|    ogs_list_t *node = (ogs_list_t *)lnode;
  117|       |
  118|      8|    node->prev = list->prev;
  119|      8|    node->next = NULL;
  120|      8|    if (list->prev)
  ------------------
  |  Branch (120:9): [True: 6, False: 2]
  ------------------
  121|      6|        list->prev->next = node;
  122|      2|    else
  123|      2|        list->next = node;
  124|      8|    list->prev = node;
  125|      8|}

ogs_log_init:
  115|      1|{
  116|      1|    ogs_pool_init(&log_pool, ogs_core()->log.pool);
  ------------------
  |  |   52|      1|#define ogs_pool_init(pool, _size) do { \
  |  |   53|      1|    int i; \
  |  |   54|      1|    (pool)->name = #pool; \
  |  |   55|      1|    (pool)->free = malloc(sizeof(*(pool)->free) * _size); \
  |  |   56|      1|    ogs_assert((pool)->free); \
  |  |  ------------------
  |  |  |  |  113|      1|    do { \
  |  |  |  |  114|      1|        if (ogs_likely(expr)) ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   54|      1|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (54:23): [True: 1, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      1|        else { \
  |  |  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  117|      0|            ogs_abort(); \
  |  |  |  |  118|      0|        } \
  |  |  |  |  119|      1|    } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (119:13): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   57|      1|    (pool)->array = malloc(sizeof(*(pool)->array) * _size); \
  |  |   58|      1|    ogs_assert((pool)->array); \
  |  |  ------------------
  |  |  |  |  113|      1|    do { \
  |  |  |  |  114|      1|        if (ogs_likely(expr)) ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   54|      1|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (54:23): [True: 1, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      1|        else { \
  |  |  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  117|      0|            ogs_abort(); \
  |  |  |  |  118|      0|        } \
  |  |  |  |  119|      1|    } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (119:13): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   59|      1|    (pool)->index = malloc(sizeof(*(pool)->index) * _size); \
  |  |   60|      1|    ogs_assert((pool)->index); \
  |  |  ------------------
  |  |  |  |  113|      1|    do { \
  |  |  |  |  114|      1|        if (ogs_likely(expr)) ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   54|      1|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (54:23): [True: 1, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      1|        else { \
  |  |  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  117|      0|            ogs_abort(); \
  |  |  |  |  118|      0|        } \
  |  |  |  |  119|      1|    } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (119:13): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   61|      1|    (pool)->size = (pool)->avail = _size; \
  |  |   62|      1|    (pool)->head = (pool)->tail = 0; \
  |  |   63|      9|    for (i = 0; i < _size; i++) { \
  |  |  ------------------
  |  |  |  Branch (63:17): [True: 8, False: 1]
  |  |  ------------------
  |  |   64|      8|        (pool)->free[i] = &((pool)->array[i]); \
  |  |   65|      8|        (pool)->index[i] = NULL; \
  |  |   66|      8|    } \
  |  |   67|      1|    \
  |  |   68|      1|    (pool)->id_hash = ogs_hash_make(); \
  |  |   69|      1|    ogs_assert((pool)->id_hash); \
  |  |  ------------------
  |  |  |  |  113|      1|    do { \
  |  |  |  |  114|      1|        if (ogs_likely(expr)) ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   54|      1|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (54:23): [True: 1, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      1|        else { \
  |  |  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  117|      0|            ogs_abort(); \
  |  |  |  |  118|      0|        } \
  |  |  |  |  119|      1|    } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (119:13): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   70|      1|} while (0)
  |  |  ------------------
  |  |  |  Branch (70:10): [Folded, False: 1]
  |  |  ------------------
  ------------------
  117|      1|    ogs_pool_init(&domain_pool, ogs_core()->log.domain_pool);
  ------------------
  |  |   52|      1|#define ogs_pool_init(pool, _size) do { \
  |  |   53|      1|    int i; \
  |  |   54|      1|    (pool)->name = #pool; \
  |  |   55|      1|    (pool)->free = malloc(sizeof(*(pool)->free) * _size); \
  |  |   56|      1|    ogs_assert((pool)->free); \
  |  |  ------------------
  |  |  |  |  113|      1|    do { \
  |  |  |  |  114|      1|        if (ogs_likely(expr)) ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   54|      1|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (54:23): [True: 1, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      1|        else { \
  |  |  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  117|      0|            ogs_abort(); \
  |  |  |  |  118|      0|        } \
  |  |  |  |  119|      1|    } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (119:13): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   57|      1|    (pool)->array = malloc(sizeof(*(pool)->array) * _size); \
  |  |   58|      1|    ogs_assert((pool)->array); \
  |  |  ------------------
  |  |  |  |  113|      1|    do { \
  |  |  |  |  114|      1|        if (ogs_likely(expr)) ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   54|      1|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (54:23): [True: 1, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      1|        else { \
  |  |  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  117|      0|            ogs_abort(); \
  |  |  |  |  118|      0|        } \
  |  |  |  |  119|      1|    } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (119:13): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   59|      1|    (pool)->index = malloc(sizeof(*(pool)->index) * _size); \
  |  |   60|      1|    ogs_assert((pool)->index); \
  |  |  ------------------
  |  |  |  |  113|      1|    do { \
  |  |  |  |  114|      1|        if (ogs_likely(expr)) ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   54|      1|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (54:23): [True: 1, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      1|        else { \
  |  |  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  117|      0|            ogs_abort(); \
  |  |  |  |  118|      0|        } \
  |  |  |  |  119|      1|    } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (119:13): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   61|      1|    (pool)->size = (pool)->avail = _size; \
  |  |   62|      1|    (pool)->head = (pool)->tail = 0; \
  |  |   63|     65|    for (i = 0; i < _size; i++) { \
  |  |  ------------------
  |  |  |  Branch (63:17): [True: 64, False: 1]
  |  |  ------------------
  |  |   64|     64|        (pool)->free[i] = &((pool)->array[i]); \
  |  |   65|     64|        (pool)->index[i] = NULL; \
  |  |   66|     64|    } \
  |  |   67|      1|    \
  |  |   68|      1|    (pool)->id_hash = ogs_hash_make(); \
  |  |   69|      1|    ogs_assert((pool)->id_hash); \
  |  |  ------------------
  |  |  |  |  113|      1|    do { \
  |  |  |  |  114|      1|        if (ogs_likely(expr)) ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   54|      1|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (54:23): [True: 1, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      1|        else { \
  |  |  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  117|      0|            ogs_abort(); \
  |  |  |  |  118|      0|        } \
  |  |  |  |  119|      1|    } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (119:13): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   70|      1|} while (0)
  |  |  ------------------
  |  |  |  Branch (70:10): [Folded, False: 1]
  |  |  ------------------
  ------------------
  118|       |
  119|      1|    ogs_log_add_domain("core", ogs_core()->log.level);
  120|      1|    ogs_log_add_stderr();
  121|      1|}
ogs_log_add_stderr:
  152|      1|{
  153|      1|    ogs_log_t *log = NULL;
  154|       |    
  155|      1|    log = add_log(OGS_LOG_STDERR_TYPE);
  156|      1|    ogs_assert(log);
  ------------------
  |  |  113|      1|    do { \
  |  |  114|      1|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|      1|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      1|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|      1|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1]
  |  |  ------------------
  ------------------
  157|       |
  158|      1|    log->file.out = stderr;
  159|      1|    log->writer = file_writer;
  160|       |
  161|      1|#if !defined(_WIN32)
  162|      1|    log->print.color = 1;
  163|      1|#endif
  164|       |
  165|      1|    return log;
  166|      1|}
ogs_log_add_domain:
  204|      7|{
  205|      7|    ogs_log_domain_t *domain = NULL;
  206|       |
  207|      7|    ogs_assert(name);
  ------------------
  |  |  113|      7|    do { \
  |  |  114|      7|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|      7|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 7, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      7|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|      7|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 7]
  |  |  ------------------
  ------------------
  208|       |
  209|      7|    ogs_pool_alloc(&domain_pool, &domain);
  ------------------
  |  |  132|      7|#define ogs_pool_alloc(pool, node) do { \
  |  |  133|      7|    *(node) = NULL; \
  |  |  134|      7|    if ((pool)->avail > 0) { \
  |  |  ------------------
  |  |  |  Branch (134:9): [True: 7, False: 0]
  |  |  ------------------
  |  |  135|      7|        (pool)->avail--; \
  |  |  136|      7|        *(node) = (void*)(pool)->free[(pool)->head]; \
  |  |  137|      7|        (pool)->free[(pool)->head] = NULL; \
  |  |  138|      7|        (pool)->head = ((pool)->head + 1) % ((pool)->size); \
  |  |  139|      7|        (pool)->index[ogs_pool_index(pool, *(node))-1] = *(node); \
  |  |  ------------------
  |  |  |  |  152|      7|#define ogs_pool_index(pool, node) (((node) - (pool)->array)+1)
  |  |  ------------------
  |  |  140|      7|    } \
  |  |  141|      7|} while (0)
  |  |  ------------------
  |  |  |  Branch (141:10): [Folded, False: 7]
  |  |  ------------------
  ------------------
  210|      7|    ogs_assert(domain);
  ------------------
  |  |  113|      7|    do { \
  |  |  114|      7|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|      7|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 7, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      7|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|      7|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 7]
  |  |  ------------------
  ------------------
  211|       |
  212|      7|    domain->name = name;
  213|      7|    domain->id = ogs_pool_index(&domain_pool, domain);
  ------------------
  |  |  152|      7|#define ogs_pool_index(pool, node) (((node) - (pool)->array)+1)
  ------------------
  214|      7|    domain->level = level;
  215|       |
  216|      7|    ogs_list_add(&domain_list, domain);
  217|       |
  218|      7|    return domain;
  219|      7|}
ogs_log_find_domain:
  222|      6|{
  223|      6|    ogs_log_domain_t *domain = NULL;
  224|       |
  225|      6|    ogs_assert(name);
  ------------------
  |  |  113|      6|    do { \
  |  |  114|      6|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|      6|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 6, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      6|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|      6|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 6]
  |  |  ------------------
  ------------------
  226|       |
  227|      6|    ogs_list_for_each(&domain_list, domain)
  ------------------
  |  |   76|     27|    for (node = ogs_list_first(list); (node); \
  |  |  ------------------
  |  |  |  Branch (76:39): [True: 21, False: 6]
  |  |  ------------------
  |  |   77|     21|        node = ogs_list_next(node))
  ------------------
  228|     21|        if (!ogs_strcasecmp(domain->name, name))
  ------------------
  |  |   63|     21|#define ogs_strcasecmp strcasecmp
  ------------------
  |  Branch (228:13): [True: 0, False: 21]
  ------------------
  229|      0|            return domain;
  230|       |
  231|      6|    return NULL;
  232|      6|}
ogs_log_install_domain:
  292|      6|{
  293|      6|    ogs_log_domain_t *domain = NULL;
  294|       |
  295|      6|    ogs_assert(domain_id);
  ------------------
  |  |  113|      6|    do { \
  |  |  114|      6|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|      6|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 6, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      6|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|      6|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 6]
  |  |  ------------------
  ------------------
  296|      6|    ogs_assert(name);
  ------------------
  |  |  113|      6|    do { \
  |  |  114|      6|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|      6|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 6, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      6|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|      6|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 6]
  |  |  ------------------
  ------------------
  297|       |
  298|      6|    domain = ogs_log_find_domain(name);
  299|      6|    if (domain) {
  ------------------
  |  Branch (299:9): [True: 0, False: 6]
  ------------------
  300|      0|        ogs_warn("`%s` log-domain duplicated", name);
  ------------------
  |  |   37|      0|#define ogs_warn(...) ogs_log_message(OGS_LOG_WARN, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  301|      0|        if (level != domain->level) {
  ------------------
  |  Branch (301:13): [True: 0, False: 0]
  ------------------
  302|      0|            ogs_warn("[%s]->[%s] log-level changed",
  ------------------
  |  |   37|      0|#define ogs_warn(...) ogs_log_message(OGS_LOG_WARN, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  303|      0|                    level_strings[domain->level], level_strings[level]);
  304|      0|            ogs_log_set_domain_level(domain->id, level);
  305|      0|        }
  306|      6|    } else {
  307|      6|        domain = ogs_log_add_domain(name, level);
  308|      6|        ogs_assert(domain);
  ------------------
  |  |  113|      6|    do { \
  |  |  114|      6|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|      6|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 6, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      6|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|      6|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 6]
  |  |  ------------------
  ------------------
  309|      6|    }
  310|       |
  311|      6|    *domain_id = domain->id;
  312|      6|}
ogs_log_vprintf:
  404|   362k|{
  405|   362k|    ogs_log_t *log = NULL;
  406|   362k|    ogs_log_domain_t *domain = NULL;
  407|       |
  408|   362k|    char logstr[OGS_HUGE_LEN];
  409|   362k|    char *p, *last;
  410|       |
  411|   362k|    int wrote_stderr = 0;
  412|       |
  413|   362k|    ogs_list_for_each(&log_list, log) {
  ------------------
  |  |   76|   362k|    for (node = ogs_list_first(list); (node); \
  |  |  ------------------
  |  |  |  Branch (76:39): [True: 362k, False: 740]
  |  |  ------------------
  |  |   77|   362k|        node = ogs_list_next(node))
  ------------------
  414|   362k|        domain = ogs_pool_find(&domain_pool, id);
  ------------------
  |  |  154|   362k|    (_index > 0 && _index <= (pool)->size) ? (pool)->index[_index-1] : NULL
  |  |  ------------------
  |  |  |  Branch (154:6): [True: 362k, False: 0]
  |  |  |  Branch (154:20): [True: 362k, False: 0]
  |  |  ------------------
  ------------------
  415|   362k|        if (!domain) {
  ------------------
  |  Branch (415:13): [True: 0, False: 362k]
  ------------------
  416|      0|            fprintf(stderr, "No LogDomain[id:%d] in %s:%d", id, file, line);
  417|      0|            ogs_assert_if_reached();
  ------------------
  |  |  122|      0|    do { \
  |  |  123|      0|        ogs_fatal("%s: should not be reached.", OGS_FUNC); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  124|      0|        ogs_abort(); \
  |  |  125|      0|    } while(0)
  |  |  ------------------
  |  |  |  Branch (125:13): [Folded, False: 0]
  |  |  ------------------
  ------------------
  418|      0|        }
  419|   362k|        if (domain->level < level)
  ------------------
  |  Branch (419:13): [True: 361k, False: 740]
  ------------------
  420|   361k|            return;
  421|       |
  422|    740|        p = logstr;
  423|    740|        last = logstr + OGS_HUGE_LEN;
  ------------------
  |  |  210|    740|#define OGS_HUGE_LEN                    8192  /* Can Stack */
  ------------------
  424|       |
  425|    740|        if (!content_only) {
  ------------------
  |  Branch (425:13): [True: 370, False: 370]
  ------------------
  426|    370|            if (log->print.timestamp)
  ------------------
  |  Branch (426:17): [True: 370, False: 0]
  ------------------
  427|    370|                p = log_timestamp(p, last, log->print.color);
  428|    370|            if (log->print.domain)
  ------------------
  |  Branch (428:17): [True: 370, False: 0]
  ------------------
  429|    370|                p = log_domain(p, last, domain->name, log->print.color);
  430|    370|            if (log->print.level)
  ------------------
  |  Branch (430:17): [True: 370, False: 0]
  ------------------
  431|    370|                p = log_level(p, last, level, log->print.color);
  432|    370|        }
  433|       |
  434|    740|        p = log_content(p, last, format, ap);
  435|       |
  436|    740|        if (err) {
  ------------------
  |  Branch (436:13): [True: 0, False: 740]
  ------------------
  437|      0|            char errbuf[OGS_HUGE_LEN];
  438|      0|            p = ogs_slprintf(p, last, " (%d:%s)",
  439|      0|                    (int)err, ogs_strerror(err, errbuf, OGS_HUGE_LEN));
  ------------------
  |  |  210|      0|#define OGS_HUGE_LEN                    8192  /* Can Stack */
  ------------------
  440|      0|        }
  441|       |
  442|    740|        if (!content_only) {
  ------------------
  |  Branch (442:13): [True: 370, False: 370]
  ------------------
  443|    370|            if (log->print.fileline)
  ------------------
  |  Branch (443:17): [True: 370, False: 0]
  ------------------
  444|    370|                p = ogs_slprintf(p, last, " (%s:%d)", file, line);
  445|    370|            if (log->print.function)
  ------------------
  |  Branch (445:17): [True: 0, False: 370]
  ------------------
  446|      0|                p = ogs_slprintf(p, last, " %s()", func);
  447|    370|            if (log->print.linefeed) 
  ------------------
  |  Branch (447:17): [True: 370, False: 0]
  ------------------
  448|    370|                p = log_linefeed(p, last);
  449|    370|        }
  450|       |
  451|    740|        log->writer(log, level, logstr);
  452|       |        
  453|    740|        if (log->type == OGS_LOG_STDERR_TYPE)
  ------------------
  |  Branch (453:13): [True: 740, False: 0]
  ------------------
  454|    740|            wrote_stderr = 1;
  455|    740|    }
  456|       |
  457|    740|    if (!wrote_stderr)
  ------------------
  |  Branch (457:9): [True: 0, False: 740]
  ------------------
  458|      0|    {
  459|      0|        int use_color = 0;
  460|      0|#if !defined(_WIN32)
  461|      0|        use_color = 1;
  462|      0|#endif
  463|       |
  464|      0|        p = logstr;
  465|      0|        last = logstr + OGS_HUGE_LEN;
  ------------------
  |  |  210|      0|#define OGS_HUGE_LEN                    8192  /* Can Stack */
  ------------------
  466|       |
  467|      0|        if (!content_only) {
  ------------------
  |  Branch (467:13): [True: 0, False: 0]
  ------------------
  468|      0|            p = log_timestamp(p, last, use_color);
  469|      0|            p = log_level(p, last, level, use_color);
  470|      0|        }
  471|      0|        p = log_content(p, last, format, ap);
  472|      0|        if (!content_only) {
  ------------------
  |  Branch (472:13): [True: 0, False: 0]
  ------------------
  473|      0|            p = ogs_slprintf(p, last, " (%s:%d)", file, line);
  474|      0|            p = ogs_slprintf(p, last, " %s()", func);
  475|      0|            p = log_linefeed(p, last);
  476|      0|        }
  477|       |
  478|      0|        fprintf(stderr, "%s", logstr);
  479|       |        fflush(stderr);
  480|      0|    }
  481|    740|}
ogs_log_printf:
  486|   362k|{
  487|   362k|    va_list args;
  488|       |
  489|   362k|    va_start(args, format);
  490|   362k|    ogs_log_vprintf(level, id,
  491|   362k|            err, file, line, func, content_only, format, args);
  492|       |    va_end(args);
  493|   362k|}
ogs_log_hexdump_func:
  497|   114k|{
  498|   114k|    size_t n, m;
  499|   114k|    char dumpstr[OGS_HUGE_LEN];
  500|   114k|    char *p, *last;
  501|       |
  502|       |    /*
  503|       |     * Nothing is written to dumpstr when len is zero, so printing it
  504|       |     * would output an uninitialized stack buffer.
  505|       |     */
  506|   114k|    if (!len)
  ------------------
  |  Branch (506:9): [True: 23.4k, False: 90.9k]
  ------------------
  507|  23.4k|        return;
  508|       |
  509|  90.9k|    last = dumpstr + OGS_HUGE_LEN;
  ------------------
  |  |  210|  90.9k|#define OGS_HUGE_LEN                    8192  /* Can Stack */
  ------------------
  510|  90.9k|    p = dumpstr;
  511|       |
  512|   188k|    for (n = 0; n < len; n += 16) {
  ------------------
  |  Branch (512:17): [True: 97.1k, False: 90.9k]
  ------------------
  513|  97.1k|        p = ogs_slprintf(p, last, "%04x: ", (int)n);
  514|       |        
  515|  1.65M|        for (m = n; m < n + 16; m++) {
  ------------------
  |  Branch (515:21): [True: 1.55M, False: 97.1k]
  ------------------
  516|  1.55M|            if (m > n && (m % 4) == 0)
  ------------------
  |  Branch (516:17): [True: 1.45M, False: 97.1k]
  |  Branch (516:26): [True: 291k, False: 1.16M]
  ------------------
  517|   291k|                p = ogs_slprintf(p, last, " ");
  518|  1.55M|            if (m < len)
  ------------------
  |  Branch (518:17): [True: 211k, False: 1.34M]
  ------------------
  519|   211k|                p = ogs_slprintf(p, last, "%02x", data[m]);
  520|  1.34M|            else
  521|  1.34M|                p = ogs_slprintf(p, last, "  ");
  522|  1.55M|        }
  523|       |
  524|  97.1k|        p = ogs_slprintf(p, last, "   ");
  525|       |
  526|   308k|        for (m = n; m < len && m < n + 16; m++)
  ------------------
  |  Branch (526:21): [True: 217k, False: 90.9k]
  |  Branch (526:32): [True: 211k, False: 6.19k]
  ------------------
  527|   211k|            p = ogs_slprintf(p, last, "%c", isprint(data[m]) ? data[m] : '.');
  ------------------
  |  Branch (527:45): [True: 33.4k, False: 177k]
  ------------------
  528|       |
  529|  97.1k|        p = ogs_slprintf(p, last, "\n");
  530|  97.1k|    }
  531|       |
  532|       |    ogs_log_print(level, "%s", dumpstr);
  ------------------
  |  |   48|  90.9k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   32|  90.9k|#define OGS_LOG_DOMAIN      1
  |  |  ------------------
  |  |   49|  90.9k|    0, NULL, 0, NULL,  \
  |  |   50|  90.9k|    1, __VA_ARGS__) 
  ------------------
  533|  90.9k|}
ogs-log.c:add_log:
  536|      1|{
  537|      1|    ogs_log_t *log = NULL;
  538|       |
  539|      1|    ogs_pool_alloc(&log_pool, &log);
  ------------------
  |  |  132|      1|#define ogs_pool_alloc(pool, node) do { \
  |  |  133|      1|    *(node) = NULL; \
  |  |  134|      1|    if ((pool)->avail > 0) { \
  |  |  ------------------
  |  |  |  Branch (134:9): [True: 1, False: 0]
  |  |  ------------------
  |  |  135|      1|        (pool)->avail--; \
  |  |  136|      1|        *(node) = (void*)(pool)->free[(pool)->head]; \
  |  |  137|      1|        (pool)->free[(pool)->head] = NULL; \
  |  |  138|      1|        (pool)->head = ((pool)->head + 1) % ((pool)->size); \
  |  |  139|      1|        (pool)->index[ogs_pool_index(pool, *(node))-1] = *(node); \
  |  |  ------------------
  |  |  |  |  152|      1|#define ogs_pool_index(pool, node) (((node) - (pool)->array)+1)
  |  |  ------------------
  |  |  140|      1|    } \
  |  |  141|      1|} while (0)
  |  |  ------------------
  |  |  |  Branch (141:10): [Folded, False: 1]
  |  |  ------------------
  ------------------
  540|      1|    ogs_assert(log);
  ------------------
  |  |  113|      1|    do { \
  |  |  114|      1|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|      1|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|      1|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|      1|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1]
  |  |  ------------------
  ------------------
  541|      1|    memset(log, 0, sizeof *log);
  542|       |
  543|      1|    log->type = type;
  544|       |
  545|      1|    log->print.timestamp = 1;
  546|      1|    log->print.domain = 1;
  547|      1|    log->print.level = 1;
  548|      1|    log->print.fileline = 1;
  549|      1|    log->print.linefeed = 1;
  550|       |
  551|      1|    ogs_list_add(&log_list, log);
  552|       |
  553|      1|    return log;
  554|      1|}
ogs-log.c:log_timestamp:
  571|    370|{
  572|    370|    struct timeval tv;
  573|    370|    struct tm tm;
  574|    370|    char nowstr[32];
  575|       |
  576|    370|    ogs_gettimeofday(&tv);
  577|    370|    ogs_localtime(tv.tv_sec, &tm);
  578|    370|    strftime(nowstr, sizeof nowstr, "%m/%d %H:%M:%S", &tm);
  579|       |
  580|    370|    buf = ogs_slprintf(buf, last, "%s%s.%03d%s: ",
  581|    370|            use_color ? TA_FGC_GREEN : "",
  ------------------
  |  |   37|    370|#define TA_FGC_GREEN        "\033[32m"      /* Green */
  ------------------
  |  Branch (581:13): [True: 370, False: 0]
  ------------------
  582|    370|            nowstr, (int)(tv.tv_usec/1000),
  583|    370|            use_color ? TA_NOR : "");
  ------------------
  |  |   32|    370|#define TA_NOR              "\033[0m"       /* all off */
  ------------------
  |  Branch (583:13): [True: 370, False: 0]
  ------------------
  584|       |
  585|    370|    return buf;
  586|    370|}
ogs-log.c:log_domain:
  590|    370|{
  591|    370|    buf = ogs_slprintf(buf, last, "[%s%s%s] ",
  592|    370|            use_color ? TA_FGC_YELLOW : "",
  ------------------
  |  |   39|    370|#define TA_FGC_YELLOW       "\033[33m"      /* Yellow */
  ------------------
  |  Branch (592:13): [True: 370, False: 0]
  ------------------
  593|    370|            name,
  594|    370|            use_color ? TA_NOR : "");
  ------------------
  |  |   32|    370|#define TA_NOR              "\033[0m"       /* all off */
  ------------------
  |  Branch (594:13): [True: 370, False: 0]
  ------------------
  595|       |
  596|    370|    return buf;
  597|    370|}
ogs-log.c:log_level:
  601|    370|{
  602|    370|    const char *colors[] = {
  603|    370|        TA_NOR,
  ------------------
  |  |   32|    370|#define TA_NOR              "\033[0m"       /* all off */
  ------------------
  604|    370|        TA_FGC_BOLD_RED, TA_FGC_BOLD_YELLOW, TA_FGC_BOLD_CYAN,
  ------------------
  |  |   36|    370|#define TA_FGC_BOLD_RED     "\033[1;31m"    /* Bold Red */
  ------------------
                      TA_FGC_BOLD_RED, TA_FGC_BOLD_YELLOW, TA_FGC_BOLD_CYAN,
  ------------------
  |  |   40|    370|#define TA_FGC_BOLD_YELLOW  "\033[1;33m"    /* Bold Yellow */
  ------------------
                      TA_FGC_BOLD_RED, TA_FGC_BOLD_YELLOW, TA_FGC_BOLD_CYAN,
  ------------------
  |  |   43|    370|#define TA_FGC_BOLD_CYAN    "\033[1;36m"    /* Bold Cyan */
  ------------------
  605|    370|        TA_FGC_BOLD_GREEN, TA_FGC_BOLD_WHITE, TA_FGC_WHITE,
  ------------------
  |  |   38|    370|#define TA_FGC_BOLD_GREEN   "\033[1;32m"    /* Bold Green */
  ------------------
                      TA_FGC_BOLD_GREEN, TA_FGC_BOLD_WHITE, TA_FGC_WHITE,
  ------------------
  |  |   45|    370|#define TA_FGC_BOLD_WHITE   "\033[1;37m"    /* Bold White  */
  ------------------
                      TA_FGC_BOLD_GREEN, TA_FGC_BOLD_WHITE, TA_FGC_WHITE,
  ------------------
  |  |   44|    370|#define TA_FGC_WHITE        "\033[37m"      /* White  */
  ------------------
  606|    370|    };
  607|       |
  608|    370|    buf = ogs_slprintf(buf, last, "%s%s%s: ",
  609|    370|            use_color ? colors[level] : "",
  ------------------
  |  Branch (609:13): [True: 370, False: 0]
  ------------------
  610|    370|            level_strings[level],
  611|    370|            use_color ? TA_NOR : "");
  ------------------
  |  |   32|    370|#define TA_NOR              "\033[0m"       /* all off */
  ------------------
  |  Branch (611:13): [True: 370, False: 0]
  ------------------
  612|       |
  613|    370|    return buf;
  614|    370|}
ogs-log.c:log_content:
  618|    740|{
  619|    740|    va_list bp;
  620|       |
  621|    740|    va_copy(bp, ap);
  622|    740|#pragma GCC diagnostic push
  623|    740|#pragma GCC diagnostic ignored "-Wformat-nonliteral"
  624|    740|    buf = ogs_vslprintf(buf, last, format, bp);
  625|    740|#pragma GCC diagnostic pop
  626|    740|    va_end(bp);
  627|       |
  628|    740|    return buf;
  629|    740|}
ogs-log.c:log_linefeed:
  632|    370|{
  633|       |#if defined(_WIN32)
  634|       |    if (buf > last - 3)
  635|       |        buf = last - 3;
  636|       |
  637|       |    buf = ogs_slprintf(buf, last, "\r\n");
  638|       |#else
  639|    370|    if (buf > last - 2)
  ------------------
  |  Branch (639:9): [True: 0, False: 370]
  ------------------
  640|      0|        buf = last - 2;
  641|       |
  642|    370|    buf = ogs_slprintf(buf, last, "\n");
  643|    370|#endif
  644|       |
  645|    370|    return buf;
  646|    370|}
ogs-log.c:file_writer:
  650|    740|{
  651|    740|    fprintf(log->file.out, "%s", string);
  652|    740|    fflush(log->file.out);
  653|    740|}

ies.c:ogs_be24toh:
  129|    314|{
  130|    314|    uint32_t tmp = x.v;
  131|       |    tmp = be32toh(tmp);
  132|    314|    x.v = tmp >> 8;
  133|    314|    return x;
  134|    314|}

ogs_mem_init:
   34|      1|{
   35|      1|    ogs_thread_mutex_init(&mutex);
  ------------------
  |  |   37|      1|#define ogs_thread_mutex_init(_n) (void)pthread_mutex_init((_n), NULL)
  ------------------
   36|       |
   37|      1|    talloc_enable_null_tracking();
   38|       |
   39|      1|#define TALLOC_MEMSIZE 1
   40|      1|    __ogs_talloc_core = talloc_named_const(NULL, TALLOC_MEMSIZE, "core");
  ------------------
  |  |   39|      1|#define TALLOC_MEMSIZE 1
  ------------------
   41|      1|}
ogs_talloc_size:
   59|      3|{
   60|      3|    void *ptr = NULL;
   61|       |
   62|      3|    ogs_thread_mutex_lock(&mutex);
  ------------------
  |  |   38|      3|#define ogs_thread_mutex_lock (void)pthread_mutex_lock
  ------------------
   63|       |
   64|      3|    ptr = talloc_named_const(ctx, size, name);
   65|      3|    ogs_expect(ptr);
  ------------------
  |  |  128|      3|    do { \
  |  |  129|      3|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|      3|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 3, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  130|      3|        else { \
  |  |  131|      0|            ogs_error("%s: Expectation `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   23|      0|#define OGS_LOG_DOMAIN __ogs_mem_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  132|      0|        } \
  |  |  133|      3|    } while (0)
  |  |  ------------------
  |  |  |  Branch (133:14): [Folded, False: 3]
  |  |  ------------------
  ------------------
   66|       |
   67|      3|    ogs_thread_mutex_unlock(&mutex);
  ------------------
  |  |   39|      3|#define ogs_thread_mutex_unlock (void)pthread_mutex_unlock
  ------------------
   68|       |
   69|      3|    return ptr;
   70|      3|}
ogs_talloc_zero_size:
   73|  6.97k|{
   74|  6.97k|    void *ptr = NULL;
   75|       |
   76|  6.97k|    ogs_thread_mutex_lock(&mutex);
  ------------------
  |  |   38|  6.97k|#define ogs_thread_mutex_lock (void)pthread_mutex_lock
  ------------------
   77|       |
   78|  6.97k|    ptr = _talloc_zero(ctx, size, name);
   79|  6.97k|    ogs_expect(ptr);
  ------------------
  |  |  128|  6.97k|    do { \
  |  |  129|  6.97k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  6.97k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 6.97k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  130|  6.97k|        else { \
  |  |  131|      0|            ogs_error("%s: Expectation `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   23|      0|#define OGS_LOG_DOMAIN __ogs_mem_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  132|      0|        } \
  |  |  133|  6.97k|    } while (0)
  |  |  ------------------
  |  |  |  Branch (133:14): [Folded, False: 6.97k]
  |  |  ------------------
  ------------------
   80|       |
   81|  6.97k|    ogs_thread_mutex_unlock(&mutex);
  ------------------
  |  |   39|  6.97k|#define ogs_thread_mutex_unlock (void)pthread_mutex_unlock
  ------------------
   82|       |
   83|  6.97k|    return ptr;
   84|  6.97k|}
ogs_talloc_free:
  102|  6.97k|{
  103|  6.97k|    int ret;
  104|       |
  105|  6.97k|    ogs_thread_mutex_lock(&mutex);
  ------------------
  |  |   38|  6.97k|#define ogs_thread_mutex_lock (void)pthread_mutex_lock
  ------------------
  106|       |
  107|  6.97k|    ret = _talloc_free(ptr, location);
  108|       |
  109|  6.97k|    ogs_thread_mutex_unlock(&mutex);
  ------------------
  |  |   39|  6.97k|#define ogs_thread_mutex_unlock (void)pthread_mutex_unlock
  ------------------
  110|       |
  111|  6.97k|    return ret;
  112|  6.97k|}

ogs_pkbuf_put_data:
   91|  6.97k|{
   92|  6.97k|    void *tmp = ogs_pkbuf_put(pkbuf, len);
   93|       |
   94|  6.97k|    memcpy(tmp, data, len);
   95|  6.97k|    return tmp;
   96|  6.97k|}
ogs_pkbuf_init:
   99|      1|{
  100|       |#if OGS_USE_TALLOC == 0
  101|       |    ogs_pool_init(&pkbuf_pool, ogs_core()->pkbuf.pool);
  102|       |
  103|       |#endif
  104|      1|}
ogs_pkbuf_default_init:
  114|      1|{
  115|       |#if OGS_USE_TALLOC == 0
  116|       |    ogs_assert(config);
  117|       |    memset(config, 0, sizeof *config);
  118|       |
  119|       |    config->cluster_128_pool = 65536;
  120|       |    config->cluster_256_pool = 16384;
  121|       |    config->cluster_512_pool = 4096;
  122|       |    config->cluster_1024_pool = 2048;
  123|       |    config->cluster_2048_pool = 1024;
  124|       |    config->cluster_8192_pool = 256;
  125|       |    config->cluster_32768_pool = 64;
  126|       |    config->cluster_big_pool = 8;
  127|       |#endif
  128|      1|}
ogs_pkbuf_default_create:
  131|      1|{
  132|       |#if OGS_USE_TALLOC == 0
  133|       |    default_pool = ogs_pkbuf_pool_create(config);
  134|       |#endif
  135|      1|}
ogs_pkbuf_alloc_debug:
  222|  6.97k|{
  223|  6.97k|#if OGS_USE_TALLOC == 1
  224|  6.97k|    ogs_pkbuf_t *pkbuf = NULL;
  225|       |
  226|  6.97k|    pkbuf = ogs_talloc_zero_size(pool, sizeof(*pkbuf) + size, file_line);
  227|  6.97k|    if (!pkbuf) {
  ------------------
  |  Branch (227:9): [True: 0, False: 6.97k]
  ------------------
  228|      0|        ogs_error("ogs_pkbuf_alloc() failed [size=%d]", size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   23|      0|#define OGS_LOG_DOMAIN __ogs_mem_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  229|      0|        return NULL;
  230|      0|    }
  231|       |
  232|  6.97k|    pkbuf->head = pkbuf->_data;
  233|  6.97k|    pkbuf->end = pkbuf->_data + size;
  234|       |
  235|  6.97k|    pkbuf->len = 0;
  236|       |
  237|  6.97k|    pkbuf->data = pkbuf->_data;
  238|  6.97k|    pkbuf->tail = pkbuf->_data;
  239|       |
  240|  6.97k|    pkbuf->file_line = file_line; /* For debug */
  241|       |
  242|  6.97k|    return pkbuf;
  243|       |#else
  244|       |    ogs_pkbuf_t *pkbuf = NULL;
  245|       |    ogs_cluster_t *cluster = NULL;
  246|       |
  247|       |    if (pool == NULL)
  248|       |        pool = default_pool;
  249|       |    ogs_assert(pool);
  250|       |
  251|       |    ogs_thread_mutex_lock(&pool->mutex);
  252|       |
  253|       |    cluster = cluster_alloc(pool, size);
  254|       |    if (!cluster) {
  255|       |        ogs_error("ogs_pkbuf_alloc() failed [size=%d]", size);
  256|       |        ogs_thread_mutex_unlock(&pool->mutex);
  257|       |        return NULL;
  258|       |    }
  259|       |
  260|       |    ogs_pool_alloc(&pool->pkbuf, &pkbuf);
  261|       |    if (!pkbuf) {
  262|       |        ogs_error("ogs_pkbuf_alloc() failed [size=%d]", size);
  263|       |        ogs_thread_mutex_unlock(&pool->mutex);
  264|       |        return NULL;
  265|       |    }
  266|       |    memset(pkbuf, 0, sizeof(*pkbuf));
  267|       |
  268|       |    OGS_OBJECT_REF(cluster);
  269|       |
  270|       |    pkbuf->cluster = cluster;
  271|       |
  272|       |    pkbuf->len = 0;
  273|       |
  274|       |    pkbuf->data = cluster->buffer;
  275|       |    pkbuf->head = cluster->buffer;
  276|       |    pkbuf->tail = cluster->buffer;
  277|       |    pkbuf->end = cluster->buffer + size;
  278|       |
  279|       |    pkbuf->file_line = file_line; /* For debug */
  280|       |
  281|       |    pkbuf->pool = pool;
  282|       |
  283|       |    ogs_thread_mutex_unlock(&pool->mutex);
  284|       |
  285|       |    return pkbuf;
  286|       |#endif
  287|  6.97k|}
ogs_pkbuf_free:
  290|  6.97k|{
  291|  6.97k|#if OGS_USE_TALLOC == 1
  292|  6.97k|    ogs_talloc_free(pkbuf, OGS_FILE_LINE);
  ------------------
  |  |  213|  6.97k|#define OGS_FILE_LINE __FILE__ ":" OGS_STRINGIFY(__LINE__)
  |  |  ------------------
  |  |  |  |  167|  6.97k|#define OGS_STRINGIFY(n)            OGS_STRINGIFY_HELPER(n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  168|  6.97k|#define OGS_STRINGIFY_HELPER(n)     #n
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  293|       |#else
  294|       |    ogs_pkbuf_pool_t *pool = NULL;
  295|       |    ogs_cluster_t *cluster = NULL;
  296|       |    ogs_assert(pkbuf);
  297|       |
  298|       |    pool = pkbuf->pool;
  299|       |    ogs_assert(pool);
  300|       |
  301|       |    ogs_thread_mutex_lock(&pool->mutex);
  302|       |
  303|       |    cluster = pkbuf->cluster;
  304|       |    ogs_assert(cluster);
  305|       |
  306|       |    if (OGS_OBJECT_IS_REF(cluster))
  307|       |        OGS_OBJECT_UNREF(cluster);
  308|       |    else
  309|       |        cluster_free(pool, pkbuf->cluster);
  310|       |
  311|       |    ogs_pool_free(&pool->pkbuf, pkbuf);
  312|       |
  313|       |    ogs_thread_mutex_unlock(&pool->mutex);
  314|       |#endif
  315|  6.97k|}

decoder.c:ogs_pkbuf_pull:
  165|   259k|{
  166|   259k|    return ogs_unlikely(len > pkbuf->len) ?
  ------------------
  |  |   55|   259k|#define ogs_unlikely(x) __builtin_expect (!!(x), 0)
  |  |  ------------------
  |  |  |  Branch (55:25): [True: 0, False: 259k]
  |  |  ------------------
  ------------------
  167|   259k|        NULL : ogs_pkbuf_pull_inline(pkbuf, len);
  168|   259k|}
decoder.c:ogs_pkbuf_pull_inline:
  159|   259k|{
  160|   259k|    pkbuf->len -= len;
  161|   259k|    return pkbuf->data += len;
  162|   259k|}
decoder.c:ogs_pkbuf_push:
  147|  40.0k|{
  148|  40.0k|    if (ogs_unlikely(ogs_pkbuf_headroom(pkbuf) < (int)len))
  ------------------
  |  |   55|  40.0k|#define ogs_unlikely(x) __builtin_expect (!!(x), 0)
  |  |  ------------------
  |  |  |  Branch (55:25): [True: 0, False: 40.0k]
  |  |  ------------------
  ------------------
  149|      0|        ogs_assert_if_reached();
  ------------------
  |  |  122|      0|    do { \
  |  |  123|      0|        ogs_fatal("%s: should not be reached.", OGS_FUNC); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  124|      0|        ogs_abort(); \
  |  |  125|      0|    } while(0)
  |  |  ------------------
  |  |  |  Branch (125:13): [Folded, False: 0]
  |  |  ------------------
  ------------------
  150|       |
  151|  40.0k|    pkbuf->data -= len;
  152|  40.0k|    pkbuf->len += len;
  153|       |
  154|  40.0k|    return pkbuf->data;
  155|  40.0k|}
decoder.c:ogs_pkbuf_headroom:
  104|  40.0k|{
  105|  40.0k|    return pkbuf->data - pkbuf->head;
  106|  40.0k|}
ies.c:ogs_pkbuf_pull:
  165|   115k|{
  166|   115k|    return ogs_unlikely(len > pkbuf->len) ?
  ------------------
  |  |   55|   115k|#define ogs_unlikely(x) __builtin_expect (!!(x), 0)
  |  |  ------------------
  |  |  |  Branch (55:25): [True: 997, False: 114k]
  |  |  ------------------
  ------------------
  167|   115k|        NULL : ogs_pkbuf_pull_inline(pkbuf, len);
  168|   115k|}
ies.c:ogs_pkbuf_pull_inline:
  159|   114k|{
  160|   114k|    pkbuf->len -= len;
  161|   114k|    return pkbuf->data += len;
  162|   114k|}
ogs-pkbuf.c:ogs_pkbuf_put:
  115|  6.97k|{
  116|  6.97k|    void *tmp = pkbuf->tail;
  117|       |
  118|  6.97k|    if (ogs_unlikely(ogs_pkbuf_tailroom(pkbuf) < (int)len))
  ------------------
  |  |   55|  6.97k|#define ogs_unlikely(x) __builtin_expect (!!(x), 0)
  |  |  ------------------
  |  |  |  Branch (55:25): [True: 0, False: 6.97k]
  |  |  ------------------
  ------------------
  119|      0|        ogs_assert_if_reached();
  ------------------
  |  |  122|      0|    do { \
  |  |  123|      0|        ogs_fatal("%s: should not be reached.", OGS_FUNC); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  124|      0|        ogs_abort(); \
  |  |  125|      0|    } while(0)
  |  |  ------------------
  |  |  |  Branch (125:13): [Folded, False: 0]
  |  |  ------------------
  ------------------
  120|       |
  121|  6.97k|    pkbuf->tail += len;
  122|  6.97k|    pkbuf->len += len;
  123|       |
  124|  6.97k|    return tmp;
  125|  6.97k|}
ogs-pkbuf.c:ogs_pkbuf_tailroom:
   99|  6.97k|{
  100|  6.97k|    return pkbuf->end - pkbuf->tail;
  101|  6.97k|}

ogs_socket_init:
   36|      1|{
   37|       |#if _WIN32
   38|       |    WORD wVersionRequested;
   39|       |    WSADATA wsaData;
   40|       |    int err;
   41|       |
   42|       |    wVersionRequested = MAKEWORD(2, 2);
   43|       |
   44|       |    err = WSAStartup(wVersionRequested, &wsaData);
   45|       |    ogs_assert(err == 0);
   46|       |#endif
   47|      1|}

ogs_vsnprintf:
   63|  2.35M|{
   64|  2.35M|    int r = -1;
   65|       |
   66|       |    /* Microsoft has finally implemented snprintf in Visual Studio 2015.
   67|       |     * In previous versions, I will simulate it as below. */
   68|       |#if defined(_MSC_VER) && _MSC_VER < 1900
   69|       |    ogs_assert(str);
   70|       |
   71|       |    if (size != 0)
   72|       |        r = _vsnprintf_s(str, size, _TRUNCATE, format, ap);
   73|       |
   74|       |    if (r == -1)
   75|       |        r = _vscprintf(format, ap);
   76|       |#else
   77|  2.35M|    r = vsnprintf(str, size, format, ap);
   78|  2.35M|#endif
   79|  2.35M|    str[size-1] = '\0';
   80|       |
   81|  2.35M|    return r;
   82|  2.35M|}
ogs_vslprintf:
   97|  2.35M|{
   98|  2.35M|    int r = -1;
   99|       |
  100|  2.35M|    ogs_assert(last);
  ------------------
  |  |  113|  2.35M|    do { \
  |  |  114|  2.35M|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  2.35M|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 2.35M, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  2.35M|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|  2.35M|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 2.35M]
  |  |  ------------------
  ------------------
  101|       |
  102|  2.35M|    if (!str)
  ------------------
  |  Branch (102:9): [True: 0, False: 2.35M]
  ------------------
  103|      0|        return NULL;
  104|       |
  105|  2.35M|    if (str < last)
  ------------------
  |  Branch (105:9): [True: 2.35M, False: 0]
  ------------------
  106|  2.35M|        r = ogs_vsnprintf(str, last - str, format, ap);
  107|       |
  108|  2.35M|    return (str + r);
  109|  2.35M|}
ogs_slprintf:
  112|  2.35M|{
  113|  2.35M|    char *r;
  114|  2.35M|    va_list ap;
  115|       |
  116|  2.35M|    va_start(ap, format);
  117|  2.35M|    r = ogs_vslprintf(str, last, format, ap);
  118|  2.35M|    va_end(ap);
  119|       |
  120|  2.35M|    return r;
  121|  2.35M|}
ogs_cpystrn:
  124|    549|{
  125|    549|    char *d = dst, *end;
  126|       |
  127|    549|    if (dst_size == 0) {
  ------------------
  |  Branch (127:9): [True: 0, False: 549]
  ------------------
  128|      0|        return (dst);
  129|      0|    }
  130|       |
  131|    549|    if (src) {
  ------------------
  |  Branch (131:9): [True: 549, False: 0]
  ------------------
  132|    549|        end = dst + dst_size - 1;
  133|       |
  134|  1.41k|        for (; d < end; ++d, ++src) {
  ------------------
  |  Branch (134:16): [True: 1.15k, False: 260]
  ------------------
  135|  1.15k|            if (!(*d = *src)) {
  ------------------
  |  Branch (135:17): [True: 289, False: 866]
  ------------------
  136|    289|                return (d);
  137|    289|            }
  138|  1.15k|        }
  139|    549|    }
  140|       |
  141|    260|    *d = '\0';    /* always null terminate */
  142|       |
  143|    260|    return (d);
  144|    549|}

ogs_gettimeofday:
   74|    370|{
   75|       |#if defined(_WIN32)
   76|       |#if defined(_MSC_VER)
   77|       |#define DELTA_EPOCH_IN_MICROSEC 11644473600000000Ui64
   78|       |#else
   79|       |#define DELTA_EPOCH_IN_MICROSEC 11644473600000000ULL
   80|       |#endif
   81|       |    FILETIME ft;
   82|       |    uint64_t tmp = 0;
   83|       |
   84|       |    /*
   85|       |     * The const value is shamelessy stolen from
   86|       |     * http://www.boost.org/doc/libs/1_55_0/boost/chrono/detail/inlined/win/chrono.hpp
   87|       |     *
   88|       |     * File times are the number of 100 nanosecond intervals elapsed since
   89|       |     * 12:00 am Jan 1, 1601 UTC.  I haven't check the math particularly hard
   90|       |     *
   91|       |     * ...  good luck
   92|       |     */
   93|       |
   94|       |    if (tv) {
   95|       |        GetSystemTimeAsFileTime (&ft);
   96|       |
   97|       |        /* pull out of the filetime into a 64 bit uint */
   98|       |        tmp |= ft.dwHighDateTime;
   99|       |        tmp <<= 32;
  100|       |        tmp |= ft.dwLowDateTime;
  101|       |
  102|       |        /* convert from 100's of nanosecs to microsecs */
  103|       |        tmp /= 10;
  104|       |
  105|       |        /* adjust to unix epoch */
  106|       |        tmp -= DELTA_EPOCH_IN_MICROSEC;
  107|       |
  108|       |        tv->tv_sec = (long) (tmp / 1000000UL);
  109|       |        tv->tv_usec = (long) (tmp % 1000000UL);
  110|       |    }
  111|       |
  112|       |    return 0;
  113|       |#else
  114|    370|    int rc = gettimeofday(tv, NULL);
  115|    370|    ogs_assert(rc == 0);
  ------------------
  |  |  113|    370|    do { \
  |  |  114|    370|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    370|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 370, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    370|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|    370|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 370]
  |  |  ------------------
  ------------------
  116|    370|    return 0;
  117|    370|#endif
  118|    370|}
ogs_get_monotonic_time:
  241|      3|{
  242|      3|#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC)
  243|      3|    struct timespec ts;
  244|      3|    clock_gettime(CLOCK_MONOTONIC, &ts);
  245|      3|    return ogs_time_from_sec(ts.tv_sec) + ts.tv_nsec / 1000UL;
  ------------------
  |  |   97|      3|#define ogs_time_from_sec(sec) ((ogs_time_t)(sec) * OGS_USEC_PER_SEC)
  |  |  ------------------
  |  |  |  |   76|      3|#define OGS_USEC_PER_SEC (1000000LL)
  |  |  ------------------
  ------------------
  246|       |#elif defined(__APPLE__)
  247|       |    static mach_timebase_info_data_t info = {0};
  248|       |    static double ratio = 0.0;
  249|       |
  250|       |    if (!info.denom) {
  251|       |        /* the value from mach_absolute_time () * info.numer / info.denom
  252|       |        * is in nano seconds. So we have to divid by 1000.0 to get micro
  253|       |        * seconds*/
  254|       |        mach_timebase_info(&info);
  255|       |        ratio = (double) info.numer / (double) info.denom / 1000.0;
  256|       |    }
  257|       |
  258|       |    return mach_absolute_time() * ratio;
  259|       |#elif defined(_WIN32)
  260|       |    /* Despite it's name, this is in milliseconds! */
  261|       |    ogs_time_t ticks = GetTickCount64();
  262|       |    return (ticks * 1000L);
  263|       |#elif defined(__hpux__)
  264|       |    ogs_time_t nanosec = gethrtime();
  265|       |    return (nanosec / 1000UL);
  266|       |#else
  267|       |#warning "Monotonic clock is not yet supported on your platform."
  268|       |    struct timeval tv;
  269|       |
  270|       |    ogs_gettimeofday(&tv);
  271|       |    return ogs_time_from_sec(tv.tv_sec) + tv.tv_usec;
  272|       |#endif
  273|      3|}
ogs_localtime:
  276|    370|{
  277|    370|    ogs_assert(tm);
  ------------------
  |  |  113|    370|    do { \
  |  |  114|    370|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    370|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 370, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    370|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   32|      0|#define OGS_LOG_DOMAIN      1
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|    370|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 370]
  |  |  ------------------
  ------------------
  278|    370|    memset(tm, 0, sizeof(*tm));
  279|       |
  280|    370|#if (HAVE_LOCALTIME_R)
  281|    370|    (void)localtime_r(&s, tm);
  282|       |#else
  283|       |    struct tm *t;
  284|       |
  285|       |    t = localtime(&s);
  286|       |    *tm = *t;
  287|       |#endif
  288|    370|}

ogs_tlv_init:
   54|      1|{
   55|       |    ogs_pool_init(&pool, ogs_core()->tlv.pool);
  ------------------
  |  |   52|      1|#define ogs_pool_init(pool, _size) do { \
  |  |   53|      1|    int i; \
  |  |   54|      1|    (pool)->name = #pool; \
  |  |   55|      1|    (pool)->free = malloc(sizeof(*(pool)->free) * _size); \
  |  |   56|      1|    ogs_assert((pool)->free); \
  |  |  ------------------
  |  |  |  |  113|      1|    do { \
  |  |  |  |  114|      1|        if (ogs_likely(expr)) ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   54|      1|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (54:23): [True: 1, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      1|        else { \
  |  |  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   24|      0|#define OGS_LOG_DOMAIN __ogs_tlv_domain
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  117|      0|            ogs_abort(); \
  |  |  |  |  118|      0|        } \
  |  |  |  |  119|      1|    } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (119:13): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   57|      1|    (pool)->array = malloc(sizeof(*(pool)->array) * _size); \
  |  |   58|      1|    ogs_assert((pool)->array); \
  |  |  ------------------
  |  |  |  |  113|      1|    do { \
  |  |  |  |  114|      1|        if (ogs_likely(expr)) ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   54|      1|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (54:23): [True: 1, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      1|        else { \
  |  |  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   24|      0|#define OGS_LOG_DOMAIN __ogs_tlv_domain
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  117|      0|            ogs_abort(); \
  |  |  |  |  118|      0|        } \
  |  |  |  |  119|      1|    } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (119:13): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   59|      1|    (pool)->index = malloc(sizeof(*(pool)->index) * _size); \
  |  |   60|      1|    ogs_assert((pool)->index); \
  |  |  ------------------
  |  |  |  |  113|      1|    do { \
  |  |  |  |  114|      1|        if (ogs_likely(expr)) ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   54|      1|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (54:23): [True: 1, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      1|        else { \
  |  |  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   24|      0|#define OGS_LOG_DOMAIN __ogs_tlv_domain
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  117|      0|            ogs_abort(); \
  |  |  |  |  118|      0|        } \
  |  |  |  |  119|      1|    } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (119:13): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   61|      1|    (pool)->size = (pool)->avail = _size; \
  |  |   62|      1|    (pool)->head = (pool)->tail = 0; \
  |  |   63|    513|    for (i = 0; i < _size; i++) { \
  |  |  ------------------
  |  |  |  Branch (63:17): [True: 512, False: 1]
  |  |  ------------------
  |  |   64|    512|        (pool)->free[i] = &((pool)->array[i]); \
  |  |   65|    512|        (pool)->index[i] = NULL; \
  |  |   66|    512|    } \
  |  |   67|      1|    \
  |  |   68|      1|    (pool)->id_hash = ogs_hash_make(); \
  |  |   69|      1|    ogs_assert((pool)->id_hash); \
  |  |  ------------------
  |  |  |  |  113|      1|    do { \
  |  |  |  |  114|      1|        if (ogs_likely(expr)) ; \
  |  |  |  |  ------------------
  |  |  |  |  |  |   54|      1|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  Branch (54:23): [True: 1, False: 0]
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  115|      1|        else { \
  |  |  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  |  |  ------------------
  |  |  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   24|      0|#define OGS_LOG_DOMAIN __ogs_tlv_domain
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  117|      0|            ogs_abort(); \
  |  |  |  |  118|      0|        } \
  |  |  |  |  119|      1|    } while(0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (119:13): [Folded, False: 1]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   70|      1|} while (0)
  |  |  ------------------
  |  |  |  Branch (70:10): [Folded, False: 1]
  |  |  ------------------
  ------------------
   56|      1|}

ogs_nas_5gs_decode_registration_request:
   79|    616|{
   80|    616|    ogs_nas_5gs_registration_request_t *registration_request = &message->gmm.registration_request;
   81|    616|    int decoded = 0;
   82|    616|    int size = 0;
   83|       |
   84|    616|    ogs_trace("[NAS] Decode REGISTRATION_REQUEST\n");
  ------------------
  |  |   40|    616|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    616|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    616|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    616|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    616|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    616|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
   85|       |
   86|    616|    size = ogs_nas_5gs_decode_5gs_registration_type(&registration_request->registration_type, pkbuf);
   87|    616|    if (size < 0) {
  ------------------
  |  Branch (87:9): [True: 0, False: 616]
  ------------------
   88|      0|        ogs_error("ogs_nas_5gs_decode_5gs_registration_type() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
   89|      0|        return size;
   90|      0|    }
   91|       |
   92|    616|    decoded += size;
   93|       |
   94|    616|    size = ogs_nas_5gs_decode_5gs_mobile_identity(&registration_request->mobile_identity, pkbuf);
   95|    616|    if (size < 0) {
  ------------------
  |  Branch (95:9): [True: 6, False: 610]
  ------------------
   96|      6|        ogs_error("ogs_nas_5gs_decode_5gs_mobile_identity() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
   97|      6|        return size;
   98|      6|    }
   99|       |
  100|    610|    decoded += size;
  101|       |
  102|  22.1k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (102:12): [True: 21.6k, False: 479]
  ------------------
  103|  21.6k|        uint8_t *buffer = pkbuf->data;
  104|  21.6k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (104:24): [True: 6.49k, False: 15.1k]
  ------------------
  105|       |
  106|  21.6k|        size = sizeof(uint8_t);
  107|  21.6k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (107:13): [True: 0, False: 21.6k]
  ------------------
  108|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  109|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
  110|      0|        }
  111|  21.6k|        decoded += size;
  112|       |
  113|  21.6k|        switch(type) {
  114|  1.00k|        case OGS_NAS_5GS_REGISTRATION_REQUEST_NON_CURRENT_NATIVE_NAS_KEY_SET_IDENTIFIER_TYPE:
  ------------------
  |  |  163|  1.00k|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NON_CURRENT_NATIVE_NAS_KEY_SET_IDENTIFIER_TYPE 0xC0
  ------------------
  |  Branch (114:9): [True: 1.00k, False: 20.6k]
  ------------------
  115|  1.00k|            decoded--;
  116|  1.00k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.00k|    do { \
  |  |  114|  1.00k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.00k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.00k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.00k|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|  1.00k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.00k]
  |  |  ------------------
  ------------------
  117|  1.00k|            size = ogs_nas_5gs_decode_key_set_identifier(&registration_request->non_current_native_nas_key_set_identifier, pkbuf);
  118|  1.00k|            if (size < 0) {
  ------------------
  |  Branch (118:17): [True: 0, False: 1.00k]
  ------------------
  119|      0|               ogs_error("ogs_nas_5gs_decode_key_set_identifier() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  120|      0|               return size;
  121|      0|            }
  122|       |
  123|  1.00k|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_NON_CURRENT_NATIVE_NAS_KEY_SET_IDENTIFIER_PRESENT;
  ------------------
  |  |  120|  1.00k|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NON_CURRENT_NATIVE_NAS_KEY_SET_IDENTIFIER_PRESENT ((uint64_t)1<<0)
  ------------------
  124|  1.00k|            decoded += size;
  125|  1.00k|            break;
  126|    330|        case OGS_NAS_5GS_REGISTRATION_REQUEST_5GMM_CAPABILITY_TYPE:
  ------------------
  |  |  164|    330|#define OGS_NAS_5GS_REGISTRATION_REQUEST_5GMM_CAPABILITY_TYPE 0x10
  ------------------
  |  Branch (126:9): [True: 330, False: 21.2k]
  ------------------
  127|    330|            size = ogs_nas_5gs_decode_5gmm_capability(&registration_request->gmm_capability, pkbuf);
  128|    330|            if (size < 0) {
  ------------------
  |  Branch (128:17): [True: 7, False: 323]
  ------------------
  129|      7|               ogs_error("ogs_nas_5gs_decode_5gmm_capability() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  130|      7|               return size;
  131|      7|            }
  132|       |
  133|    323|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_5GMM_CAPABILITY_PRESENT;
  ------------------
  |  |  121|    323|#define OGS_NAS_5GS_REGISTRATION_REQUEST_5GMM_CAPABILITY_PRESENT ((uint64_t)1<<1)
  ------------------
  134|    323|            decoded += size;
  135|    323|            break;
  136|    209|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UE_SECURITY_CAPABILITY_TYPE:
  ------------------
  |  |  165|    209|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_SECURITY_CAPABILITY_TYPE 0x2E
  ------------------
  |  Branch (136:9): [True: 209, False: 21.4k]
  ------------------
  137|    209|            size = ogs_nas_5gs_decode_ue_security_capability(&registration_request->ue_security_capability, pkbuf);
  138|    209|            if (size < 0) {
  ------------------
  |  Branch (138:17): [True: 1, False: 208]
  ------------------
  139|      1|               ogs_error("ogs_nas_5gs_decode_ue_security_capability() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  140|      1|               return size;
  141|      1|            }
  142|       |
  143|    208|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UE_SECURITY_CAPABILITY_PRESENT;
  ------------------
  |  |  122|    208|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_SECURITY_CAPABILITY_PRESENT ((uint64_t)1<<2)
  ------------------
  144|    208|            decoded += size;
  145|    208|            break;
  146|    227|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NSSAI_TYPE:
  ------------------
  |  |  166|    227|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NSSAI_TYPE 0x2F
  ------------------
  |  Branch (146:9): [True: 227, False: 21.3k]
  ------------------
  147|    227|            size = ogs_nas_5gs_decode_nssai(&registration_request->requested_nssai, pkbuf);
  148|    227|            if (size < 0) {
  ------------------
  |  Branch (148:17): [True: 1, False: 226]
  ------------------
  149|      1|               ogs_error("ogs_nas_5gs_decode_nssai() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  150|      1|               return size;
  151|      1|            }
  152|       |
  153|    226|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NSSAI_PRESENT;
  ------------------
  |  |  123|    226|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NSSAI_PRESENT ((uint64_t)1<<3)
  ------------------
  154|    226|            decoded += size;
  155|    226|            break;
  156|    319|        case OGS_NAS_5GS_REGISTRATION_REQUEST_LAST_VISITED_REGISTERED_TAI_TYPE:
  ------------------
  |  |  167|    319|#define OGS_NAS_5GS_REGISTRATION_REQUEST_LAST_VISITED_REGISTERED_TAI_TYPE 0x52
  ------------------
  |  Branch (156:9): [True: 319, False: 21.3k]
  ------------------
  157|    319|            size = ogs_nas_5gs_decode_5gs_tracking_area_identity(&registration_request->last_visited_registered_tai, pkbuf);
  158|    319|            if (size < 0) {
  ------------------
  |  Branch (158:17): [True: 5, False: 314]
  ------------------
  159|      5|               ogs_error("ogs_nas_5gs_decode_5gs_tracking_area_identity() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  160|      5|               return size;
  161|      5|            }
  162|       |
  163|    314|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_LAST_VISITED_REGISTERED_TAI_PRESENT;
  ------------------
  |  |  124|    314|#define OGS_NAS_5GS_REGISTRATION_REQUEST_LAST_VISITED_REGISTERED_TAI_PRESENT ((uint64_t)1<<4)
  ------------------
  164|    314|            decoded += size;
  165|    314|            break;
  166|    205|        case OGS_NAS_5GS_REGISTRATION_REQUEST_S1_UE_NETWORK_CAPABILITY_TYPE:
  ------------------
  |  |  168|    205|#define OGS_NAS_5GS_REGISTRATION_REQUEST_S1_UE_NETWORK_CAPABILITY_TYPE 0x17
  ------------------
  |  Branch (166:9): [True: 205, False: 21.4k]
  ------------------
  167|    205|            size = ogs_nas_5gs_decode_s1_ue_network_capability(&registration_request->s1_ue_network_capability, pkbuf);
  168|    205|            if (size < 0) {
  ------------------
  |  Branch (168:17): [True: 4, False: 201]
  ------------------
  169|      4|               ogs_error("ogs_nas_5gs_decode_s1_ue_network_capability() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  170|      4|               return size;
  171|      4|            }
  172|       |
  173|    201|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_S1_UE_NETWORK_CAPABILITY_PRESENT;
  ------------------
  |  |  125|    201|#define OGS_NAS_5GS_REGISTRATION_REQUEST_S1_UE_NETWORK_CAPABILITY_PRESENT ((uint64_t)1<<5)
  ------------------
  174|    201|            decoded += size;
  175|    201|            break;
  176|    214|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UPLINK_DATA_STATUS_TYPE:
  ------------------
  |  |  169|    214|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UPLINK_DATA_STATUS_TYPE 0x40
  ------------------
  |  Branch (176:9): [True: 214, False: 21.4k]
  ------------------
  177|    214|            size = ogs_nas_5gs_decode_uplink_data_status(&registration_request->uplink_data_status, pkbuf);
  178|    214|            if (size < 0) {
  ------------------
  |  Branch (178:17): [True: 1, False: 213]
  ------------------
  179|      1|               ogs_error("ogs_nas_5gs_decode_uplink_data_status() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  180|      1|               return size;
  181|      1|            }
  182|       |
  183|    213|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UPLINK_DATA_STATUS_PRESENT;
  ------------------
  |  |  126|    213|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UPLINK_DATA_STATUS_PRESENT ((uint64_t)1<<6)
  ------------------
  184|    213|            decoded += size;
  185|    213|            break;
  186|    199|        case OGS_NAS_5GS_REGISTRATION_REQUEST_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  |  170|    199|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PDU_SESSION_STATUS_TYPE 0x50
  ------------------
  |  Branch (186:9): [True: 199, False: 21.4k]
  ------------------
  187|    199|            size = ogs_nas_5gs_decode_pdu_session_status(&registration_request->pdu_session_status, pkbuf);
  188|    199|            if (size < 0) {
  ------------------
  |  Branch (188:17): [True: 1, False: 198]
  ------------------
  189|      1|               ogs_error("ogs_nas_5gs_decode_pdu_session_status() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  190|      1|               return size;
  191|      1|            }
  192|       |
  193|    198|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  |  127|    198|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<7)
  ------------------
  194|    198|            decoded += size;
  195|    198|            break;
  196|    947|        case OGS_NAS_5GS_REGISTRATION_REQUEST_MICO_INDICATION_TYPE:
  ------------------
  |  |  171|    947|#define OGS_NAS_5GS_REGISTRATION_REQUEST_MICO_INDICATION_TYPE 0xB0
  ------------------
  |  Branch (196:9): [True: 947, False: 20.6k]
  ------------------
  197|    947|            decoded--;
  198|    947|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    947|    do { \
  |  |  114|    947|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    947|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 947, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    947|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|    947|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 947]
  |  |  ------------------
  ------------------
  199|    947|            size = ogs_nas_5gs_decode_mico_indication(&registration_request->mico_indication, pkbuf);
  200|    947|            if (size < 0) {
  ------------------
  |  Branch (200:17): [True: 0, False: 947]
  ------------------
  201|      0|               ogs_error("ogs_nas_5gs_decode_mico_indication() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  202|      0|               return size;
  203|      0|            }
  204|       |
  205|    947|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_MICO_INDICATION_PRESENT;
  ------------------
  |  |  128|    947|#define OGS_NAS_5GS_REGISTRATION_REQUEST_MICO_INDICATION_PRESENT ((uint64_t)1<<8)
  ------------------
  206|    947|            decoded += size;
  207|    947|            break;
  208|    213|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UE_STATUS_TYPE:
  ------------------
  |  |  172|    213|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_STATUS_TYPE 0x2B
  ------------------
  |  Branch (208:9): [True: 213, False: 21.4k]
  ------------------
  209|    213|            size = ogs_nas_5gs_decode_ue_status(&registration_request->ue_status, pkbuf);
  210|    213|            if (size < 0) {
  ------------------
  |  Branch (210:17): [True: 4, False: 209]
  ------------------
  211|      4|               ogs_error("ogs_nas_5gs_decode_ue_status() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  212|      4|               return size;
  213|      4|            }
  214|       |
  215|    209|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UE_STATUS_PRESENT;
  ------------------
  |  |  129|    209|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_STATUS_PRESENT ((uint64_t)1<<9)
  ------------------
  216|    209|            decoded += size;
  217|    209|            break;
  218|    203|        case OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_GUTI_TYPE:
  ------------------
  |  |  173|    203|#define OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_GUTI_TYPE 0x77
  ------------------
  |  Branch (218:9): [True: 203, False: 21.4k]
  ------------------
  219|    203|            size = ogs_nas_5gs_decode_5gs_mobile_identity(&registration_request->additional_guti, pkbuf);
  220|    203|            if (size < 0) {
  ------------------
  |  Branch (220:17): [True: 1, False: 202]
  ------------------
  221|      1|               ogs_error("ogs_nas_5gs_decode_5gs_mobile_identity() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  222|      1|               return size;
  223|      1|            }
  224|       |
  225|    202|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_GUTI_PRESENT;
  ------------------
  |  |  130|    202|#define OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_GUTI_PRESENT ((uint64_t)1<<10)
  ------------------
  226|    202|            decoded += size;
  227|    202|            break;
  228|    239|        case OGS_NAS_5GS_REGISTRATION_REQUEST_ALLOWED_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  |  174|    239|#define OGS_NAS_5GS_REGISTRATION_REQUEST_ALLOWED_PDU_SESSION_STATUS_TYPE 0x25
  ------------------
  |  Branch (228:9): [True: 239, False: 21.3k]
  ------------------
  229|    239|            size = ogs_nas_5gs_decode_allowed_pdu_session_status(&registration_request->allowed_pdu_session_status, pkbuf);
  230|    239|            if (size < 0) {
  ------------------
  |  Branch (230:17): [True: 3, False: 236]
  ------------------
  231|      3|               ogs_error("ogs_nas_5gs_decode_allowed_pdu_session_status() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  232|      3|               return size;
  233|      3|            }
  234|       |
  235|    236|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_ALLOWED_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  |  131|    236|#define OGS_NAS_5GS_REGISTRATION_REQUEST_ALLOWED_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<11)
  ------------------
  236|    236|            decoded += size;
  237|    236|            break;
  238|    198|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UE_USAGE_SETTING_TYPE:
  ------------------
  |  |  175|    198|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_USAGE_SETTING_TYPE 0x18
  ------------------
  |  Branch (238:9): [True: 198, False: 21.4k]
  ------------------
  239|    198|            size = ogs_nas_5gs_decode_ue_usage_setting(&registration_request->ue_usage_setting, pkbuf);
  240|    198|            if (size < 0) {
  ------------------
  |  Branch (240:17): [True: 4, False: 194]
  ------------------
  241|      4|               ogs_error("ogs_nas_5gs_decode_ue_usage_setting() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  242|      4|               return size;
  243|      4|            }
  244|       |
  245|    194|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UE_USAGE_SETTING_PRESENT;
  ------------------
  |  |  132|    194|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_USAGE_SETTING_PRESENT ((uint64_t)1<<12)
  ------------------
  246|    194|            decoded += size;
  247|    194|            break;
  248|    197|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_DRX_PARAMETERS_TYPE:
  ------------------
  |  |  176|    197|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_DRX_PARAMETERS_TYPE 0x51
  ------------------
  |  Branch (248:9): [True: 197, False: 21.4k]
  ------------------
  249|    197|            size = ogs_nas_5gs_decode_5gs_drx_parameters(&registration_request->requested_drx_parameters, pkbuf);
  250|    197|            if (size < 0) {
  ------------------
  |  Branch (250:17): [True: 3, False: 194]
  ------------------
  251|      3|               ogs_error("ogs_nas_5gs_decode_5gs_drx_parameters() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  252|      3|               return size;
  253|      3|            }
  254|       |
  255|    194|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_DRX_PARAMETERS_PRESENT;
  ------------------
  |  |  133|    194|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_DRX_PARAMETERS_PRESENT ((uint64_t)1<<13)
  ------------------
  256|    194|            decoded += size;
  257|    194|            break;
  258|    263|        case OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_NAS_MESSAGE_CONTAINER_TYPE:
  ------------------
  |  |  177|    263|#define OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_NAS_MESSAGE_CONTAINER_TYPE 0x70
  ------------------
  |  Branch (258:9): [True: 263, False: 21.3k]
  ------------------
  259|    263|            size = ogs_nas_5gs_decode_eps_nas_message_container(&registration_request->eps_nas_message_container, pkbuf);
  260|    263|            if (size < 0) {
  ------------------
  |  Branch (260:17): [True: 25, False: 238]
  ------------------
  261|     25|               ogs_error("ogs_nas_5gs_decode_eps_nas_message_container() failed");
  ------------------
  |  |   36|     25|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     25|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     25|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     25|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     25|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     25|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  262|     25|               return size;
  263|     25|            }
  264|       |
  265|    238|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_NAS_MESSAGE_CONTAINER_PRESENT;
  ------------------
  |  |  134|    238|#define OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_NAS_MESSAGE_CONTAINER_PRESENT ((uint64_t)1<<14)
  ------------------
  266|    238|            decoded += size;
  267|    238|            break;
  268|    219|        case OGS_NAS_5GS_REGISTRATION_REQUEST_LADN_INDICATION_TYPE:
  ------------------
  |  |  178|    219|#define OGS_NAS_5GS_REGISTRATION_REQUEST_LADN_INDICATION_TYPE 0x74
  ------------------
  |  Branch (268:9): [True: 219, False: 21.4k]
  ------------------
  269|    219|            size = ogs_nas_5gs_decode_ladn_indication(&registration_request->ladn_indication, pkbuf);
  270|    219|            if (size < 0) {
  ------------------
  |  Branch (270:17): [True: 12, False: 207]
  ------------------
  271|     12|               ogs_error("ogs_nas_5gs_decode_ladn_indication() failed");
  ------------------
  |  |   36|     12|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     12|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     12|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     12|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     12|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     12|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  272|     12|               return size;
  273|     12|            }
  274|       |
  275|    207|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_LADN_INDICATION_PRESENT;
  ------------------
  |  |  135|    207|#define OGS_NAS_5GS_REGISTRATION_REQUEST_LADN_INDICATION_PRESENT ((uint64_t)1<<15)
  ------------------
  276|    207|            decoded += size;
  277|    207|            break;
  278|    852|        case OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_TYPE_TYPE:
  ------------------
  |  |  179|    852|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_TYPE_TYPE 0x80
  ------------------
  |  Branch (278:9): [True: 852, False: 20.7k]
  ------------------
  279|    852|            decoded--;
  280|    852|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    852|    do { \
  |  |  114|    852|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    852|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 852, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    852|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|    852|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 852]
  |  |  ------------------
  ------------------
  281|    852|            size = ogs_nas_5gs_decode_payload_container_type(&registration_request->payload_container_type, pkbuf);
  282|    852|            if (size < 0) {
  ------------------
  |  Branch (282:17): [True: 0, False: 852]
  ------------------
  283|      0|               ogs_error("ogs_nas_5gs_decode_payload_container_type() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  284|      0|               return size;
  285|      0|            }
  286|       |
  287|    852|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_TYPE_PRESENT;
  ------------------
  |  |  136|    852|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_TYPE_PRESENT ((uint64_t)1<<16)
  ------------------
  288|    852|            decoded += size;
  289|    852|            break;
  290|    216|        case OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_TYPE:
  ------------------
  |  |  180|    216|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_TYPE 0x7B
  ------------------
  |  Branch (290:9): [True: 216, False: 21.4k]
  ------------------
  291|    216|            size = ogs_nas_5gs_decode_payload_container(&registration_request->payload_container, pkbuf);
  292|    216|            if (size < 0) {
  ------------------
  |  Branch (292:17): [True: 1, False: 215]
  ------------------
  293|      1|               ogs_error("ogs_nas_5gs_decode_payload_container() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  294|      1|               return size;
  295|      1|            }
  296|       |
  297|    215|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_PRESENT;
  ------------------
  |  |  137|    215|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_PRESENT ((uint64_t)1<<17)
  ------------------
  298|    215|            decoded += size;
  299|    215|            break;
  300|    618|        case OGS_NAS_5GS_REGISTRATION_REQUEST_NETWORK_SLICING_INDICATION_TYPE:
  ------------------
  |  |  181|    618|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NETWORK_SLICING_INDICATION_TYPE 0x90
  ------------------
  |  Branch (300:9): [True: 618, False: 21.0k]
  ------------------
  301|    618|            decoded--;
  302|    618|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    618|    do { \
  |  |  114|    618|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    618|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 618, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    618|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|    618|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 618]
  |  |  ------------------
  ------------------
  303|    618|            size = ogs_nas_5gs_decode_network_slicing_indication(&registration_request->network_slicing_indication, pkbuf);
  304|    618|            if (size < 0) {
  ------------------
  |  Branch (304:17): [True: 0, False: 618]
  ------------------
  305|      0|               ogs_error("ogs_nas_5gs_decode_network_slicing_indication() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  306|      0|               return size;
  307|      0|            }
  308|       |
  309|    618|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_NETWORK_SLICING_INDICATION_PRESENT;
  ------------------
  |  |  138|    618|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NETWORK_SLICING_INDICATION_PRESENT ((uint64_t)1<<18)
  ------------------
  310|    618|            decoded += size;
  311|    618|            break;
  312|    202|        case OGS_NAS_5GS_REGISTRATION_REQUEST_5GS_UPDATE_TYPE_TYPE:
  ------------------
  |  |  182|    202|#define OGS_NAS_5GS_REGISTRATION_REQUEST_5GS_UPDATE_TYPE_TYPE 0x53
  ------------------
  |  Branch (312:9): [True: 202, False: 21.4k]
  ------------------
  313|    202|            size = ogs_nas_5gs_decode_5gs_update_type(&registration_request->update_type, pkbuf);
  314|    202|            if (size < 0) {
  ------------------
  |  Branch (314:17): [True: 3, False: 199]
  ------------------
  315|      3|               ogs_error("ogs_nas_5gs_decode_5gs_update_type() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  316|      3|               return size;
  317|      3|            }
  318|       |
  319|    199|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_5GS_UPDATE_TYPE_PRESENT;
  ------------------
  |  |  139|    199|#define OGS_NAS_5GS_REGISTRATION_REQUEST_5GS_UPDATE_TYPE_PRESENT ((uint64_t)1<<19)
  ------------------
  320|    199|            decoded += size;
  321|    199|            break;
  322|    217|        case OGS_NAS_5GS_REGISTRATION_REQUEST_MOBILE_STATION_CLASSMARK_2_TYPE:
  ------------------
  |  |  183|    217|#define OGS_NAS_5GS_REGISTRATION_REQUEST_MOBILE_STATION_CLASSMARK_2_TYPE 0x41
  ------------------
  |  Branch (322:9): [True: 217, False: 21.4k]
  ------------------
  323|    217|            size = ogs_nas_5gs_decode_mobile_station_classmark_2(&registration_request->mobile_station_classmark_2, pkbuf);
  324|    217|            if (size < 0) {
  ------------------
  |  Branch (324:17): [True: 5, False: 212]
  ------------------
  325|      5|               ogs_error("ogs_nas_5gs_decode_mobile_station_classmark_2() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  326|      5|               return size;
  327|      5|            }
  328|       |
  329|    212|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_MOBILE_STATION_CLASSMARK_2_PRESENT;
  ------------------
  |  |  140|    212|#define OGS_NAS_5GS_REGISTRATION_REQUEST_MOBILE_STATION_CLASSMARK_2_PRESENT ((uint64_t)1<<20)
  ------------------
  330|    212|            decoded += size;
  331|    212|            break;
  332|    211|        case OGS_NAS_5GS_REGISTRATION_REQUEST_SUPPORTED_CODECS_TYPE:
  ------------------
  |  |  184|    211|#define OGS_NAS_5GS_REGISTRATION_REQUEST_SUPPORTED_CODECS_TYPE 0x42
  ------------------
  |  Branch (332:9): [True: 211, False: 21.4k]
  ------------------
  333|    211|            size = ogs_nas_5gs_decode_supported_codec_list(&registration_request->supported_codecs, pkbuf);
  334|    211|            if (size < 0) {
  ------------------
  |  Branch (334:17): [True: 3, False: 208]
  ------------------
  335|      3|               ogs_error("ogs_nas_5gs_decode_supported_codec_list() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  336|      3|               return size;
  337|      3|            }
  338|       |
  339|    208|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_SUPPORTED_CODECS_PRESENT;
  ------------------
  |  |  141|    208|#define OGS_NAS_5GS_REGISTRATION_REQUEST_SUPPORTED_CODECS_PRESENT ((uint64_t)1<<21)
  ------------------
  340|    208|            decoded += size;
  341|    208|            break;
  342|    216|        case OGS_NAS_5GS_REGISTRATION_REQUEST_NAS_MESSAGE_CONTAINER_TYPE:
  ------------------
  |  |  185|    216|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NAS_MESSAGE_CONTAINER_TYPE 0x71
  ------------------
  |  Branch (342:9): [True: 216, False: 21.4k]
  ------------------
  343|    216|            size = ogs_nas_5gs_decode_message_container(&registration_request->nas_message_container, pkbuf);
  344|    216|            if (size < 0) {
  ------------------
  |  Branch (344:17): [True: 1, False: 215]
  ------------------
  345|      1|               ogs_error("ogs_nas_5gs_decode_message_container() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  346|      1|               return size;
  347|      1|            }
  348|       |
  349|    215|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_NAS_MESSAGE_CONTAINER_PRESENT;
  ------------------
  |  |  142|    215|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NAS_MESSAGE_CONTAINER_PRESENT ((uint64_t)1<<22)
  ------------------
  350|    215|            decoded += size;
  351|    215|            break;
  352|    203|        case OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_BEARER_CONTEXT_STATUS_TYPE:
  ------------------
  |  |  186|    203|#define OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_BEARER_CONTEXT_STATUS_TYPE 0x60
  ------------------
  |  Branch (352:9): [True: 203, False: 21.4k]
  ------------------
  353|    203|            size = ogs_nas_5gs_decode_eps_bearer_context_status(&registration_request->eps_bearer_context_status, pkbuf);
  354|    203|            if (size < 0) {
  ------------------
  |  Branch (354:17): [True: 1, False: 202]
  ------------------
  355|      1|               ogs_error("ogs_nas_5gs_decode_eps_bearer_context_status() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  356|      1|               return size;
  357|      1|            }
  358|       |
  359|    202|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_BEARER_CONTEXT_STATUS_PRESENT;
  ------------------
  |  |  143|    202|#define OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_BEARER_CONTEXT_STATUS_PRESENT ((uint64_t)1<<23)
  ------------------
  360|    202|            decoded += size;
  361|    202|            break;
  362|    196|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_EXTENDED_DRX_PARAMETERS_TYPE:
  ------------------
  |  |  187|    196|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_EXTENDED_DRX_PARAMETERS_TYPE 0x6E
  ------------------
  |  Branch (362:9): [True: 196, False: 21.4k]
  ------------------
  363|    196|            size = ogs_nas_5gs_decode_extended_drx_parameters(&registration_request->requested_extended_drx_parameters, pkbuf);
  364|    196|            if (size < 0) {
  ------------------
  |  Branch (364:17): [True: 2, False: 194]
  ------------------
  365|      2|               ogs_error("ogs_nas_5gs_decode_extended_drx_parameters() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  366|      2|               return size;
  367|      2|            }
  368|       |
  369|    194|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_EXTENDED_DRX_PARAMETERS_PRESENT;
  ------------------
  |  |  144|    194|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_EXTENDED_DRX_PARAMETERS_PRESENT ((uint64_t)1<<24)
  ------------------
  370|    194|            decoded += size;
  371|    194|            break;
  372|    205|        case OGS_NAS_5GS_REGISTRATION_REQUEST_T3324_VALUE_TYPE:
  ------------------
  |  |  188|    205|#define OGS_NAS_5GS_REGISTRATION_REQUEST_T3324_VALUE_TYPE 0x6A
  ------------------
  |  Branch (372:9): [True: 205, False: 21.4k]
  ------------------
  373|    205|            size = ogs_nas_5gs_decode_gprs_timer_3(&registration_request->t3324_value, pkbuf);
  374|    205|            if (size < 0) {
  ------------------
  |  Branch (374:17): [True: 2, False: 203]
  ------------------
  375|      2|               ogs_error("ogs_nas_5gs_decode_gprs_timer_3() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  376|      2|               return size;
  377|      2|            }
  378|       |
  379|    203|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_T3324_VALUE_PRESENT;
  ------------------
  |  |  145|    203|#define OGS_NAS_5GS_REGISTRATION_REQUEST_T3324_VALUE_PRESENT ((uint64_t)1<<25)
  ------------------
  380|    203|            decoded += size;
  381|    203|            break;
  382|    239|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UE_RADIO_CAPABILITY_ID_TYPE:
  ------------------
  |  |  189|    239|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_RADIO_CAPABILITY_ID_TYPE 0x67
  ------------------
  |  Branch (382:9): [True: 239, False: 21.3k]
  ------------------
  383|    239|            size = ogs_nas_5gs_decode_ue_radio_capability_id(&registration_request->ue_radio_capability_id, pkbuf);
  384|    239|            if (size < 0) {
  ------------------
  |  Branch (384:17): [True: 1, False: 238]
  ------------------
  385|      1|               ogs_error("ogs_nas_5gs_decode_ue_radio_capability_id() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  386|      1|               return size;
  387|      1|            }
  388|       |
  389|    238|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UE_RADIO_CAPABILITY_ID_PRESENT;
  ------------------
  |  |  146|    238|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_RADIO_CAPABILITY_ID_PRESENT ((uint64_t)1<<26)
  ------------------
  390|    238|            decoded += size;
  391|    238|            break;
  392|    200|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_MAPPED_NSSAI_TYPE:
  ------------------
  |  |  190|    200|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_MAPPED_NSSAI_TYPE 0x35
  ------------------
  |  Branch (392:9): [True: 200, False: 21.4k]
  ------------------
  393|    200|            size = ogs_nas_5gs_decode_mapped_nssai(&registration_request->requested_mapped_nssai, pkbuf);
  394|    200|            if (size < 0) {
  ------------------
  |  Branch (394:17): [True: 3, False: 197]
  ------------------
  395|      3|               ogs_error("ogs_nas_5gs_decode_mapped_nssai() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  396|      3|               return size;
  397|      3|            }
  398|       |
  399|    197|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_MAPPED_NSSAI_PRESENT;
  ------------------
  |  |  147|    197|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_MAPPED_NSSAI_PRESENT ((uint64_t)1<<27)
  ------------------
  400|    197|            decoded += size;
  401|    197|            break;
  402|    208|        case OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_INFORMATION_REQUESTED_TYPE:
  ------------------
  |  |  191|    208|#define OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_INFORMATION_REQUESTED_TYPE 0x48
  ------------------
  |  Branch (402:9): [True: 208, False: 21.4k]
  ------------------
  403|    208|            size = ogs_nas_5gs_decode_additional_information_requested(&registration_request->additional_information_requested, pkbuf);
  404|    208|            if (size < 0) {
  ------------------
  |  Branch (404:17): [True: 5, False: 203]
  ------------------
  405|      5|               ogs_error("ogs_nas_5gs_decode_additional_information_requested() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  406|      5|               return size;
  407|      5|            }
  408|       |
  409|    203|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_INFORMATION_REQUESTED_PRESENT;
  ------------------
  |  |  148|    203|#define OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_INFORMATION_REQUESTED_PRESENT ((uint64_t)1<<28)
  ------------------
  410|    203|            decoded += size;
  411|    203|            break;
  412|    200|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_WUS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  192|    200|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_WUS_ASSISTANCE_INFORMATION_TYPE 0x1A
  ------------------
  |  Branch (412:9): [True: 200, False: 21.4k]
  ------------------
  413|    200|            size = ogs_nas_5gs_decode_wus_assistance_information(&registration_request->requested_wus_assistance_information, pkbuf);
  414|    200|            if (size < 0) {
  ------------------
  |  Branch (414:17): [True: 1, False: 199]
  ------------------
  415|      1|               ogs_error("ogs_nas_5gs_decode_wus_assistance_information() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  416|      1|               return size;
  417|      1|            }
  418|       |
  419|    199|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_WUS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  149|    199|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_WUS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<29)
  ------------------
  420|    199|            decoded += size;
  421|    199|            break;
  422|    610|        case OGS_NAS_5GS_REGISTRATION_REQUEST_N5GC_INDICATION_TYPE:
  ------------------
  |  |  193|    610|#define OGS_NAS_5GS_REGISTRATION_REQUEST_N5GC_INDICATION_TYPE 0xA0
  ------------------
  |  Branch (422:9): [True: 610, False: 21.0k]
  ------------------
  423|    610|            decoded--;
  424|    610|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    610|    do { \
  |  |  114|    610|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    610|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 610, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    610|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|    610|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 610]
  |  |  ------------------
  ------------------
  425|    610|            size = ogs_nas_5gs_decode_n5gc_indication(&registration_request->n5gc_indication, pkbuf);
  426|    610|            if (size < 0) {
  ------------------
  |  Branch (426:17): [True: 0, False: 610]
  ------------------
  427|      0|               ogs_error("ogs_nas_5gs_decode_n5gc_indication() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  428|      0|               return size;
  429|      0|            }
  430|       |
  431|    610|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_N5GC_INDICATION_PRESENT;
  ------------------
  |  |  150|    610|#define OGS_NAS_5GS_REGISTRATION_REQUEST_N5GC_INDICATION_PRESENT ((uint64_t)1<<30)
  ------------------
  432|    610|            decoded += size;
  433|    610|            break;
  434|    206|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NB_N1_MODE_DRX_PARAMETERS_TYPE:
  ------------------
  |  |  194|    206|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NB_N1_MODE_DRX_PARAMETERS_TYPE 0x30
  ------------------
  |  Branch (434:9): [True: 206, False: 21.4k]
  ------------------
  435|    206|            size = ogs_nas_5gs_decode_nb_n1_mode_drx_parameters(&registration_request->requested_nb_n1_mode_drx_parameters, pkbuf);
  436|    206|            if (size < 0) {
  ------------------
  |  Branch (436:17): [True: 2, False: 204]
  ------------------
  437|      2|               ogs_error("ogs_nas_5gs_decode_nb_n1_mode_drx_parameters() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  438|      2|               return size;
  439|      2|            }
  440|       |
  441|    204|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NB_N1_MODE_DRX_PARAMETERS_PRESENT;
  ------------------
  |  |  151|    204|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NB_N1_MODE_DRX_PARAMETERS_PRESENT ((uint64_t)1<<31)
  ------------------
  442|    204|            decoded += size;
  443|    204|            break;
  444|    240|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UE_REQUEST_TYPE_TYPE:
  ------------------
  |  |  195|    240|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_REQUEST_TYPE_TYPE 0x29
  ------------------
  |  Branch (444:9): [True: 240, False: 21.3k]
  ------------------
  445|    240|            size = ogs_nas_5gs_decode_ue_request_type(&registration_request->ue_request_type, pkbuf);
  446|    240|            if (size < 0) {
  ------------------
  |  Branch (446:17): [True: 3, False: 237]
  ------------------
  447|      3|               ogs_error("ogs_nas_5gs_decode_ue_request_type() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  448|      3|               return size;
  449|      3|            }
  450|       |
  451|    237|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UE_REQUEST_TYPE_PRESENT;
  ------------------
  |  |  152|    237|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_REQUEST_TYPE_PRESENT ((uint64_t)1<<32)
  ------------------
  452|    237|            decoded += size;
  453|    237|            break;
  454|    407|        case OGS_NAS_5GS_REGISTRATION_REQUEST_PAGING_RESTRICTION_TYPE:
  ------------------
  |  |  196|    407|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PAGING_RESTRICTION_TYPE 0x28
  ------------------
  |  Branch (454:9): [True: 407, False: 21.2k]
  ------------------
  455|    407|            size = ogs_nas_5gs_decode_paging_restriction(&registration_request->paging_restriction, pkbuf);
  456|    407|            if (size < 0) {
  ------------------
  |  Branch (456:17): [True: 2, False: 405]
  ------------------
  457|      2|               ogs_error("ogs_nas_5gs_decode_paging_restriction() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  458|      2|               return size;
  459|      2|            }
  460|       |
  461|    405|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_PAGING_RESTRICTION_PRESENT;
  ------------------
  |  |  153|    405|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PAGING_RESTRICTION_PRESENT ((uint64_t)1<<33)
  ------------------
  462|    405|            decoded += size;
  463|    405|            break;
  464|    209|        case OGS_NAS_5GS_REGISTRATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  |  197|    209|#define OGS_NAS_5GS_REGISTRATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (464:9): [True: 209, False: 21.4k]
  ------------------
  465|    209|            size = ogs_nas_5gs_decode_service_level_aa_container(&registration_request->service_level_aa_container, pkbuf);
  466|    209|            if (size < 0) {
  ------------------
  |  Branch (466:17): [True: 4, False: 205]
  ------------------
  467|      4|               ogs_error("ogs_nas_5gs_decode_service_level_aa_container() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  468|      4|               return size;
  469|      4|            }
  470|       |
  471|    205|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  |  154|    205|#define OGS_NAS_5GS_REGISTRATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<34)
  ------------------
  472|    205|            decoded += size;
  473|    205|            break;
  474|    204|        case OGS_NAS_5GS_REGISTRATION_REQUEST_NID_TYPE:
  ------------------
  |  |  198|    204|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NID_TYPE 0x32
  ------------------
  |  Branch (474:9): [True: 204, False: 21.4k]
  ------------------
  475|    204|            size = ogs_nas_5gs_decode_nid(&registration_request->nid, pkbuf);
  476|    204|            if (size < 0) {
  ------------------
  |  Branch (476:17): [True: 2, False: 202]
  ------------------
  477|      2|               ogs_error("ogs_nas_5gs_decode_nid() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  478|      2|               return size;
  479|      2|            }
  480|       |
  481|    202|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_NID_PRESENT;
  ------------------
  |  |  155|    202|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NID_PRESENT ((uint64_t)1<<35)
  ------------------
  482|    202|            decoded += size;
  483|    202|            break;
  484|    232|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UE_DETERMINED_PLMN_WITH_DISASTER_CONDITION_TYPE:
  ------------------
  |  |  199|    232|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_DETERMINED_PLMN_WITH_DISASTER_CONDITION_TYPE 0x16
  ------------------
  |  Branch (484:9): [True: 232, False: 21.3k]
  ------------------
  485|    232|            size = ogs_nas_5gs_decode_plmn_identity(&registration_request->ue_determined_plmn_with_disaster_condition, pkbuf);
  486|    232|            if (size < 0) {
  ------------------
  |  Branch (486:17): [True: 3, False: 229]
  ------------------
  487|      3|               ogs_error("ogs_nas_5gs_decode_plmn_identity() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  488|      3|               return size;
  489|      3|            }
  490|       |
  491|    229|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UE_DETERMINED_PLMN_WITH_DISASTER_CONDITION_PRESENT;
  ------------------
  |  |  156|    229|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_DETERMINED_PLMN_WITH_DISASTER_CONDITION_PRESENT ((uint64_t)1<<36)
  ------------------
  492|    229|            decoded += size;
  493|    229|            break;
  494|    244|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_PEIPS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  200|    244|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_PEIPS_ASSISTANCE_INFORMATION_TYPE 0x2A
  ------------------
  |  Branch (494:9): [True: 244, False: 21.3k]
  ------------------
  495|    244|            size = ogs_nas_5gs_decode_peips_assistance_information(&registration_request->requested_peips_assistance_information, pkbuf);
  496|    244|            if (size < 0) {
  ------------------
  |  Branch (496:17): [True: 1, False: 243]
  ------------------
  497|      1|               ogs_error("ogs_nas_5gs_decode_peips_assistance_information() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  498|      1|               return size;
  499|      1|            }
  500|       |
  501|    243|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_PEIPS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  157|    243|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_PEIPS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<37)
  ------------------
  502|    243|            decoded += size;
  503|    243|            break;
  504|    200|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_T3512_VALUE_TYPE:
  ------------------
  |  |  201|    200|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_T3512_VALUE_TYPE 0x3B
  ------------------
  |  Branch (504:9): [True: 200, False: 21.4k]
  ------------------
  505|    200|            size = ogs_nas_5gs_decode_gprs_timer_3(&registration_request->requested_t3512_value, pkbuf);
  506|    200|            if (size < 0) {
  ------------------
  |  Branch (506:17): [True: 2, False: 198]
  ------------------
  507|      2|               ogs_error("ogs_nas_5gs_decode_gprs_timer_3() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  508|      2|               return size;
  509|      2|            }
  510|       |
  511|    198|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_T3512_VALUE_PRESENT;
  ------------------
  |  |  158|    198|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_T3512_VALUE_PRESENT ((uint64_t)1<<38)
  ------------------
  512|    198|            decoded += size;
  513|    198|            break;
  514|    200|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UNAVAILABILITY_INFORMATION_TYPE:
  ------------------
  |  |  202|    200|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UNAVAILABILITY_INFORMATION_TYPE 0x3C
  ------------------
  |  Branch (514:9): [True: 200, False: 21.4k]
  ------------------
  515|    200|            size = ogs_nas_5gs_decode_unavailability_information(&registration_request->unavailability_information, pkbuf);
  516|    200|            if (size < 0) {
  ------------------
  |  Branch (516:17): [True: 2, False: 198]
  ------------------
  517|      2|               ogs_error("ogs_nas_5gs_decode_unavailability_information() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  518|      2|               return size;
  519|      2|            }
  520|       |
  521|    198|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UNAVAILABILITY_INFORMATION_PRESENT;
  ------------------
  |  |  159|    198|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UNAVAILABILITY_INFORMATION_PRESENT ((uint64_t)1<<39)
  ------------------
  522|    198|            decoded += size;
  523|    198|            break;
  524|    221|        case OGS_NAS_5GS_REGISTRATION_REQUEST_NON_3GPP_PATH_SWITCHING_INFORMATION_TYPE:
  ------------------
  |  |  203|    221|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NON_3GPP_PATH_SWITCHING_INFORMATION_TYPE 0x3F
  ------------------
  |  Branch (524:9): [True: 221, False: 21.4k]
  ------------------
  525|    221|            size = ogs_nas_5gs_decode_non_3gpp_path_switching_information(&registration_request->non_3gpp_path_switching_information, pkbuf);
  526|    221|            if (size < 0) {
  ------------------
  |  Branch (526:17): [True: 4, False: 217]
  ------------------
  527|      4|               ogs_error("ogs_nas_5gs_decode_non_3gpp_path_switching_information() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  528|      4|               return size;
  529|      4|            }
  530|       |
  531|    217|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_NON_3GPP_PATH_SWITCHING_INFORMATION_PRESENT;
  ------------------
  |  |  160|    217|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NON_3GPP_PATH_SWITCHING_INFORMATION_PRESENT ((uint64_t)1<<40)
  ------------------
  532|    217|            decoded += size;
  533|    217|            break;
  534|    210|        case OGS_NAS_5GS_REGISTRATION_REQUEST_AUN3_INDICATION_TYPE:
  ------------------
  |  |  204|    210|#define OGS_NAS_5GS_REGISTRATION_REQUEST_AUN3_INDICATION_TYPE 0x56
  ------------------
  |  Branch (534:9): [True: 210, False: 21.4k]
  ------------------
  535|    210|            size = ogs_nas_5gs_decode_aun3_indication(&registration_request->aun3_indication, pkbuf);
  536|    210|            if (size < 0) {
  ------------------
  |  Branch (536:17): [True: 5, False: 205]
  ------------------
  537|      5|               ogs_error("ogs_nas_5gs_decode_aun3_indication() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  538|      5|               return size;
  539|      5|            }
  540|       |
  541|    205|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_AUN3_INDICATION_PRESENT;
  ------------------
  |  |  161|    205|#define OGS_NAS_5GS_REGISTRATION_REQUEST_AUN3_INDICATION_PRESENT ((uint64_t)1<<41)
  ------------------
  542|    205|            decoded += size;
  543|    205|            break;
  544|    201|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_LP_WUSPS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  205|    201|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_LP_WUSPS_ASSISTANCE_INFORMATION_TYPE 0x64
  ------------------
  |  Branch (544:9): [True: 201, False: 21.4k]
  ------------------
  545|    201|            size = ogs_nas_5gs_decode_lp_wusps_assistance_information(&registration_request->requested_lp_wusps_assistance_information, pkbuf);
  546|    201|            if (size < 0) {
  ------------------
  |  Branch (546:17): [True: 1, False: 200]
  ------------------
  547|      1|               ogs_error("ogs_nas_5gs_decode_lp_wusps_assistance_information() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  548|      1|               return size;
  549|      1|            }
  550|       |
  551|    200|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_LP_WUSPS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  162|    200|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_LP_WUSPS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<42)
  ------------------
  552|    200|            decoded += size;
  553|    200|            break;
  554|  9.07k|        default:
  ------------------
  |  Branch (554:9): [True: 9.07k, False: 12.5k]
  ------------------
  555|  9.07k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  9.07k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  9.07k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  9.07k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  9.07k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  9.07k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  9.07k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  556|  9.07k|            break;
  557|  21.6k|        }
  558|  21.6k|    }
  559|       |
  560|    479|    return decoded;
  561|    610|}
ogs_nas_5gs_decode_registration_accept:
  564|    988|{
  565|    988|    ogs_nas_5gs_registration_accept_t *registration_accept = &message->gmm.registration_accept;
  566|    988|    int decoded = 0;
  567|    988|    int size = 0;
  568|       |
  569|    988|    ogs_trace("[NAS] Decode REGISTRATION_ACCEPT\n");
  ------------------
  |  |   40|    988|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    988|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    988|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    988|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    988|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    988|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  570|       |
  571|    988|    size = ogs_nas_5gs_decode_5gs_registration_result(&registration_accept->registration_result, pkbuf);
  572|    988|    if (size < 0) {
  ------------------
  |  Branch (572:9): [True: 9, False: 979]
  ------------------
  573|      9|        ogs_error("ogs_nas_5gs_decode_5gs_registration_result() failed");
  ------------------
  |  |   36|      9|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      9|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      9|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      9|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      9|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      9|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  574|      9|        return size;
  575|      9|    }
  576|       |
  577|    979|    decoded += size;
  578|       |
  579|  31.3k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (579:12): [True: 30.6k, False: 722]
  ------------------
  580|  30.6k|        uint8_t *buffer = pkbuf->data;
  581|  30.6k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (581:24): [True: 7.15k, False: 23.4k]
  ------------------
  582|       |
  583|  30.6k|        size = sizeof(uint8_t);
  584|  30.6k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (584:13): [True: 0, False: 30.6k]
  ------------------
  585|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  586|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
  587|      0|        }
  588|  30.6k|        decoded += size;
  589|       |
  590|  30.6k|        switch(type) {
  591|    215|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_5G_GUTI_TYPE:
  ------------------
  |  |  326|    215|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_5G_GUTI_TYPE 0x77
  ------------------
  |  Branch (591:9): [True: 215, False: 30.4k]
  ------------------
  592|    215|            size = ogs_nas_5gs_decode_5gs_mobile_identity(&registration_accept->guti, pkbuf);
  593|    215|            if (size < 0) {
  ------------------
  |  Branch (593:17): [True: 1, False: 214]
  ------------------
  594|      1|               ogs_error("ogs_nas_5gs_decode_5gs_mobile_identity() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  595|      1|               return size;
  596|      1|            }
  597|       |
  598|    214|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_5G_GUTI_PRESENT;
  ------------------
  |  |  263|    214|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_5G_GUTI_PRESENT ((uint64_t)1<<0)
  ------------------
  599|    214|            decoded += size;
  600|    214|            break;
  601|    208|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_PLMNS_TYPE:
  ------------------
  |  |  327|    208|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_PLMNS_TYPE 0x4A
  ------------------
  |  Branch (601:9): [True: 208, False: 30.4k]
  ------------------
  602|    208|            size = ogs_nas_5gs_decode_plmn_list(&registration_accept->equivalent_plmns, pkbuf);
  603|    208|            if (size < 0) {
  ------------------
  |  Branch (603:17): [True: 7, False: 201]
  ------------------
  604|      7|               ogs_error("ogs_nas_5gs_decode_plmn_list() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  605|      7|               return size;
  606|      7|            }
  607|       |
  608|    201|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_PLMNS_PRESENT;
  ------------------
  |  |  264|    201|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_PLMNS_PRESENT ((uint64_t)1<<1)
  ------------------
  609|    201|            decoded += size;
  610|    201|            break;
  611|    230|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_TAI_LIST_TYPE:
  ------------------
  |  |  328|    230|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_TAI_LIST_TYPE 0x54
  ------------------
  |  Branch (611:9): [True: 230, False: 30.4k]
  ------------------
  612|    230|            size = ogs_nas_5gs_decode_5gs_tracking_area_identity_list(&registration_accept->tai_list, pkbuf);
  613|    230|            if (size < 0) {
  ------------------
  |  Branch (613:17): [True: 1, False: 229]
  ------------------
  614|      1|               ogs_error("ogs_nas_5gs_decode_5gs_tracking_area_identity_list() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  615|      1|               return size;
  616|      1|            }
  617|       |
  618|    229|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_TAI_LIST_PRESENT;
  ------------------
  |  |  265|    229|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_TAI_LIST_PRESENT ((uint64_t)1<<2)
  ------------------
  619|    229|            decoded += size;
  620|    229|            break;
  621|    234|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_ALLOWED_NSSAI_TYPE:
  ------------------
  |  |  329|    234|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_ALLOWED_NSSAI_TYPE 0x15
  ------------------
  |  Branch (621:9): [True: 234, False: 30.3k]
  ------------------
  622|    234|            size = ogs_nas_5gs_decode_nssai(&registration_accept->allowed_nssai, pkbuf);
  623|    234|            if (size < 0) {
  ------------------
  |  Branch (623:17): [True: 1, False: 233]
  ------------------
  624|      1|               ogs_error("ogs_nas_5gs_decode_nssai() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  625|      1|               return size;
  626|      1|            }
  627|       |
  628|    233|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_ALLOWED_NSSAI_PRESENT;
  ------------------
  |  |  266|    233|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_ALLOWED_NSSAI_PRESENT ((uint64_t)1<<3)
  ------------------
  629|    233|            decoded += size;
  630|    233|            break;
  631|    241|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  330|    241|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_REJECTED_NSSAI_TYPE 0x11
  ------------------
  |  Branch (631:9): [True: 241, False: 30.3k]
  ------------------
  632|    241|            size = ogs_nas_5gs_decode_rejected_nssai(&registration_accept->rejected_nssai, pkbuf);
  633|    241|            if (size < 0) {
  ------------------
  |  Branch (633:17): [True: 1, False: 240]
  ------------------
  634|      1|               ogs_error("ogs_nas_5gs_decode_rejected_nssai() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  635|      1|               return size;
  636|      1|            }
  637|       |
  638|    240|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  267|    240|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_REJECTED_NSSAI_PRESENT ((uint64_t)1<<4)
  ------------------
  639|    240|            decoded += size;
  640|    240|            break;
  641|    221|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_CONFIGURED_NSSAI_TYPE:
  ------------------
  |  |  331|    221|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_CONFIGURED_NSSAI_TYPE 0x31
  ------------------
  |  Branch (641:9): [True: 221, False: 30.4k]
  ------------------
  642|    221|            size = ogs_nas_5gs_decode_nssai(&registration_accept->configured_nssai, pkbuf);
  643|    221|            if (size < 0) {
  ------------------
  |  Branch (643:17): [True: 4, False: 217]
  ------------------
  644|      4|               ogs_error("ogs_nas_5gs_decode_nssai() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  645|      4|               return size;
  646|      4|            }
  647|       |
  648|    217|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_CONFIGURED_NSSAI_PRESENT;
  ------------------
  |  |  268|    217|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_CONFIGURED_NSSAI_PRESENT ((uint64_t)1<<5)
  ------------------
  649|    217|            decoded += size;
  650|    217|            break;
  651|    220|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_5GS_NETWORK_FEATURE_SUPPORT_TYPE:
  ------------------
  |  |  332|    220|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_5GS_NETWORK_FEATURE_SUPPORT_TYPE 0x21
  ------------------
  |  Branch (651:9): [True: 220, False: 30.4k]
  ------------------
  652|    220|            size = ogs_nas_5gs_decode_5gs_network_feature_support(&registration_accept->network_feature_support, pkbuf);
  653|    220|            if (size < 0) {
  ------------------
  |  Branch (653:17): [True: 4, False: 216]
  ------------------
  654|      4|               ogs_error("ogs_nas_5gs_decode_5gs_network_feature_support() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  655|      4|               return size;
  656|      4|            }
  657|       |
  658|    216|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_5GS_NETWORK_FEATURE_SUPPORT_PRESENT;
  ------------------
  |  |  269|    216|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_5GS_NETWORK_FEATURE_SUPPORT_PRESENT ((uint64_t)1<<6)
  ------------------
  659|    216|            decoded += size;
  660|    216|            break;
  661|    203|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  |  333|    203|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_STATUS_TYPE 0x50
  ------------------
  |  Branch (661:9): [True: 203, False: 30.4k]
  ------------------
  662|    203|            size = ogs_nas_5gs_decode_pdu_session_status(&registration_accept->pdu_session_status, pkbuf);
  663|    203|            if (size < 0) {
  ------------------
  |  Branch (663:17): [True: 1, False: 202]
  ------------------
  664|      1|               ogs_error("ogs_nas_5gs_decode_pdu_session_status() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  665|      1|               return size;
  666|      1|            }
  667|       |
  668|    202|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  |  270|    202|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<7)
  ------------------
  669|    202|            decoded += size;
  670|    202|            break;
  671|    235|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_TYPE:
  ------------------
  |  |  334|    235|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_TYPE 0x26
  ------------------
  |  Branch (671:9): [True: 235, False: 30.3k]
  ------------------
  672|    235|            size = ogs_nas_5gs_decode_pdu_session_reactivation_result(&registration_accept->pdu_session_reactivation_result, pkbuf);
  673|    235|            if (size < 0) {
  ------------------
  |  Branch (673:17): [True: 4, False: 231]
  ------------------
  674|      4|               ogs_error("ogs_nas_5gs_decode_pdu_session_reactivation_result() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  675|      4|               return size;
  676|      4|            }
  677|       |
  678|    231|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_PRESENT;
  ------------------
  |  |  271|    231|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_PRESENT ((uint64_t)1<<8)
  ------------------
  679|    231|            decoded += size;
  680|    231|            break;
  681|    229|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_TYPE:
  ------------------
  |  |  335|    229|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_TYPE 0x72
  ------------------
  |  Branch (681:9): [True: 229, False: 30.4k]
  ------------------
  682|    229|            size = ogs_nas_5gs_decode_pdu_session_reactivation_result_error_cause(&registration_accept->pdu_session_reactivation_result_error_cause, pkbuf);
  683|    229|            if (size < 0) {
  ------------------
  |  Branch (683:17): [True: 9, False: 220]
  ------------------
  684|      9|               ogs_error("ogs_nas_5gs_decode_pdu_session_reactivation_result_error_cause() failed");
  ------------------
  |  |   36|      9|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      9|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      9|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      9|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      9|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      9|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  685|      9|               return size;
  686|      9|            }
  687|       |
  688|    220|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_PRESENT;
  ------------------
  |  |  272|    220|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_PRESENT ((uint64_t)1<<9)
  ------------------
  689|    220|            decoded += size;
  690|    220|            break;
  691|    225|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_LADN_INFORMATION_TYPE:
  ------------------
  |  |  336|    225|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_LADN_INFORMATION_TYPE 0x79
  ------------------
  |  Branch (691:9): [True: 225, False: 30.4k]
  ------------------
  692|    225|            size = ogs_nas_5gs_decode_ladn_information(&registration_accept->ladn_information, pkbuf);
  693|    225|            if (size < 0) {
  ------------------
  |  Branch (693:17): [True: 9, False: 216]
  ------------------
  694|      9|               ogs_error("ogs_nas_5gs_decode_ladn_information() failed");
  ------------------
  |  |   36|      9|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      9|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      9|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      9|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      9|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      9|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  695|      9|               return size;
  696|      9|            }
  697|       |
  698|    216|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_LADN_INFORMATION_PRESENT;
  ------------------
  |  |  273|    216|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_LADN_INFORMATION_PRESENT ((uint64_t)1<<10)
  ------------------
  699|    216|            decoded += size;
  700|    216|            break;
  701|    735|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_MICO_INDICATION_TYPE:
  ------------------
  |  |  337|    735|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_MICO_INDICATION_TYPE 0xB0
  ------------------
  |  Branch (701:9): [True: 735, False: 29.8k]
  ------------------
  702|    735|            decoded--;
  703|    735|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    735|    do { \
  |  |  114|    735|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    735|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 735, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    735|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|    735|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 735]
  |  |  ------------------
  ------------------
  704|    735|            size = ogs_nas_5gs_decode_mico_indication(&registration_accept->mico_indication, pkbuf);
  705|    735|            if (size < 0) {
  ------------------
  |  Branch (705:17): [True: 0, False: 735]
  ------------------
  706|      0|               ogs_error("ogs_nas_5gs_decode_mico_indication() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  707|      0|               return size;
  708|      0|            }
  709|       |
  710|    735|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_MICO_INDICATION_PRESENT;
  ------------------
  |  |  274|    735|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_MICO_INDICATION_PRESENT ((uint64_t)1<<11)
  ------------------
  711|    735|            decoded += size;
  712|    735|            break;
  713|  1.02k|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NETWORK_SLICING_INDICATION_TYPE:
  ------------------
  |  |  338|  1.02k|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NETWORK_SLICING_INDICATION_TYPE 0x90
  ------------------
  |  Branch (713:9): [True: 1.02k, False: 29.6k]
  ------------------
  714|  1.02k|            decoded--;
  715|  1.02k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.02k|    do { \
  |  |  114|  1.02k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.02k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.02k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.02k|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|  1.02k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.02k]
  |  |  ------------------
  ------------------
  716|  1.02k|            size = ogs_nas_5gs_decode_network_slicing_indication(&registration_accept->network_slicing_indication, pkbuf);
  717|  1.02k|            if (size < 0) {
  ------------------
  |  Branch (717:17): [True: 0, False: 1.02k]
  ------------------
  718|      0|               ogs_error("ogs_nas_5gs_decode_network_slicing_indication() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  719|      0|               return size;
  720|      0|            }
  721|       |
  722|  1.02k|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NETWORK_SLICING_INDICATION_PRESENT;
  ------------------
  |  |  275|  1.02k|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NETWORK_SLICING_INDICATION_PRESENT ((uint64_t)1<<12)
  ------------------
  723|  1.02k|            decoded += size;
  724|  1.02k|            break;
  725|    244|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_AREA_LIST_TYPE:
  ------------------
  |  |  339|    244|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_AREA_LIST_TYPE 0x27
  ------------------
  |  Branch (725:9): [True: 244, False: 30.3k]
  ------------------
  726|    244|            size = ogs_nas_5gs_decode_service_area_list(&registration_accept->service_area_list, pkbuf);
  727|    244|            if (size < 0) {
  ------------------
  |  Branch (727:17): [True: 3, False: 241]
  ------------------
  728|      3|               ogs_error("ogs_nas_5gs_decode_service_area_list() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  729|      3|               return size;
  730|      3|            }
  731|       |
  732|    241|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_AREA_LIST_PRESENT;
  ------------------
  |  |  276|    241|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_AREA_LIST_PRESENT ((uint64_t)1<<13)
  ------------------
  733|    241|            decoded += size;
  734|    241|            break;
  735|    198|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_T3512_VALUE_TYPE:
  ------------------
  |  |  340|    198|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3512_VALUE_TYPE 0x5E
  ------------------
  |  Branch (735:9): [True: 198, False: 30.4k]
  ------------------
  736|    198|            size = ogs_nas_5gs_decode_gprs_timer_3(&registration_accept->t3512_value, pkbuf);
  737|    198|            if (size < 0) {
  ------------------
  |  Branch (737:17): [True: 2, False: 196]
  ------------------
  738|      2|               ogs_error("ogs_nas_5gs_decode_gprs_timer_3() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  739|      2|               return size;
  740|      2|            }
  741|       |
  742|    196|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_T3512_VALUE_PRESENT;
  ------------------
  |  |  277|    196|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3512_VALUE_PRESENT ((uint64_t)1<<14)
  ------------------
  743|    196|            decoded += size;
  744|    196|            break;
  745|    252|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_DE_REGISTRATION_TIMER_VALUE_TYPE:
  ------------------
  |  |  341|    252|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_DE_REGISTRATION_TIMER_VALUE_TYPE 0x5D
  ------------------
  |  Branch (745:9): [True: 252, False: 30.3k]
  ------------------
  746|    252|            size = ogs_nas_5gs_decode_gprs_timer_2(&registration_accept->non_3gpp_de_registration_timer_value, pkbuf);
  747|    252|            if (size < 0) {
  ------------------
  |  Branch (747:17): [True: 2, False: 250]
  ------------------
  748|      2|               ogs_error("ogs_nas_5gs_decode_gprs_timer_2() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  749|      2|               return size;
  750|      2|            }
  751|       |
  752|    250|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_DE_REGISTRATION_TIMER_VALUE_PRESENT;
  ------------------
  |  |  278|    250|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_DE_REGISTRATION_TIMER_VALUE_PRESENT ((uint64_t)1<<15)
  ------------------
  753|    250|            decoded += size;
  754|    250|            break;
  755|    255|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_T3502_VALUE_TYPE:
  ------------------
  |  |  342|    255|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3502_VALUE_TYPE 0x16
  ------------------
  |  Branch (755:9): [True: 255, False: 30.3k]
  ------------------
  756|    255|            size = ogs_nas_5gs_decode_gprs_timer_2(&registration_accept->t3502_value, pkbuf);
  757|    255|            if (size < 0) {
  ------------------
  |  Branch (757:17): [True: 1, False: 254]
  ------------------
  758|      1|               ogs_error("ogs_nas_5gs_decode_gprs_timer_2() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  759|      1|               return size;
  760|      1|            }
  761|       |
  762|    254|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_T3502_VALUE_PRESENT;
  ------------------
  |  |  279|    254|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3502_VALUE_PRESENT ((uint64_t)1<<16)
  ------------------
  763|    254|            decoded += size;
  764|    254|            break;
  765|    233|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EMERGENCY_NUMBER_LIST_TYPE:
  ------------------
  |  |  343|    233|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EMERGENCY_NUMBER_LIST_TYPE 0x34
  ------------------
  |  Branch (765:9): [True: 233, False: 30.3k]
  ------------------
  766|    233|            size = ogs_nas_5gs_decode_emergency_number_list(&registration_accept->emergency_number_list, pkbuf);
  767|    233|            if (size < 0) {
  ------------------
  |  Branch (767:17): [True: 4, False: 229]
  ------------------
  768|      4|               ogs_error("ogs_nas_5gs_decode_emergency_number_list() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  769|      4|               return size;
  770|      4|            }
  771|       |
  772|    229|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EMERGENCY_NUMBER_LIST_PRESENT;
  ------------------
  |  |  280|    229|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EMERGENCY_NUMBER_LIST_PRESENT ((uint64_t)1<<17)
  ------------------
  773|    229|            decoded += size;
  774|    229|            break;
  775|    226|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_EMERGENCY_NUMBER_LIST_TYPE:
  ------------------
  |  |  344|    226|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_EMERGENCY_NUMBER_LIST_TYPE 0x7A
  ------------------
  |  Branch (775:9): [True: 226, False: 30.4k]
  ------------------
  776|    226|            size = ogs_nas_5gs_decode_extended_emergency_number_list(&registration_accept->extended_emergency_number_list, pkbuf);
  777|    226|            if (size < 0) {
  ------------------
  |  Branch (777:17): [True: 16, False: 210]
  ------------------
  778|     16|               ogs_error("ogs_nas_5gs_decode_extended_emergency_number_list() failed");
  ------------------
  |  |   36|     16|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     16|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     16|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     16|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     16|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     16|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  779|     16|               return size;
  780|     16|            }
  781|       |
  782|    210|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_EMERGENCY_NUMBER_LIST_PRESENT;
  ------------------
  |  |  281|    210|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_EMERGENCY_NUMBER_LIST_PRESENT ((uint64_t)1<<18)
  ------------------
  783|    210|            decoded += size;
  784|    210|            break;
  785|    215|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_SOR_TRANSPARENT_CONTAINER_TYPE:
  ------------------
  |  |  345|    215|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_SOR_TRANSPARENT_CONTAINER_TYPE 0x73
  ------------------
  |  Branch (785:9): [True: 215, False: 30.4k]
  ------------------
  786|    215|            size = ogs_nas_5gs_decode_sor_transparent_container(&registration_accept->sor_transparent_container, pkbuf);
  787|    215|            if (size < 0) {
  ------------------
  |  Branch (787:17): [True: 7, False: 208]
  ------------------
  788|      7|               ogs_error("ogs_nas_5gs_decode_sor_transparent_container() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  789|      7|               return size;
  790|      7|            }
  791|       |
  792|    208|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_SOR_TRANSPARENT_CONTAINER_PRESENT;
  ------------------
  |  |  282|    208|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_SOR_TRANSPARENT_CONTAINER_PRESENT ((uint64_t)1<<19)
  ------------------
  793|    208|            decoded += size;
  794|    208|            break;
  795|    205|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EAP_MESSAGE_TYPE:
  ------------------
  |  |  346|    205|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (795:9): [True: 205, False: 30.4k]
  ------------------
  796|    205|            size = ogs_nas_5gs_decode_eap_message(&registration_accept->eap_message, pkbuf);
  797|    205|            if (size < 0) {
  ------------------
  |  Branch (797:17): [True: 1, False: 204]
  ------------------
  798|      1|               ogs_error("ogs_nas_5gs_decode_eap_message() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  799|      1|               return size;
  800|      1|            }
  801|       |
  802|    204|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  283|    204|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EAP_MESSAGE_PRESENT ((uint64_t)1<<20)
  ------------------
  803|    204|            decoded += size;
  804|    204|            break;
  805|    737|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSAI_INCLUSION_MODE_TYPE:
  ------------------
  |  |  347|    737|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSAI_INCLUSION_MODE_TYPE 0xA0
  ------------------
  |  Branch (805:9): [True: 737, False: 29.8k]
  ------------------
  806|    737|            decoded--;
  807|    737|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    737|    do { \
  |  |  114|    737|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    737|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 737, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    737|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|    737|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 737]
  |  |  ------------------
  ------------------
  808|    737|            size = ogs_nas_5gs_decode_nssai_inclusion_mode(&registration_accept->nssai_inclusion_mode, pkbuf);
  809|    737|            if (size < 0) {
  ------------------
  |  Branch (809:17): [True: 0, False: 737]
  ------------------
  810|      0|               ogs_error("ogs_nas_5gs_decode_nssai_inclusion_mode() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  811|      0|               return size;
  812|      0|            }
  813|       |
  814|    737|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSAI_INCLUSION_MODE_PRESENT;
  ------------------
  |  |  284|    737|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSAI_INCLUSION_MODE_PRESENT ((uint64_t)1<<21)
  ------------------
  815|    737|            decoded += size;
  816|    737|            break;
  817|    216|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_TYPE:
  ------------------
  |  |  348|    216|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_TYPE 0x76
  ------------------
  |  Branch (817:9): [True: 216, False: 30.4k]
  ------------------
  818|    216|            size = ogs_nas_5gs_decode_operator_defined_access_category_definitions(&registration_accept->operator_defined_access_category_definitions, pkbuf);
  819|    216|            if (size < 0) {
  ------------------
  |  Branch (819:17): [True: 10, False: 206]
  ------------------
  820|     10|               ogs_error("ogs_nas_5gs_decode_operator_defined_access_category_definitions() failed");
  ------------------
  |  |   36|     10|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     10|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     10|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     10|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     10|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     10|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  821|     10|               return size;
  822|     10|            }
  823|       |
  824|    206|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_PRESENT;
  ------------------
  |  |  285|    206|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_PRESENT ((uint64_t)1<<22)
  ------------------
  825|    206|            decoded += size;
  826|    206|            break;
  827|    214|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_DRX_PARAMETERS_TYPE:
  ------------------
  |  |  349|    214|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_DRX_PARAMETERS_TYPE 0x51
  ------------------
  |  Branch (827:9): [True: 214, False: 30.4k]
  ------------------
  828|    214|            size = ogs_nas_5gs_decode_5gs_drx_parameters(&registration_accept->negotiated_drx_parameters, pkbuf);
  829|    214|            if (size < 0) {
  ------------------
  |  Branch (829:17): [True: 6, False: 208]
  ------------------
  830|      6|               ogs_error("ogs_nas_5gs_decode_5gs_drx_parameters() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  831|      6|               return size;
  832|      6|            }
  833|       |
  834|    208|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_DRX_PARAMETERS_PRESENT;
  ------------------
  |  |  286|    208|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_DRX_PARAMETERS_PRESENT ((uint64_t)1<<23)
  ------------------
  835|    208|            decoded += size;
  836|    208|            break;
  837|    579|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_NW_POLICIES_TYPE:
  ------------------
  |  |  350|    579|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_NW_POLICIES_TYPE 0xD0
  ------------------
  |  Branch (837:9): [True: 579, False: 30.0k]
  ------------------
  838|    579|            decoded--;
  839|    579|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    579|    do { \
  |  |  114|    579|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    579|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 579, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    579|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|    579|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 579]
  |  |  ------------------
  ------------------
  840|    579|            size = ogs_nas_5gs_decode_non_3gpp_nw_provided_policies(&registration_accept->non_3gpp_nw_policies, pkbuf);
  841|    579|            if (size < 0) {
  ------------------
  |  Branch (841:17): [True: 3, False: 576]
  ------------------
  842|      3|               ogs_error("ogs_nas_5gs_decode_non_3gpp_nw_provided_policies() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  843|      3|               return size;
  844|      3|            }
  845|       |
  846|    576|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_NW_POLICIES_PRESENT;
  ------------------
  |  |  287|    576|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_NW_POLICIES_PRESENT ((uint64_t)1<<24)
  ------------------
  847|    576|            decoded += size;
  848|    576|            break;
  849|    214|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EPS_BEARER_CONTEXT_STATUS_TYPE:
  ------------------
  |  |  351|    214|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EPS_BEARER_CONTEXT_STATUS_TYPE 0x60
  ------------------
  |  Branch (849:9): [True: 214, False: 30.4k]
  ------------------
  850|    214|            size = ogs_nas_5gs_decode_eps_bearer_context_status(&registration_accept->eps_bearer_context_status, pkbuf);
  851|    214|            if (size < 0) {
  ------------------
  |  Branch (851:17): [True: 6, False: 208]
  ------------------
  852|      6|               ogs_error("ogs_nas_5gs_decode_eps_bearer_context_status() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  853|      6|               return size;
  854|      6|            }
  855|       |
  856|    208|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EPS_BEARER_CONTEXT_STATUS_PRESENT;
  ------------------
  |  |  288|    208|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EPS_BEARER_CONTEXT_STATUS_PRESENT ((uint64_t)1<<25)
  ------------------
  857|    208|            decoded += size;
  858|    208|            break;
  859|    228|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_EXTENDED_DRX_PARAMETERS_TYPE:
  ------------------
  |  |  352|    228|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_EXTENDED_DRX_PARAMETERS_TYPE 0x6E
  ------------------
  |  Branch (859:9): [True: 228, False: 30.4k]
  ------------------
  860|    228|            size = ogs_nas_5gs_decode_extended_drx_parameters(&registration_accept->negotiated_extended_drx_parameters, pkbuf);
  861|    228|            if (size < 0) {
  ------------------
  |  Branch (861:17): [True: 5, False: 223]
  ------------------
  862|      5|               ogs_error("ogs_nas_5gs_decode_extended_drx_parameters() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  863|      5|               return size;
  864|      5|            }
  865|       |
  866|    223|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_EXTENDED_DRX_PARAMETERS_PRESENT;
  ------------------
  |  |  289|    223|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_EXTENDED_DRX_PARAMETERS_PRESENT ((uint64_t)1<<26)
  ------------------
  867|    223|            decoded += size;
  868|    223|            break;
  869|    196|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_T3447_VALUE_TYPE:
  ------------------
  |  |  353|    196|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3447_VALUE_TYPE 0x6C
  ------------------
  |  Branch (869:9): [True: 196, False: 30.4k]
  ------------------
  870|    196|            size = ogs_nas_5gs_decode_gprs_timer_3(&registration_accept->t3447_value, pkbuf);
  871|    196|            if (size < 0) {
  ------------------
  |  Branch (871:17): [True: 1, False: 195]
  ------------------
  872|      1|               ogs_error("ogs_nas_5gs_decode_gprs_timer_3() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  873|      1|               return size;
  874|      1|            }
  875|       |
  876|    195|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_T3447_VALUE_PRESENT;
  ------------------
  |  |  290|    195|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3447_VALUE_PRESENT ((uint64_t)1<<27)
  ------------------
  877|    195|            decoded += size;
  878|    195|            break;
  879|    200|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_T3448_VALUE_TYPE:
  ------------------
  |  |  354|    200|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3448_VALUE_TYPE 0x6B
  ------------------
  |  Branch (879:9): [True: 200, False: 30.4k]
  ------------------
  880|    200|            size = ogs_nas_5gs_decode_gprs_timer_2(&registration_accept->t3448_value, pkbuf);
  881|    200|            if (size < 0) {
  ------------------
  |  Branch (881:17): [True: 1, False: 199]
  ------------------
  882|      1|               ogs_error("ogs_nas_5gs_decode_gprs_timer_2() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  883|      1|               return size;
  884|      1|            }
  885|       |
  886|    199|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_T3448_VALUE_PRESENT;
  ------------------
  |  |  291|    199|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3448_VALUE_PRESENT ((uint64_t)1<<28)
  ------------------
  887|    199|            decoded += size;
  888|    199|            break;
  889|    198|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_T3324_VALUE_TYPE:
  ------------------
  |  |  355|    198|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3324_VALUE_TYPE 0x6A
  ------------------
  |  Branch (889:9): [True: 198, False: 30.4k]
  ------------------
  890|    198|            size = ogs_nas_5gs_decode_gprs_timer_3(&registration_accept->t3324_value, pkbuf);
  891|    198|            if (size < 0) {
  ------------------
  |  Branch (891:17): [True: 3, False: 195]
  ------------------
  892|      3|               ogs_error("ogs_nas_5gs_decode_gprs_timer_3() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  893|      3|               return size;
  894|      3|            }
  895|       |
  896|    195|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_T3324_VALUE_PRESENT;
  ------------------
  |  |  292|    195|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3324_VALUE_PRESENT ((uint64_t)1<<29)
  ------------------
  897|    195|            decoded += size;
  898|    195|            break;
  899|    247|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_TYPE:
  ------------------
  |  |  356|    247|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_TYPE 0x67
  ------------------
  |  Branch (899:9): [True: 247, False: 30.3k]
  ------------------
  900|    247|            size = ogs_nas_5gs_decode_ue_radio_capability_id(&registration_accept->ue_radio_capability_id, pkbuf);
  901|    247|            if (size < 0) {
  ------------------
  |  Branch (901:17): [True: 1, False: 246]
  ------------------
  902|      1|               ogs_error("ogs_nas_5gs_decode_ue_radio_capability_id() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  903|      1|               return size;
  904|      1|            }
  905|       |
  906|    246|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_PRESENT;
  ------------------
  |  |  293|    246|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_PRESENT ((uint64_t)1<<30)
  ------------------
  907|    246|            decoded += size;
  908|    246|            break;
  909|    605|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_TYPE:
  ------------------
  |  |  357|    605|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_TYPE 0xE0
  ------------------
  |  Branch (909:9): [True: 605, False: 30.0k]
  ------------------
  910|    605|            decoded--;
  911|    605|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    605|    do { \
  |  |  114|    605|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    605|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 605, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    605|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|    605|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 605]
  |  |  ------------------
  ------------------
  912|    605|            size = ogs_nas_5gs_decode_ue_radio_capability_id_deletion_indication(&registration_accept->ue_radio_capability_id_deletion_indication, pkbuf);
  913|    605|            if (size < 0) {
  ------------------
  |  Branch (913:17): [True: 0, False: 605]
  ------------------
  914|      0|               ogs_error("ogs_nas_5gs_decode_ue_radio_capability_id_deletion_indication() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  915|      0|               return size;
  916|      0|            }
  917|       |
  918|    605|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_PRESENT;
  ------------------
  |  |  294|    605|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_PRESENT ((uint64_t)1<<31)
  ------------------
  919|    605|            decoded += size;
  920|    605|            break;
  921|    218|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_PENDING_NSSAI_TYPE:
  ------------------
  |  |  358|    218|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PENDING_NSSAI_TYPE 0x39
  ------------------
  |  Branch (921:9): [True: 218, False: 30.4k]
  ------------------
  922|    218|            size = ogs_nas_5gs_decode_nssai(&registration_accept->pending_nssai, pkbuf);
  923|    218|            if (size < 0) {
  ------------------
  |  Branch (923:17): [True: 1, False: 217]
  ------------------
  924|      1|               ogs_error("ogs_nas_5gs_decode_nssai() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  925|      1|               return size;
  926|      1|            }
  927|       |
  928|    217|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_PENDING_NSSAI_PRESENT;
  ------------------
  |  |  295|    217|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PENDING_NSSAI_PRESENT ((uint64_t)1<<32)
  ------------------
  929|    217|            decoded += size;
  930|    217|            break;
  931|    307|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_CIPHERING_KEY_DATA_TYPE:
  ------------------
  |  |  359|    307|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_CIPHERING_KEY_DATA_TYPE 0x74
  ------------------
  |  Branch (931:9): [True: 307, False: 30.3k]
  ------------------
  932|    307|            size = ogs_nas_5gs_decode_ciphering_key_data(&registration_accept->ciphering_key_data, pkbuf);
  933|    307|            if (size < 0) {
  ------------------
  |  Branch (933:17): [True: 31, False: 276]
  ------------------
  934|     31|               ogs_error("ogs_nas_5gs_decode_ciphering_key_data() failed");
  ------------------
  |  |   36|     31|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     31|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     31|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     31|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     31|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     31|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  935|     31|               return size;
  936|     31|            }
  937|       |
  938|    276|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_CIPHERING_KEY_DATA_PRESENT;
  ------------------
  |  |  296|    276|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_CIPHERING_KEY_DATA_PRESENT ((uint64_t)1<<33)
  ------------------
  939|    276|            decoded += size;
  940|    276|            break;
  941|    208|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  360|    208|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_CAG_INFORMATION_LIST_TYPE 0x75
  ------------------
  |  Branch (941:9): [True: 208, False: 30.4k]
  ------------------
  942|    208|            size = ogs_nas_5gs_decode_cag_information_list(&registration_accept->cag_information_list, pkbuf);
  943|    208|            if (size < 0) {
  ------------------
  |  Branch (943:17): [True: 4, False: 204]
  ------------------
  944|      4|               ogs_error("ogs_nas_5gs_decode_cag_information_list() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  945|      4|               return size;
  946|      4|            }
  947|       |
  948|    204|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  297|    204|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<34)
  ------------------
  949|    204|            decoded += size;
  950|    204|            break;
  951|    211|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_TRUNCATED_5G_S_TMSI_CONFIGURATION_TYPE:
  ------------------
  |  |  361|    211|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_TRUNCATED_5G_S_TMSI_CONFIGURATION_TYPE 0x1B
  ------------------
  |  Branch (951:9): [True: 211, False: 30.4k]
  ------------------
  952|    211|            size = ogs_nas_5gs_decode_truncated_5g_s_tmsi_configuration(&registration_accept->truncated_s_tmsi_configuration, pkbuf);
  953|    211|            if (size < 0) {
  ------------------
  |  Branch (953:17): [True: 2, False: 209]
  ------------------
  954|      2|               ogs_error("ogs_nas_5gs_decode_truncated_5g_s_tmsi_configuration() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  955|      2|               return size;
  956|      2|            }
  957|       |
  958|    209|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_TRUNCATED_5G_S_TMSI_CONFIGURATION_PRESENT;
  ------------------
  |  |  298|    209|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_TRUNCATED_5G_S_TMSI_CONFIGURATION_PRESENT ((uint64_t)1<<35)
  ------------------
  959|    209|            decoded += size;
  960|    209|            break;
  961|    215|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_WUS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  362|    215|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_WUS_ASSISTANCE_INFORMATION_TYPE 0x1C
  ------------------
  |  Branch (961:9): [True: 215, False: 30.4k]
  ------------------
  962|    215|            size = ogs_nas_5gs_decode_wus_assistance_information(&registration_accept->negotiated_wus_assistance_information, pkbuf);
  963|    215|            if (size < 0) {
  ------------------
  |  Branch (963:17): [True: 7, False: 208]
  ------------------
  964|      7|               ogs_error("ogs_nas_5gs_decode_wus_assistance_information() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  965|      7|               return size;
  966|      7|            }
  967|       |
  968|    208|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_WUS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  299|    208|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_WUS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<36)
  ------------------
  969|    208|            decoded += size;
  970|    208|            break;
  971|    219|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_NB_N1_MODE_DRX_PARAMETERS_TYPE:
  ------------------
  |  |  363|    219|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_NB_N1_MODE_DRX_PARAMETERS_TYPE 0x29
  ------------------
  |  Branch (971:9): [True: 219, False: 30.4k]
  ------------------
  972|    219|            size = ogs_nas_5gs_decode_nb_n1_mode_drx_parameters(&registration_accept->negotiated_nb_n1_mode_drx_parameters, pkbuf);
  973|    219|            if (size < 0) {
  ------------------
  |  Branch (973:17): [True: 6, False: 213]
  ------------------
  974|      6|               ogs_error("ogs_nas_5gs_decode_nb_n1_mode_drx_parameters() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  975|      6|               return size;
  976|      6|            }
  977|       |
  978|    213|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_NB_N1_MODE_DRX_PARAMETERS_PRESENT;
  ------------------
  |  |  300|    213|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_NB_N1_MODE_DRX_PARAMETERS_PRESENT ((uint64_t)1<<37)
  ------------------
  979|    213|            decoded += size;
  980|    213|            break;
  981|    264|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  364|    264|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_REJECTED_NSSAI_TYPE 0x68
  ------------------
  |  Branch (981:9): [True: 264, False: 30.3k]
  ------------------
  982|    264|            size = ogs_nas_5gs_decode_extended_rejected_nssai(&registration_accept->extended_rejected_nssai, pkbuf);
  983|    264|            if (size < 0) {
  ------------------
  |  Branch (983:17): [True: 2, False: 262]
  ------------------
  984|      2|               ogs_error("ogs_nas_5gs_decode_extended_rejected_nssai() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  985|      2|               return size;
  986|      2|            }
  987|       |
  988|    262|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  301|    262|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_REJECTED_NSSAI_PRESENT ((uint64_t)1<<38)
  ------------------
  989|    262|            decoded += size;
  990|    262|            break;
  991|    239|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  |  365|    239|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x7B
  ------------------
  |  Branch (991:9): [True: 239, False: 30.3k]
  ------------------
  992|    239|            size = ogs_nas_5gs_decode_service_level_aa_container(&registration_accept->service_level_aa_container, pkbuf);
  993|    239|            if (size < 0) {
  ------------------
  |  Branch (993:17): [True: 4, False: 235]
  ------------------
  994|      4|               ogs_error("ogs_nas_5gs_decode_service_level_aa_container() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  995|      4|               return size;
  996|      4|            }
  997|       |
  998|    235|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  |  302|    235|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<39)
  ------------------
  999|    235|            decoded += size;
 1000|    235|            break;
 1001|    225|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_PEIPS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  366|    225|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_PEIPS_ASSISTANCE_INFORMATION_TYPE 0x33
  ------------------
  |  Branch (1001:9): [True: 225, False: 30.4k]
  ------------------
 1002|    225|            size = ogs_nas_5gs_decode_peips_assistance_information(&registration_accept->negotiated_peips_assistance_information, pkbuf);
 1003|    225|            if (size < 0) {
  ------------------
  |  Branch (1003:17): [True: 2, False: 223]
  ------------------
 1004|      2|               ogs_error("ogs_nas_5gs_decode_peips_assistance_information() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1005|      2|               return size;
 1006|      2|            }
 1007|       |
 1008|    223|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_PEIPS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  303|    223|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_PEIPS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<40)
  ------------------
 1009|    223|            decoded += size;
 1010|    223|            break;
 1011|    201|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_TYPE:
  ------------------
  |  |  367|    201|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_TYPE 0x35
  ------------------
  |  Branch (1011:9): [True: 201, False: 30.4k]
  ------------------
 1012|    201|            size = ogs_nas_5gs_decode_5gs_additional_request_result(&registration_accept->additional_request_result, pkbuf);
 1013|    201|            if (size < 0) {
  ------------------
  |  Branch (1013:17): [True: 1, False: 200]
  ------------------
 1014|      1|               ogs_error("ogs_nas_5gs_decode_5gs_additional_request_result() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1015|      1|               return size;
 1016|      1|            }
 1017|       |
 1018|    200|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_PRESENT;
  ------------------
  |  |  304|    200|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_PRESENT ((uint64_t)1<<41)
  ------------------
 1019|    200|            decoded += size;
 1020|    200|            break;
 1021|    224|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSRG_INFORMATION_TYPE:
  ------------------
  |  |  368|    224|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSRG_INFORMATION_TYPE 0x70
  ------------------
  |  Branch (1021:9): [True: 224, False: 30.4k]
  ------------------
 1022|    224|            size = ogs_nas_5gs_decode_nssrg_information(&registration_accept->nssrg_information, pkbuf);
 1023|    224|            if (size < 0) {
  ------------------
  |  Branch (1023:17): [True: 4, False: 220]
  ------------------
 1024|      4|               ogs_error("ogs_nas_5gs_decode_nssrg_information() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1025|      4|               return size;
 1026|      4|            }
 1027|       |
 1028|    220|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSRG_INFORMATION_PRESENT;
  ------------------
  |  |  305|    220|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSRG_INFORMATION_PRESENT ((uint64_t)1<<42)
  ------------------
 1029|    220|            decoded += size;
 1030|    220|            break;
 1031|    199|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_ROAMING_WAIT_RANGE_TYPE:
  ------------------
  |  |  369|    199|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_ROAMING_WAIT_RANGE_TYPE 0x14
  ------------------
  |  Branch (1031:9): [True: 199, False: 30.4k]
  ------------------
 1032|    199|            size = ogs_nas_5gs_decode_registration_wait_range(&registration_accept->disaster_roaming_wait_range, pkbuf);
 1033|    199|            if (size < 0) {
  ------------------
  |  Branch (1033:17): [True: 2, False: 197]
  ------------------
 1034|      2|               ogs_error("ogs_nas_5gs_decode_registration_wait_range() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1035|      2|               return size;
 1036|      2|            }
 1037|       |
 1038|    197|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_ROAMING_WAIT_RANGE_PRESENT;
  ------------------
  |  |  306|    197|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_ROAMING_WAIT_RANGE_PRESENT ((uint64_t)1<<43)
  ------------------
 1039|    197|            decoded += size;
 1040|    197|            break;
 1041|    199|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_RETURN_WAIT_RANGE_TYPE:
  ------------------
  |  |  370|    199|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_RETURN_WAIT_RANGE_TYPE 0x2C
  ------------------
  |  Branch (1041:9): [True: 199, False: 30.4k]
  ------------------
 1042|    199|            size = ogs_nas_5gs_decode_registration_wait_range(&registration_accept->disaster_return_wait_range, pkbuf);
 1043|    199|            if (size < 0) {
  ------------------
  |  Branch (1043:17): [True: 2, False: 197]
  ------------------
 1044|      2|               ogs_error("ogs_nas_5gs_decode_registration_wait_range() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1045|      2|               return size;
 1046|      2|            }
 1047|       |
 1048|    197|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_RETURN_WAIT_RANGE_PRESENT;
  ------------------
  |  |  307|    197|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_RETURN_WAIT_RANGE_PRESENT ((uint64_t)1<<44)
  ------------------
 1049|    197|            decoded += size;
 1050|    197|            break;
 1051|    203|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION_TYPE:
  ------------------
  |  |  371|    203|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION_TYPE 0x13
  ------------------
  |  Branch (1051:9): [True: 203, False: 30.4k]
  ------------------
 1052|    203|            size = ogs_nas_5gs_decode_list_of_plmns_to_be_used_in_disaster_condition(&registration_accept->list_of_plmns_to_be_used_in_disaster_condition, pkbuf);
 1053|    203|            if (size < 0) {
  ------------------
  |  Branch (1053:17): [True: 1, False: 202]
  ------------------
 1054|      1|               ogs_error("ogs_nas_5gs_decode_list_of_plmns_to_be_used_in_disaster_condition() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1055|      1|               return size;
 1056|      1|            }
 1057|       |
 1058|    202|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION_PRESENT;
  ------------------
  |  |  308|    202|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION_PRESENT ((uint64_t)1<<45)
  ------------------
 1059|    202|            decoded += size;
 1060|    202|            break;
 1061|    226|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE:
  ------------------
  |  |  372|    226|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE 0x1D
  ------------------
  |  Branch (1061:9): [True: 226, False: 30.4k]
  ------------------
 1062|    226|            size = ogs_nas_5gs_decode_5gs_tracking_area_identity_list(&registration_accept->forbidden_tai_for_the_list_of_forbidden_tracking_areas_for_roaming, pkbuf);
 1063|    226|            if (size < 0) {
  ------------------
  |  Branch (1063:17): [True: 2, False: 224]
  ------------------
 1064|      2|               ogs_error("ogs_nas_5gs_decode_5gs_tracking_area_identity_list() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1065|      2|               return size;
 1066|      2|            }
 1067|       |
 1068|    224|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT;
  ------------------
  |  |  309|    224|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT ((uint64_t)1<<46)
  ------------------
 1069|    224|            decoded += size;
 1070|    224|            break;
 1071|    237|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_TYPE:
  ------------------
  |  |  373|    237|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_TYPE 0x1E
  ------------------
  |  Branch (1071:9): [True: 237, False: 30.3k]
  ------------------
 1072|    237|            size = ogs_nas_5gs_decode_5gs_tracking_area_identity_list(&registration_accept->forbidden_tai_for_the_list_of_forbidden_tracking_areas_forregional_provision_of_service, pkbuf);
 1073|    237|            if (size < 0) {
  ------------------
  |  Branch (1073:17): [True: 1, False: 236]
  ------------------
 1074|      1|               ogs_error("ogs_nas_5gs_decode_5gs_tracking_area_identity_list() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1075|      1|               return size;
 1076|      1|            }
 1077|       |
 1078|    236|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_PRESENT;
  ------------------
  |  |  310|    236|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_PRESENT ((uint64_t)1<<47)
  ------------------
 1079|    236|            decoded += size;
 1080|    236|            break;
 1081|    218|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  374|    218|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_CAG_INFORMATION_LIST_TYPE 0x71
  ------------------
  |  Branch (1081:9): [True: 218, False: 30.4k]
  ------------------
 1082|    218|            size = ogs_nas_5gs_decode_extended_cag_information_list(&registration_accept->extended_cag_information_list, pkbuf);
 1083|    218|            if (size < 0) {
  ------------------
  |  Branch (1083:17): [True: 2, False: 216]
  ------------------
 1084|      2|               ogs_error("ogs_nas_5gs_decode_extended_cag_information_list() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1085|      2|               return size;
 1086|      2|            }
 1087|       |
 1088|    216|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  311|    216|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<48)
  ------------------
 1089|    216|            decoded += size;
 1090|    216|            break;
 1091|    220|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NSAG_INFORMATION_TYPE:
  ------------------
  |  |  375|    220|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NSAG_INFORMATION_TYPE 0x7C
  ------------------
  |  Branch (1091:9): [True: 220, False: 30.4k]
  ------------------
 1092|    220|            size = ogs_nas_5gs_decode_nsag_information(&registration_accept->nsag_information, pkbuf);
 1093|    220|            if (size < 0) {
  ------------------
  |  Branch (1093:17): [True: 8, False: 212]
  ------------------
 1094|      8|               ogs_error("ogs_nas_5gs_decode_nsag_information() failed");
  ------------------
  |  |   36|      8|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      8|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      8|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      8|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      8|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      8|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1095|      8|               return size;
 1096|      8|            }
 1097|       |
 1098|    212|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NSAG_INFORMATION_PRESENT;
  ------------------
  |  |  312|    212|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NSAG_INFORMATION_PRESENT ((uint64_t)1<<49)
  ------------------
 1099|    212|            decoded += size;
 1100|    212|            break;
 1101|    221|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_SNPNS_TYPE:
  ------------------
  |  |  376|    221|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_SNPNS_TYPE 0x3D
  ------------------
  |  Branch (1101:9): [True: 221, False: 30.4k]
  ------------------
 1102|    221|            size = ogs_nas_5gs_decode_snpn_list(&registration_accept->equivalent_snpns, pkbuf);
 1103|    221|            if (size < 0) {
  ------------------
  |  Branch (1103:17): [True: 5, False: 216]
  ------------------
 1104|      5|               ogs_error("ogs_nas_5gs_decode_snpn_list() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1105|      5|               return size;
 1106|      5|            }
 1107|       |
 1108|    216|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_SNPNS_PRESENT;
  ------------------
  |  |  313|    216|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_SNPNS_PRESENT ((uint64_t)1<<50)
  ------------------
 1109|    216|            decoded += size;
 1110|    216|            break;
 1111|    373|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NID_TYPE:
  ------------------
  |  |  377|    373|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NID_TYPE 0x32
  ------------------
  |  Branch (1111:9): [True: 373, False: 30.2k]
  ------------------
 1112|    373|            size = ogs_nas_5gs_decode_nid(&registration_accept->nid, pkbuf);
 1113|    373|            if (size < 0) {
  ------------------
  |  Branch (1113:17): [True: 6, False: 367]
  ------------------
 1114|      6|               ogs_error("ogs_nas_5gs_decode_nid() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1115|      6|               return size;
 1116|      6|            }
 1117|       |
 1118|    367|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NID_PRESENT;
  ------------------
  |  |  314|    367|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NID_PRESENT ((uint64_t)1<<51)
  ------------------
 1119|    367|            decoded += size;
 1120|    367|            break;
 1121|    251|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_REGISTRATION_ACCEPT_TYPE_6_IE_CONTAINER_TYPE:
  ------------------
  |  |  378|    251|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_REGISTRATION_ACCEPT_TYPE_6_IE_CONTAINER_TYPE 0x7D
  ------------------
  |  Branch (1121:9): [True: 251, False: 30.3k]
  ------------------
 1122|    251|            size = ogs_nas_5gs_decode_type_6_ie_container(&registration_accept->registration_accept_type_6_ie_container, pkbuf);
 1123|    251|            if (size < 0) {
  ------------------
  |  Branch (1123:17): [True: 27, False: 224]
  ------------------
 1124|     27|               ogs_error("ogs_nas_5gs_decode_type_6_ie_container() failed");
  ------------------
  |  |   36|     27|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     27|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     27|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     27|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     27|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     27|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1125|     27|               return size;
 1126|     27|            }
 1127|       |
 1128|    224|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_REGISTRATION_ACCEPT_TYPE_6_IE_CONTAINER_PRESENT;
  ------------------
  |  |  315|    224|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_REGISTRATION_ACCEPT_TYPE_6_IE_CONTAINER_PRESENT ((uint64_t)1<<52)
  ------------------
 1129|    224|            decoded += size;
 1130|    224|            break;
 1131|    219|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_RAN_TIMING_SYNCHRONIZATION_TYPE:
  ------------------
  |  |  379|    219|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_RAN_TIMING_SYNCHRONIZATION_TYPE 0x4B
  ------------------
  |  Branch (1131:9): [True: 219, False: 30.4k]
  ------------------
 1132|    219|            size = ogs_nas_5gs_decode_ran_timing_synchronization(&registration_accept->ran_timing_synchronization, pkbuf);
 1133|    219|            if (size < 0) {
  ------------------
  |  Branch (1133:17): [True: 2, False: 217]
  ------------------
 1134|      2|               ogs_error("ogs_nas_5gs_decode_ran_timing_synchronization() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1135|      2|               return size;
 1136|      2|            }
 1137|       |
 1138|    217|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_RAN_TIMING_SYNCHRONIZATION_PRESENT;
  ------------------
  |  |  316|    217|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_RAN_TIMING_SYNCHRONIZATION_PRESENT ((uint64_t)1<<53)
  ------------------
 1139|    217|            decoded += size;
 1140|    217|            break;
 1141|    210|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_ALTERNATIVE_NSSAI_TYPE:
  ------------------
  |  |  380|    210|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_ALTERNATIVE_NSSAI_TYPE 0x4C
  ------------------
  |  Branch (1141:9): [True: 210, False: 30.4k]
  ------------------
 1142|    210|            size = ogs_nas_5gs_decode_alternative_nssai(&registration_accept->alternative_nssai, pkbuf);
 1143|    210|            if (size < 0) {
  ------------------
  |  Branch (1143:17): [True: 3, False: 207]
  ------------------
 1144|      3|               ogs_error("ogs_nas_5gs_decode_alternative_nssai() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1145|      3|               return size;
 1146|      3|            }
 1147|       |
 1148|    207|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_ALTERNATIVE_NSSAI_PRESENT;
  ------------------
  |  |  317|    207|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_ALTERNATIVE_NSSAI_PRESENT ((uint64_t)1<<54)
  ------------------
 1149|    207|            decoded += size;
 1150|    207|            break;
 1151|    215|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_TYPE:
  ------------------
  |  |  381|    215|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_TYPE 0x4F
  ------------------
  |  Branch (1151:9): [True: 215, False: 30.4k]
  ------------------
 1152|    215|            size = ogs_nas_5gs_decode_gprs_timer_3(&registration_accept->discontinuous_coverage_maximum_time_offset, pkbuf);
 1153|    215|            if (size < 0) {
  ------------------
  |  Branch (1153:17): [True: 2, False: 213]
  ------------------
 1154|      2|               ogs_error("ogs_nas_5gs_decode_gprs_timer_3() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1155|      2|               return size;
 1156|      2|            }
 1157|       |
 1158|    213|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_PRESENT;
  ------------------
  |  |  318|    213|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_PRESENT ((uint64_t)1<<55)
  ------------------
 1159|    213|            decoded += size;
 1160|    213|            break;
 1161|    201|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_S_NSSAI_TIME_VALIDITY_INFORMATION_TYPE:
  ------------------
  |  |  382|    201|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_S_NSSAI_TIME_VALIDITY_INFORMATION_TYPE 0x5B
  ------------------
  |  Branch (1161:9): [True: 201, False: 30.4k]
  ------------------
 1162|    201|            size = ogs_nas_5gs_decode_s_nssai_time_validity_information(&registration_accept->s_nssai_time_validity_information, pkbuf);
 1163|    201|            if (size < 0) {
  ------------------
  |  Branch (1163:17): [True: 3, False: 198]
  ------------------
 1164|      3|               ogs_error("ogs_nas_5gs_decode_s_nssai_time_validity_information() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1165|      3|               return size;
 1166|      3|            }
 1167|       |
 1168|    198|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_S_NSSAI_TIME_VALIDITY_INFORMATION_PRESENT;
  ------------------
  |  |  319|    198|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_S_NSSAI_TIME_VALIDITY_INFORMATION_PRESENT ((uint64_t)1<<56)
  ------------------
 1169|    198|            decoded += size;
 1170|    198|            break;
 1171|    207|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_UNAVAILABILITY_CONFIGURATION_TYPE:
  ------------------
  |  |  383|    207|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_UNAVAILABILITY_CONFIGURATION_TYPE 0x3C
  ------------------
  |  Branch (1171:9): [True: 207, False: 30.4k]
  ------------------
 1172|    207|            size = ogs_nas_5gs_decode_unavailability_configuration(&registration_accept->unavailability_configuration, pkbuf);
 1173|    207|            if (size < 0) {
  ------------------
  |  Branch (1173:17): [True: 6, False: 201]
  ------------------
 1174|      6|               ogs_error("ogs_nas_5gs_decode_unavailability_configuration() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1175|      6|               return size;
 1176|      6|            }
 1177|       |
 1178|    201|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_UNAVAILABILITY_CONFIGURATION_PRESENT;
  ------------------
  |  |  320|    201|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_UNAVAILABILITY_CONFIGURATION_PRESENT ((uint64_t)1<<57)
  ------------------
 1179|    201|            decoded += size;
 1180|    201|            break;
 1181|    196|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_FEATURE_AUTHORIZATION_INDICATION_TYPE:
  ------------------
  |  |  384|    196|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_FEATURE_AUTHORIZATION_INDICATION_TYPE 0x5C
  ------------------
  |  Branch (1181:9): [True: 196, False: 30.4k]
  ------------------
 1182|    196|            size = ogs_nas_5gs_decode_feature_authorization_indication(&registration_accept->feature_authorization_indication, pkbuf);
 1183|    196|            if (size < 0) {
  ------------------
  |  Branch (1183:17): [True: 2, False: 194]
  ------------------
 1184|      2|               ogs_error("ogs_nas_5gs_decode_feature_authorization_indication() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1185|      2|               return size;
 1186|      2|            }
 1187|       |
 1188|    194|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_FEATURE_AUTHORIZATION_INDICATION_PRESENT;
  ------------------
  |  |  321|    194|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_FEATURE_AUTHORIZATION_INDICATION_PRESENT ((uint64_t)1<<58)
  ------------------
 1189|    194|            decoded += size;
 1190|    194|            break;
 1191|    198|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_ON_DEMAND_NSSAI_TYPE:
  ------------------
  |  |  385|    198|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_ON_DEMAND_NSSAI_TYPE 0x61
  ------------------
  |  Branch (1191:9): [True: 198, False: 30.4k]
  ------------------
 1192|    198|            size = ogs_nas_5gs_decode_on_demand_nssai(&registration_accept->on_demand_nssai, pkbuf);
 1193|    198|            if (size < 0) {
  ------------------
  |  Branch (1193:17): [True: 2, False: 196]
  ------------------
 1194|      2|               ogs_error("ogs_nas_5gs_decode_on_demand_nssai() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1195|      2|               return size;
 1196|      2|            }
 1197|       |
 1198|    196|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_ON_DEMAND_NSSAI_PRESENT;
  ------------------
  |  |  322|    196|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_ON_DEMAND_NSSAI_PRESENT ((uint64_t)1<<59)
  ------------------
 1199|    196|            decoded += size;
 1200|    196|            break;
 1201|    212|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE:
  ------------------
  |  |  386|    212|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE 0x63
  ------------------
  |  Branch (1201:9): [True: 212, False: 30.4k]
  ------------------
 1202|    212|            size = ogs_nas_5gs_decode_access_technology_utilization_control(&registration_accept->access_technology_utilization_control, pkbuf);
 1203|    212|            if (size < 0) {
  ------------------
  |  Branch (1203:17): [True: 2, False: 210]
  ------------------
 1204|      2|               ogs_error("ogs_nas_5gs_decode_access_technology_utilization_control() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1205|      2|               return size;
 1206|      2|            }
 1207|       |
 1208|    210|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT;
  ------------------
  |  |  323|    210|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT ((uint64_t)1<<60)
  ------------------
 1209|    210|            decoded += size;
 1210|    210|            break;
 1211|    209|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_LP_WUSPS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  387|    209|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_LP_WUSPS_ASSISTANCE_INFORMATION_TYPE 0x64
  ------------------
  |  Branch (1211:9): [True: 209, False: 30.4k]
  ------------------
 1212|    209|            size = ogs_nas_5gs_decode_lp_wusps_assistance_information(&registration_accept->negotiated_lp_wusps_assistance_information, pkbuf);
 1213|    209|            if (size < 0) {
  ------------------
  |  Branch (1213:17): [True: 1, False: 208]
  ------------------
 1214|      1|               ogs_error("ogs_nas_5gs_decode_lp_wusps_assistance_information() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1215|      1|               return size;
 1216|      1|            }
 1217|       |
 1218|    208|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_LP_WUSPS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  324|    208|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_LP_WUSPS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<61)
  ------------------
 1219|    208|            decoded += size;
 1220|    208|            break;
 1221|    801|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_LP_WUS_STATUS_TYPE:
  ------------------
  |  |  388|    801|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_LP_WUS_STATUS_TYPE 0x80
  ------------------
  |  Branch (1221:9): [True: 801, False: 29.8k]
  ------------------
 1222|    801|            decoded--;
 1223|    801|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    801|    do { \
  |  |  114|    801|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    801|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 801, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    801|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|    801|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 801]
  |  |  ------------------
  ------------------
 1224|    801|            size = ogs_nas_5gs_decode_lp_wus_status(&registration_accept->lp_wus_status, pkbuf);
 1225|    801|            if (size < 0) {
  ------------------
  |  Branch (1225:17): [True: 0, False: 801]
  ------------------
 1226|      0|               ogs_error("ogs_nas_5gs_decode_lp_wus_status() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1227|      0|               return size;
 1228|      0|            }
 1229|       |
 1230|    801|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_LP_WUS_STATUS_PRESENT;
  ------------------
  |  |  325|    801|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_LP_WUS_STATUS_PRESENT ((uint64_t)1<<62)
  ------------------
 1231|    801|            decoded += size;
 1232|    801|            break;
 1233|  13.4k|        default:
  ------------------
  |  Branch (1233:9): [True: 13.4k, False: 17.2k]
  ------------------
 1234|  13.4k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  13.4k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  13.4k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  13.4k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  13.4k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  13.4k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  13.4k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1235|  13.4k|            break;
 1236|  30.6k|        }
 1237|  30.6k|    }
 1238|       |
 1239|    722|    return decoded;
 1240|    979|}
ogs_nas_5gs_decode_registration_complete:
 1243|     72|{
 1244|     72|    ogs_nas_5gs_registration_complete_t *registration_complete = &message->gmm.registration_complete;
 1245|     72|    int decoded = 0;
 1246|     72|    int size = 0;
 1247|       |
 1248|     72|    ogs_trace("[NAS] Decode REGISTRATION_COMPLETE\n");
  ------------------
  |  |   40|     72|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     72|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     72|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     72|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     72|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     72|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1249|       |
 1250|  2.00k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (1250:12): [True: 1.95k, False: 51]
  ------------------
 1251|  1.95k|        uint8_t *buffer = pkbuf->data;
 1252|  1.95k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (1252:24): [True: 440, False: 1.51k]
  ------------------
 1253|       |
 1254|  1.95k|        size = sizeof(uint8_t);
 1255|  1.95k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1255:13): [True: 0, False: 1.95k]
  ------------------
 1256|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1257|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 1258|      0|        }
 1259|  1.95k|        decoded += size;
 1260|       |
 1261|  1.95k|        switch(type) {
 1262|    248|        case OGS_NAS_5GS_REGISTRATION_COMPLETE_SOR_TRANSPARENT_CONTAINER_TYPE:
  ------------------
  |  |  466|    248|#define OGS_NAS_5GS_REGISTRATION_COMPLETE_SOR_TRANSPARENT_CONTAINER_TYPE 0x73
  ------------------
  |  Branch (1262:9): [True: 248, False: 1.70k]
  ------------------
 1263|    248|            size = ogs_nas_5gs_decode_sor_transparent_container(&registration_complete->sor_transparent_container, pkbuf);
 1264|    248|            if (size < 0) {
  ------------------
  |  Branch (1264:17): [True: 21, False: 227]
  ------------------
 1265|     21|               ogs_error("ogs_nas_5gs_decode_sor_transparent_container() failed");
  ------------------
  |  |   36|     21|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     21|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     21|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     21|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     21|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     21|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1266|     21|               return size;
 1267|     21|            }
 1268|       |
 1269|    227|            registration_complete->presencemask |= OGS_NAS_5GS_REGISTRATION_COMPLETE_SOR_TRANSPARENT_CONTAINER_PRESENT;
  ------------------
  |  |  465|    227|#define OGS_NAS_5GS_REGISTRATION_COMPLETE_SOR_TRANSPARENT_CONTAINER_PRESENT ((uint64_t)1<<0)
  ------------------
 1270|    227|            decoded += size;
 1271|    227|            break;
 1272|  1.70k|        default:
  ------------------
  |  Branch (1272:9): [True: 1.70k, False: 248]
  ------------------
 1273|  1.70k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.70k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.70k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.70k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.70k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.70k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.70k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1274|  1.70k|            break;
 1275|  1.95k|        }
 1276|  1.95k|    }
 1277|       |
 1278|     51|    return decoded;
 1279|     72|}
ogs_nas_5gs_decode_registration_reject:
 1282|    221|{
 1283|    221|    ogs_nas_5gs_registration_reject_t *registration_reject = &message->gmm.registration_reject;
 1284|    221|    int decoded = 0;
 1285|    221|    int size = 0;
 1286|       |
 1287|    221|    ogs_trace("[NAS] Decode REGISTRATION_REJECT\n");
  ------------------
  |  |   40|    221|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    221|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    221|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    221|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    221|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    221|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1288|       |
 1289|    221|    size = ogs_nas_5gs_decode_5gmm_cause(&registration_reject->gmm_cause, pkbuf);
 1290|    221|    if (size < 0) {
  ------------------
  |  Branch (1290:9): [True: 0, False: 221]
  ------------------
 1291|      0|        ogs_error("ogs_nas_5gs_decode_5gmm_cause() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1292|      0|        return size;
 1293|      0|    }
 1294|       |
 1295|    221|    decoded += size;
 1296|       |
 1297|  5.46k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (1297:12): [True: 5.29k, False: 169]
  ------------------
 1298|  5.29k|        uint8_t *buffer = pkbuf->data;
 1299|  5.29k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (1299:24): [True: 526, False: 4.77k]
  ------------------
 1300|       |
 1301|  5.29k|        size = sizeof(uint8_t);
 1302|  5.29k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1302:13): [True: 0, False: 5.29k]
  ------------------
 1303|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1304|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 1305|      0|        }
 1306|  5.29k|        decoded += size;
 1307|       |
 1308|  5.29k|        switch(type) {
 1309|    197|        case OGS_NAS_5GS_REGISTRATION_REJECT_T3346_VALUE_TYPE:
  ------------------
  |  |  494|    197|#define OGS_NAS_5GS_REGISTRATION_REJECT_T3346_VALUE_TYPE 0x5F
  ------------------
  |  Branch (1309:9): [True: 197, False: 5.10k]
  ------------------
 1310|    197|            size = ogs_nas_5gs_decode_gprs_timer_2(&registration_reject->t3346_value, pkbuf);
 1311|    197|            if (size < 0) {
  ------------------
  |  Branch (1311:17): [True: 2, False: 195]
  ------------------
 1312|      2|               ogs_error("ogs_nas_5gs_decode_gprs_timer_2() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1313|      2|               return size;
 1314|      2|            }
 1315|       |
 1316|    195|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_T3346_VALUE_PRESENT;
  ------------------
  |  |  479|    195|#define OGS_NAS_5GS_REGISTRATION_REJECT_T3346_VALUE_PRESENT ((uint64_t)1<<0)
  ------------------
 1317|    195|            decoded += size;
 1318|    195|            break;
 1319|    197|        case OGS_NAS_5GS_REGISTRATION_REJECT_T3502_VALUE_TYPE:
  ------------------
  |  |  495|    197|#define OGS_NAS_5GS_REGISTRATION_REJECT_T3502_VALUE_TYPE 0x16
  ------------------
  |  Branch (1319:9): [True: 197, False: 5.10k]
  ------------------
 1320|    197|            size = ogs_nas_5gs_decode_gprs_timer_2(&registration_reject->t3502_value, pkbuf);
 1321|    197|            if (size < 0) {
  ------------------
  |  Branch (1321:17): [True: 2, False: 195]
  ------------------
 1322|      2|               ogs_error("ogs_nas_5gs_decode_gprs_timer_2() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1323|      2|               return size;
 1324|      2|            }
 1325|       |
 1326|    195|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_T3502_VALUE_PRESENT;
  ------------------
  |  |  480|    195|#define OGS_NAS_5GS_REGISTRATION_REJECT_T3502_VALUE_PRESENT ((uint64_t)1<<1)
  ------------------
 1327|    195|            decoded += size;
 1328|    195|            break;
 1329|    196|        case OGS_NAS_5GS_REGISTRATION_REJECT_EAP_MESSAGE_TYPE:
  ------------------
  |  |  496|    196|#define OGS_NAS_5GS_REGISTRATION_REJECT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (1329:9): [True: 196, False: 5.10k]
  ------------------
 1330|    196|            size = ogs_nas_5gs_decode_eap_message(&registration_reject->eap_message, pkbuf);
 1331|    196|            if (size < 0) {
  ------------------
  |  Branch (1331:17): [True: 1, False: 195]
  ------------------
 1332|      1|               ogs_error("ogs_nas_5gs_decode_eap_message() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1333|      1|               return size;
 1334|      1|            }
 1335|       |
 1336|    195|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  481|    195|#define OGS_NAS_5GS_REGISTRATION_REJECT_EAP_MESSAGE_PRESENT ((uint64_t)1<<2)
  ------------------
 1337|    195|            decoded += size;
 1338|    195|            break;
 1339|    210|        case OGS_NAS_5GS_REGISTRATION_REJECT_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  497|    210|#define OGS_NAS_5GS_REGISTRATION_REJECT_REJECTED_NSSAI_TYPE 0x69
  ------------------
  |  Branch (1339:9): [True: 210, False: 5.08k]
  ------------------
 1340|    210|            size = ogs_nas_5gs_decode_rejected_nssai(&registration_reject->rejected_nssai, pkbuf);
 1341|    210|            if (size < 0) {
  ------------------
  |  Branch (1341:17): [True: 2, False: 208]
  ------------------
 1342|      2|               ogs_error("ogs_nas_5gs_decode_rejected_nssai() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1343|      2|               return size;
 1344|      2|            }
 1345|       |
 1346|    208|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  482|    208|#define OGS_NAS_5GS_REGISTRATION_REJECT_REJECTED_NSSAI_PRESENT ((uint64_t)1<<3)
  ------------------
 1347|    208|            decoded += size;
 1348|    208|            break;
 1349|    220|        case OGS_NAS_5GS_REGISTRATION_REJECT_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  498|    220|#define OGS_NAS_5GS_REGISTRATION_REJECT_CAG_INFORMATION_LIST_TYPE 0x75
  ------------------
  |  Branch (1349:9): [True: 220, False: 5.07k]
  ------------------
 1350|    220|            size = ogs_nas_5gs_decode_cag_information_list(&registration_reject->cag_information_list, pkbuf);
 1351|    220|            if (size < 0) {
  ------------------
  |  Branch (1351:17): [True: 7, False: 213]
  ------------------
 1352|      7|               ogs_error("ogs_nas_5gs_decode_cag_information_list() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1353|      7|               return size;
 1354|      7|            }
 1355|       |
 1356|    213|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  483|    213|#define OGS_NAS_5GS_REGISTRATION_REJECT_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<4)
  ------------------
 1357|    213|            decoded += size;
 1358|    213|            break;
 1359|    202|        case OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  499|    202|#define OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_REJECTED_NSSAI_TYPE 0x68
  ------------------
  |  Branch (1359:9): [True: 202, False: 5.09k]
  ------------------
 1360|    202|            size = ogs_nas_5gs_decode_extended_rejected_nssai(&registration_reject->extended_rejected_nssai, pkbuf);
 1361|    202|            if (size < 0) {
  ------------------
  |  Branch (1361:17): [True: 3, False: 199]
  ------------------
 1362|      3|               ogs_error("ogs_nas_5gs_decode_extended_rejected_nssai() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1363|      3|               return size;
 1364|      3|            }
 1365|       |
 1366|    199|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  484|    199|#define OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_REJECTED_NSSAI_PRESENT ((uint64_t)1<<5)
  ------------------
 1367|    199|            decoded += size;
 1368|    199|            break;
 1369|    197|        case OGS_NAS_5GS_REGISTRATION_REJECT_DISASTER_RETURN_WAIT_RANGE_TYPE:
  ------------------
  |  |  500|    197|#define OGS_NAS_5GS_REGISTRATION_REJECT_DISASTER_RETURN_WAIT_RANGE_TYPE 0x2C
  ------------------
  |  Branch (1369:9): [True: 197, False: 5.10k]
  ------------------
 1370|    197|            size = ogs_nas_5gs_decode_registration_wait_range(&registration_reject->disaster_return_wait_range, pkbuf);
 1371|    197|            if (size < 0) {
  ------------------
  |  Branch (1371:17): [True: 3, False: 194]
  ------------------
 1372|      3|               ogs_error("ogs_nas_5gs_decode_registration_wait_range() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1373|      3|               return size;
 1374|      3|            }
 1375|       |
 1376|    194|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_DISASTER_RETURN_WAIT_RANGE_PRESENT;
  ------------------
  |  |  485|    194|#define OGS_NAS_5GS_REGISTRATION_REJECT_DISASTER_RETURN_WAIT_RANGE_PRESENT ((uint64_t)1<<6)
  ------------------
 1377|    194|            decoded += size;
 1378|    194|            break;
 1379|    200|        case OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  501|    200|#define OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_CAG_INFORMATION_LIST_TYPE 0x71
  ------------------
  |  Branch (1379:9): [True: 200, False: 5.09k]
  ------------------
 1380|    200|            size = ogs_nas_5gs_decode_extended_cag_information_list(&registration_reject->extended_cag_information_list, pkbuf);
 1381|    200|            if (size < 0) {
  ------------------
  |  Branch (1381:17): [True: 6, False: 194]
  ------------------
 1382|      6|               ogs_error("ogs_nas_5gs_decode_extended_cag_information_list() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1383|      6|               return size;
 1384|      6|            }
 1385|       |
 1386|    194|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  486|    194|#define OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<7)
  ------------------
 1387|    194|            decoded += size;
 1388|    194|            break;
 1389|    195|        case OGS_NAS_5GS_REGISTRATION_REJECT_LOWER_BOUND_TIMER_VALUE_TYPE:
  ------------------
  |  |  502|    195|#define OGS_NAS_5GS_REGISTRATION_REJECT_LOWER_BOUND_TIMER_VALUE_TYPE 0x3A
  ------------------
  |  Branch (1389:9): [True: 195, False: 5.10k]
  ------------------
 1390|    195|            size = ogs_nas_5gs_decode_gprs_timer_3(&registration_reject->lower_bound_timer_value, pkbuf);
 1391|    195|            if (size < 0) {
  ------------------
  |  Branch (1391:17): [True: 1, False: 194]
  ------------------
 1392|      1|               ogs_error("ogs_nas_5gs_decode_gprs_timer_3() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1393|      1|               return size;
 1394|      1|            }
 1395|       |
 1396|    194|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_LOWER_BOUND_TIMER_VALUE_PRESENT;
  ------------------
  |  |  487|    194|#define OGS_NAS_5GS_REGISTRATION_REJECT_LOWER_BOUND_TIMER_VALUE_PRESENT ((uint64_t)1<<8)
  ------------------
 1397|    194|            decoded += size;
 1398|    194|            break;
 1399|    203|        case OGS_NAS_5GS_REGISTRATION_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE:
  ------------------
  |  |  503|    203|#define OGS_NAS_5GS_REGISTRATION_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE 0x1D
  ------------------
  |  Branch (1399:9): [True: 203, False: 5.09k]
  ------------------
 1400|    203|            size = ogs_nas_5gs_decode_5gs_tracking_area_identity_list(&registration_reject->forbidden_tai_for_the_list_of_forbidden_tracking_areas_for_roaming, pkbuf);
 1401|    203|            if (size < 0) {
  ------------------
  |  Branch (1401:17): [True: 1, False: 202]
  ------------------
 1402|      1|               ogs_error("ogs_nas_5gs_decode_5gs_tracking_area_identity_list() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1403|      1|               return size;
 1404|      1|            }
 1405|       |
 1406|    202|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT;
  ------------------
  |  |  488|    202|#define OGS_NAS_5GS_REGISTRATION_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT ((uint64_t)1<<9)
  ------------------
 1407|    202|            decoded += size;
 1408|    202|            break;
 1409|    225|        case OGS_NAS_5GS_REGISTRATION_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_TYPE:
  ------------------
  |  |  504|    225|#define OGS_NAS_5GS_REGISTRATION_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_TYPE 0x1E
  ------------------
  |  Branch (1409:9): [True: 225, False: 5.07k]
  ------------------
 1410|    225|            size = ogs_nas_5gs_decode_5gs_tracking_area_identity_list(&registration_reject->forbidden_tai_for_the_list_of_forbidden_tracking_areas_forregional_provision_of_service, pkbuf);
 1411|    225|            if (size < 0) {
  ------------------
  |  Branch (1411:17): [True: 1, False: 224]
  ------------------
 1412|      1|               ogs_error("ogs_nas_5gs_decode_5gs_tracking_area_identity_list() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1413|      1|               return size;
 1414|      1|            }
 1415|       |
 1416|    224|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_PRESENT;
  ------------------
  |  |  489|    224|#define OGS_NAS_5GS_REGISTRATION_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_PRESENT ((uint64_t)1<<10)
  ------------------
 1417|    224|            decoded += size;
 1418|    224|            break;
 1419|    215|        case OGS_NAS_5GS_REGISTRATION_REJECT_N3IWF_IDENTIFIER_TYPE:
  ------------------
  |  |  505|    215|#define OGS_NAS_5GS_REGISTRATION_REJECT_N3IWF_IDENTIFIER_TYPE 0x3E
  ------------------
  |  Branch (1419:9): [True: 215, False: 5.08k]
  ------------------
 1420|    215|            size = ogs_nas_5gs_decode_n3iwf_identifier(&registration_reject->n3iwf_identifier, pkbuf);
 1421|    215|            if (size < 0) {
  ------------------
  |  Branch (1421:17): [True: 7, False: 208]
  ------------------
 1422|      7|               ogs_error("ogs_nas_5gs_decode_n3iwf_identifier() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1423|      7|               return size;
 1424|      7|            }
 1425|       |
 1426|    208|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_N3IWF_IDENTIFIER_PRESENT;
  ------------------
  |  |  490|    208|#define OGS_NAS_5GS_REGISTRATION_REJECT_N3IWF_IDENTIFIER_PRESENT ((uint64_t)1<<11)
  ------------------
 1427|    208|            decoded += size;
 1428|    208|            break;
 1429|    339|        case OGS_NAS_5GS_REGISTRATION_REJECT_TNAN_INFORMATION_TYPE:
  ------------------
  |  |  506|    339|#define OGS_NAS_5GS_REGISTRATION_REJECT_TNAN_INFORMATION_TYPE 0x4D
  ------------------
  |  Branch (1429:9): [True: 339, False: 4.95k]
  ------------------
 1430|    339|            size = ogs_nas_5gs_decode_tnan_information(&registration_reject->tnan_information, pkbuf);
 1431|    339|            if (size < 0) {
  ------------------
  |  Branch (1431:17): [True: 6, False: 333]
  ------------------
 1432|      6|               ogs_error("ogs_nas_5gs_decode_tnan_information() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1433|      6|               return size;
 1434|      6|            }
 1435|       |
 1436|    333|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_TNAN_INFORMATION_PRESENT;
  ------------------
  |  |  491|    333|#define OGS_NAS_5GS_REGISTRATION_REJECT_TNAN_INFORMATION_PRESENT ((uint64_t)1<<12)
  ------------------
 1437|    333|            decoded += size;
 1438|    333|            break;
 1439|    210|        case OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_5GMM_CAUSE_TYPE:
  ------------------
  |  |  507|    210|#define OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_5GMM_CAUSE_TYPE 0x62
  ------------------
  |  Branch (1439:9): [True: 210, False: 5.08k]
  ------------------
 1440|    210|            size = ogs_nas_5gs_decode_extended_5gmm_cause(&registration_reject->extended_gmm_cause, pkbuf);
 1441|    210|            if (size < 0) {
  ------------------
  |  Branch (1441:17): [True: 8, False: 202]
  ------------------
 1442|      8|               ogs_error("ogs_nas_5gs_decode_extended_5gmm_cause() failed");
  ------------------
  |  |   36|      8|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      8|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      8|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      8|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      8|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      8|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1443|      8|               return size;
 1444|      8|            }
 1445|       |
 1446|    202|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_5GMM_CAUSE_PRESENT;
  ------------------
  |  |  492|    202|#define OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_5GMM_CAUSE_PRESENT ((uint64_t)1<<13)
  ------------------
 1447|    202|            decoded += size;
 1448|    202|            break;
 1449|    203|        case OGS_NAS_5GS_REGISTRATION_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE:
  ------------------
  |  |  508|    203|#define OGS_NAS_5GS_REGISTRATION_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE 0x63
  ------------------
  |  Branch (1449:9): [True: 203, False: 5.09k]
  ------------------
 1450|    203|            size = ogs_nas_5gs_decode_access_technology_utilization_control(&registration_reject->access_technology_utilization_control, pkbuf);
 1451|    203|            if (size < 0) {
  ------------------
  |  Branch (1451:17): [True: 2, False: 201]
  ------------------
 1452|      2|               ogs_error("ogs_nas_5gs_decode_access_technology_utilization_control() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1453|      2|               return size;
 1454|      2|            }
 1455|       |
 1456|    201|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT;
  ------------------
  |  |  493|    201|#define OGS_NAS_5GS_REGISTRATION_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT ((uint64_t)1<<14)
  ------------------
 1457|    201|            decoded += size;
 1458|    201|            break;
 1459|  2.08k|        default:
  ------------------
  |  Branch (1459:9): [True: 2.08k, False: 3.20k]
  ------------------
 1460|  2.08k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.08k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.08k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.08k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.08k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.08k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.08k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1461|  2.08k|            break;
 1462|  5.29k|        }
 1463|  5.29k|    }
 1464|       |
 1465|    169|    return decoded;
 1466|    221|}
ogs_nas_5gs_decode_deregistration_request_from_ue:
 1469|     61|{
 1470|     61|    ogs_nas_5gs_deregistration_request_from_ue_t *deregistration_request_from_ue = &message->gmm.deregistration_request_from_ue;
 1471|     61|    int decoded = 0;
 1472|     61|    int size = 0;
 1473|       |
 1474|     61|    ogs_trace("[NAS] Decode DEREGISTRATION_REQUEST_FROM_UE\n");
  ------------------
  |  |   40|     61|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     61|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     61|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     61|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     61|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     61|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1475|       |
 1476|     61|    size = ogs_nas_5gs_decode_de_registration_type(&deregistration_request_from_ue->de_registration_type, pkbuf);
 1477|     61|    if (size < 0) {
  ------------------
  |  Branch (1477:9): [True: 0, False: 61]
  ------------------
 1478|      0|        ogs_error("ogs_nas_5gs_decode_de_registration_type() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1479|      0|        return size;
 1480|      0|    }
 1481|       |
 1482|     61|    decoded += size;
 1483|       |
 1484|     61|    size = ogs_nas_5gs_decode_5gs_mobile_identity(&deregistration_request_from_ue->mobile_identity, pkbuf);
 1485|     61|    if (size < 0) {
  ------------------
  |  Branch (1485:9): [True: 1, False: 60]
  ------------------
 1486|      1|        ogs_error("ogs_nas_5gs_decode_5gs_mobile_identity() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1487|      1|        return size;
 1488|      1|    }
 1489|       |
 1490|     60|    decoded += size;
 1491|       |
 1492|  2.83k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (1492:12): [True: 2.77k, False: 56]
  ------------------
 1493|  2.77k|        uint8_t *buffer = pkbuf->data;
 1494|  2.77k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (1494:24): [True: 1.05k, False: 1.72k]
  ------------------
 1495|       |
 1496|  2.77k|        size = sizeof(uint8_t);
 1497|  2.77k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1497:13): [True: 0, False: 2.77k]
  ------------------
 1498|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1499|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 1500|      0|        }
 1501|  2.77k|        decoded += size;
 1502|       |
 1503|  2.77k|        switch(type) {
 1504|    201|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_UNAVAILABILITY_INFORMATION_TYPE:
  ------------------
  |  |  539|    201|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_UNAVAILABILITY_INFORMATION_TYPE 0x3C
  ------------------
  |  Branch (1504:9): [True: 201, False: 2.57k]
  ------------------
 1505|    201|            size = ogs_nas_5gs_decode_unavailability_information(&deregistration_request_from_ue->unavailability_information, pkbuf);
 1506|    201|            if (size < 0) {
  ------------------
  |  Branch (1506:17): [True: 2, False: 199]
  ------------------
 1507|      2|               ogs_error("ogs_nas_5gs_decode_unavailability_information() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1508|      2|               return size;
 1509|      2|            }
 1510|       |
 1511|    199|            deregistration_request_from_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_UNAVAILABILITY_INFORMATION_PRESENT;
  ------------------
  |  |  537|    199|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_UNAVAILABILITY_INFORMATION_PRESENT ((uint64_t)1<<0)
  ------------------
 1512|    199|            decoded += size;
 1513|    199|            break;
 1514|    199|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_NAS_MESSAGE_CONTAINER_TYPE:
  ------------------
  |  |  540|    199|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_NAS_MESSAGE_CONTAINER_TYPE 0x71
  ------------------
  |  Branch (1514:9): [True: 199, False: 2.57k]
  ------------------
 1515|    199|            size = ogs_nas_5gs_decode_message_container(&deregistration_request_from_ue->nas_message_container, pkbuf);
 1516|    199|            if (size < 0) {
  ------------------
  |  Branch (1516:17): [True: 2, False: 197]
  ------------------
 1517|      2|               ogs_error("ogs_nas_5gs_decode_message_container() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1518|      2|               return size;
 1519|      2|            }
 1520|       |
 1521|    197|            deregistration_request_from_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_NAS_MESSAGE_CONTAINER_PRESENT;
  ------------------
  |  |  538|    197|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_NAS_MESSAGE_CONTAINER_PRESENT ((uint64_t)1<<1)
  ------------------
 1522|    197|            decoded += size;
 1523|    197|            break;
 1524|  2.37k|        default:
  ------------------
  |  Branch (1524:9): [True: 2.37k, False: 400]
  ------------------
 1525|  2.37k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.37k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.37k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.37k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.37k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.37k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.37k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1526|  2.37k|            break;
 1527|  2.77k|        }
 1528|  2.77k|    }
 1529|       |
 1530|     56|    return decoded;
 1531|     60|}
ogs_nas_5gs_decode_deregistration_request_to_ue:
 1534|    171|{
 1535|    171|    ogs_nas_5gs_deregistration_request_to_ue_t *deregistration_request_to_ue = &message->gmm.deregistration_request_to_ue;
 1536|    171|    int decoded = 0;
 1537|    171|    int size = 0;
 1538|       |
 1539|    171|    ogs_trace("[NAS] Decode DEREGISTRATION_REQUEST_TO_UE\n");
  ------------------
  |  |   40|    171|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    171|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    171|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    171|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    171|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    171|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1540|       |
 1541|    171|    size = ogs_nas_5gs_decode_de_registration_type(&deregistration_request_to_ue->de_registration_type, pkbuf);
 1542|    171|    if (size < 0) {
  ------------------
  |  Branch (1542:9): [True: 0, False: 171]
  ------------------
 1543|      0|        ogs_error("ogs_nas_5gs_decode_de_registration_type() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1544|      0|        return size;
 1545|      0|    }
 1546|       |
 1547|    171|    decoded += size;
 1548|       |
 1549|  4.98k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (1549:12): [True: 4.84k, False: 141]
  ------------------
 1550|  4.84k|        uint8_t *buffer = pkbuf->data;
 1551|  4.84k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (1551:24): [True: 1.10k, False: 3.74k]
  ------------------
 1552|       |
 1553|  4.84k|        size = sizeof(uint8_t);
 1554|  4.84k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1554:13): [True: 0, False: 4.84k]
  ------------------
 1555|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1556|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 1557|      0|        }
 1558|  4.84k|        decoded += size;
 1559|       |
 1560|  4.84k|        switch(type) {
 1561|    219|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_5GMM_CAUSE_TYPE:
  ------------------
  |  |  568|    219|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_5GMM_CAUSE_TYPE 0x58
  ------------------
  |  Branch (1561:9): [True: 219, False: 4.62k]
  ------------------
 1562|    219|            size = ogs_nas_5gs_decode_5gmm_cause(&deregistration_request_to_ue->gmm_cause, pkbuf);
 1563|    219|            if (size < 0) {
  ------------------
  |  Branch (1563:17): [True: 4, False: 215]
  ------------------
 1564|      4|               ogs_error("ogs_nas_5gs_decode_5gmm_cause() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1565|      4|               return size;
 1566|      4|            }
 1567|       |
 1568|    215|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_5GMM_CAUSE_PRESENT;
  ------------------
  |  |  557|    215|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_5GMM_CAUSE_PRESENT ((uint64_t)1<<0)
  ------------------
 1569|    215|            decoded += size;
 1570|    215|            break;
 1571|    195|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_T3346_VALUE_TYPE:
  ------------------
  |  |  569|    195|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_T3346_VALUE_TYPE 0x5F
  ------------------
  |  Branch (1571:9): [True: 195, False: 4.65k]
  ------------------
 1572|    195|            size = ogs_nas_5gs_decode_gprs_timer_2(&deregistration_request_to_ue->t3346_value, pkbuf);
 1573|    195|            if (size < 0) {
  ------------------
  |  Branch (1573:17): [True: 1, False: 194]
  ------------------
 1574|      1|               ogs_error("ogs_nas_5gs_decode_gprs_timer_2() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1575|      1|               return size;
 1576|      1|            }
 1577|       |
 1578|    194|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_T3346_VALUE_PRESENT;
  ------------------
  |  |  558|    194|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_T3346_VALUE_PRESENT ((uint64_t)1<<1)
  ------------------
 1579|    194|            decoded += size;
 1580|    194|            break;
 1581|    204|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  570|    204|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_REJECTED_NSSAI_TYPE 0x6D
  ------------------
  |  Branch (1581:9): [True: 204, False: 4.64k]
  ------------------
 1582|    204|            size = ogs_nas_5gs_decode_rejected_nssai(&deregistration_request_to_ue->rejected_nssai, pkbuf);
 1583|    204|            if (size < 0) {
  ------------------
  |  Branch (1583:17): [True: 1, False: 203]
  ------------------
 1584|      1|               ogs_error("ogs_nas_5gs_decode_rejected_nssai() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1585|      1|               return size;
 1586|      1|            }
 1587|       |
 1588|    203|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  559|    203|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_REJECTED_NSSAI_PRESENT ((uint64_t)1<<2)
  ------------------
 1589|    203|            decoded += size;
 1590|    203|            break;
 1591|    208|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  571|    208|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_CAG_INFORMATION_LIST_TYPE 0x75
  ------------------
  |  Branch (1591:9): [True: 208, False: 4.63k]
  ------------------
 1592|    208|            size = ogs_nas_5gs_decode_cag_information_list(&deregistration_request_to_ue->cag_information_list, pkbuf);
 1593|    208|            if (size < 0) {
  ------------------
  |  Branch (1593:17): [True: 5, False: 203]
  ------------------
 1594|      5|               ogs_error("ogs_nas_5gs_decode_cag_information_list() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1595|      5|               return size;
 1596|      5|            }
 1597|       |
 1598|    203|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  560|    203|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<3)
  ------------------
 1599|    203|            decoded += size;
 1600|    203|            break;
 1601|    208|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  572|    208|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_REJECTED_NSSAI_TYPE 0x68
  ------------------
  |  Branch (1601:9): [True: 208, False: 4.63k]
  ------------------
 1602|    208|            size = ogs_nas_5gs_decode_extended_rejected_nssai(&deregistration_request_to_ue->extended_rejected_nssai, pkbuf);
 1603|    208|            if (size < 0) {
  ------------------
  |  Branch (1603:17): [True: 1, False: 207]
  ------------------
 1604|      1|               ogs_error("ogs_nas_5gs_decode_extended_rejected_nssai() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1605|      1|               return size;
 1606|      1|            }
 1607|       |
 1608|    207|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  561|    207|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_REJECTED_NSSAI_PRESENT ((uint64_t)1<<4)
  ------------------
 1609|    207|            decoded += size;
 1610|    207|            break;
 1611|    197|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_DISASTER_RETURN_WAIT_RANGE_TYPE:
  ------------------
  |  |  573|    197|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_DISASTER_RETURN_WAIT_RANGE_TYPE 0x2C
  ------------------
  |  Branch (1611:9): [True: 197, False: 4.65k]
  ------------------
 1612|    197|            size = ogs_nas_5gs_decode_registration_wait_range(&deregistration_request_to_ue->disaster_return_wait_range, pkbuf);
 1613|    197|            if (size < 0) {
  ------------------
  |  Branch (1613:17): [True: 2, False: 195]
  ------------------
 1614|      2|               ogs_error("ogs_nas_5gs_decode_registration_wait_range() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1615|      2|               return size;
 1616|      2|            }
 1617|       |
 1618|    195|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_DISASTER_RETURN_WAIT_RANGE_PRESENT;
  ------------------
  |  |  562|    195|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_DISASTER_RETURN_WAIT_RANGE_PRESENT ((uint64_t)1<<5)
  ------------------
 1619|    195|            decoded += size;
 1620|    195|            break;
 1621|    208|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  574|    208|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_CAG_INFORMATION_LIST_TYPE 0x71
  ------------------
  |  Branch (1621:9): [True: 208, False: 4.63k]
  ------------------
 1622|    208|            size = ogs_nas_5gs_decode_extended_cag_information_list(&deregistration_request_to_ue->extended_cag_information_list, pkbuf);
 1623|    208|            if (size < 0) {
  ------------------
  |  Branch (1623:17): [True: 11, False: 197]
  ------------------
 1624|     11|               ogs_error("ogs_nas_5gs_decode_extended_cag_information_list() failed");
  ------------------
  |  |   36|     11|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     11|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     11|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     11|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     11|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     11|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1625|     11|               return size;
 1626|     11|            }
 1627|       |
 1628|    197|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  563|    197|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<6)
  ------------------
 1629|    197|            decoded += size;
 1630|    197|            break;
 1631|    195|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_LOWER_BOUND_TIMER_VALUE_TYPE:
  ------------------
  |  |  575|    195|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_LOWER_BOUND_TIMER_VALUE_TYPE 0x3A
  ------------------
  |  Branch (1631:9): [True: 195, False: 4.65k]
  ------------------
 1632|    195|            size = ogs_nas_5gs_decode_gprs_timer_3(&deregistration_request_to_ue->lower_bound_timer_value, pkbuf);
 1633|    195|            if (size < 0) {
  ------------------
  |  Branch (1633:17): [True: 1, False: 194]
  ------------------
 1634|      1|               ogs_error("ogs_nas_5gs_decode_gprs_timer_3() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1635|      1|               return size;
 1636|      1|            }
 1637|       |
 1638|    194|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_LOWER_BOUND_TIMER_VALUE_PRESENT;
  ------------------
  |  |  564|    194|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_LOWER_BOUND_TIMER_VALUE_PRESENT ((uint64_t)1<<7)
  ------------------
 1639|    194|            decoded += size;
 1640|    194|            break;
 1641|    203|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE:
  ------------------
  |  |  576|    203|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE 0x1D
  ------------------
  |  Branch (1641:9): [True: 203, False: 4.64k]
  ------------------
 1642|    203|            size = ogs_nas_5gs_decode_5gs_tracking_area_identity_list(&deregistration_request_to_ue->forbidden_tai_for_the_list_of_forbidden_tracking_areas_for_roaming, pkbuf);
 1643|    203|            if (size < 0) {
  ------------------
  |  Branch (1643:17): [True: 1, False: 202]
  ------------------
 1644|      1|               ogs_error("ogs_nas_5gs_decode_5gs_tracking_area_identity_list() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1645|      1|               return size;
 1646|      1|            }
 1647|       |
 1648|    202|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT;
  ------------------
  |  |  565|    202|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT ((uint64_t)1<<8)
  ------------------
 1649|    202|            decoded += size;
 1650|    202|            break;
 1651|    204|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_TYPE:
  ------------------
  |  |  577|    204|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_TYPE 0x1E
  ------------------
  |  Branch (1651:9): [True: 204, False: 4.64k]
  ------------------
 1652|    204|            size = ogs_nas_5gs_decode_5gs_tracking_area_identity_list(&deregistration_request_to_ue->forbidden_tai_for_the_list_of_forbidden_tracking_areas_forregional_provision_of_service, pkbuf);
 1653|    204|            if (size < 0) {
  ------------------
  |  Branch (1653:17): [True: 1, False: 203]
  ------------------
 1654|      1|               ogs_error("ogs_nas_5gs_decode_5gs_tracking_area_identity_list() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1655|      1|               return size;
 1656|      1|            }
 1657|       |
 1658|    203|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_PRESENT;
  ------------------
  |  |  566|    203|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_PRESENT ((uint64_t)1<<9)
  ------------------
 1659|    203|            decoded += size;
 1660|    203|            break;
 1661|    204|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE:
  ------------------
  |  |  578|    204|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE 0x63
  ------------------
  |  Branch (1661:9): [True: 204, False: 4.64k]
  ------------------
 1662|    204|            size = ogs_nas_5gs_decode_access_technology_utilization_control(&deregistration_request_to_ue->access_technology_utilization_control, pkbuf);
 1663|    204|            if (size < 0) {
  ------------------
  |  Branch (1663:17): [True: 2, False: 202]
  ------------------
 1664|      2|               ogs_error("ogs_nas_5gs_decode_access_technology_utilization_control() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1665|      2|               return size;
 1666|      2|            }
 1667|       |
 1668|    202|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT;
  ------------------
  |  |  567|    202|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT ((uint64_t)1<<10)
  ------------------
 1669|    202|            decoded += size;
 1670|    202|            break;
 1671|  2.60k|        default:
  ------------------
  |  Branch (1671:9): [True: 2.60k, False: 2.24k]
  ------------------
 1672|  2.60k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.60k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.60k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.60k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.60k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.60k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.60k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1673|  2.60k|            break;
 1674|  4.84k|        }
 1675|  4.84k|    }
 1676|       |
 1677|    141|    return decoded;
 1678|    171|}
ogs_nas_5gs_decode_service_request:
 1681|    124|{
 1682|    124|    ogs_nas_5gs_service_request_t *service_request = &message->gmm.service_request;
 1683|    124|    int decoded = 0;
 1684|    124|    int size = 0;
 1685|       |
 1686|    124|    ogs_trace("[NAS] Decode SERVICE_REQUEST\n");
  ------------------
  |  |   40|    124|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    124|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    124|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    124|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    124|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    124|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1687|       |
 1688|    124|    size = ogs_nas_5gs_decode_key_set_identifier(&service_request->ngksi, pkbuf);
 1689|    124|    if (size < 0) {
  ------------------
  |  Branch (1689:9): [True: 0, False: 124]
  ------------------
 1690|      0|        ogs_error("ogs_nas_5gs_decode_key_set_identifier() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1691|      0|        return size;
 1692|      0|    }
 1693|       |
 1694|    124|    decoded += size;
 1695|       |
 1696|    124|    size = ogs_nas_5gs_decode_5gs_mobile_identity(&service_request->s_tmsi, pkbuf);
 1697|    124|    if (size < 0) {
  ------------------
  |  Branch (1697:9): [True: 3, False: 121]
  ------------------
 1698|      3|        ogs_error("ogs_nas_5gs_decode_5gs_mobile_identity() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1699|      3|        return size;
 1700|      3|    }
 1701|       |
 1702|    121|    decoded += size;
 1703|       |
 1704|  4.95k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (1704:12): [True: 4.85k, False: 101]
  ------------------
 1705|  4.85k|        uint8_t *buffer = pkbuf->data;
 1706|  4.85k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (1706:24): [True: 1.72k, False: 3.12k]
  ------------------
 1707|       |
 1708|  4.85k|        size = sizeof(uint8_t);
 1709|  4.85k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1709:13): [True: 0, False: 4.85k]
  ------------------
 1710|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1711|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 1712|      0|        }
 1713|  4.85k|        decoded += size;
 1714|       |
 1715|  4.85k|        switch(type) {
 1716|    206|        case OGS_NAS_5GS_SERVICE_REQUEST_UPLINK_DATA_STATUS_TYPE:
  ------------------
  |  |  609|    206|#define OGS_NAS_5GS_SERVICE_REQUEST_UPLINK_DATA_STATUS_TYPE 0x40
  ------------------
  |  Branch (1716:9): [True: 206, False: 4.64k]
  ------------------
 1717|    206|            size = ogs_nas_5gs_decode_uplink_data_status(&service_request->uplink_data_status, pkbuf);
 1718|    206|            if (size < 0) {
  ------------------
  |  Branch (1718:17): [True: 4, False: 202]
  ------------------
 1719|      4|               ogs_error("ogs_nas_5gs_decode_uplink_data_status() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1720|      4|               return size;
 1721|      4|            }
 1722|       |
 1723|    202|            service_request->presencemask |= OGS_NAS_5GS_SERVICE_REQUEST_UPLINK_DATA_STATUS_PRESENT;
  ------------------
  |  |  603|    202|#define OGS_NAS_5GS_SERVICE_REQUEST_UPLINK_DATA_STATUS_PRESENT ((uint64_t)1<<0)
  ------------------
 1724|    202|            decoded += size;
 1725|    202|            break;
 1726|    195|        case OGS_NAS_5GS_SERVICE_REQUEST_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  |  610|    195|#define OGS_NAS_5GS_SERVICE_REQUEST_PDU_SESSION_STATUS_TYPE 0x50
  ------------------
  |  Branch (1726:9): [True: 195, False: 4.65k]
  ------------------
 1727|    195|            size = ogs_nas_5gs_decode_pdu_session_status(&service_request->pdu_session_status, pkbuf);
 1728|    195|            if (size < 0) {
  ------------------
  |  Branch (1728:17): [True: 1, False: 194]
  ------------------
 1729|      1|               ogs_error("ogs_nas_5gs_decode_pdu_session_status() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1730|      1|               return size;
 1731|      1|            }
 1732|       |
 1733|    194|            service_request->presencemask |= OGS_NAS_5GS_SERVICE_REQUEST_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  |  604|    194|#define OGS_NAS_5GS_SERVICE_REQUEST_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<1)
  ------------------
 1734|    194|            decoded += size;
 1735|    194|            break;
 1736|    214|        case OGS_NAS_5GS_SERVICE_REQUEST_ALLOWED_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  |  611|    214|#define OGS_NAS_5GS_SERVICE_REQUEST_ALLOWED_PDU_SESSION_STATUS_TYPE 0x25
  ------------------
  |  Branch (1736:9): [True: 214, False: 4.63k]
  ------------------
 1737|    214|            size = ogs_nas_5gs_decode_allowed_pdu_session_status(&service_request->allowed_pdu_session_status, pkbuf);
 1738|    214|            if (size < 0) {
  ------------------
  |  Branch (1738:17): [True: 2, False: 212]
  ------------------
 1739|      2|               ogs_error("ogs_nas_5gs_decode_allowed_pdu_session_status() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1740|      2|               return size;
 1741|      2|            }
 1742|       |
 1743|    212|            service_request->presencemask |= OGS_NAS_5GS_SERVICE_REQUEST_ALLOWED_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  |  605|    212|#define OGS_NAS_5GS_SERVICE_REQUEST_ALLOWED_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<2)
  ------------------
 1744|    212|            decoded += size;
 1745|    212|            break;
 1746|    205|        case OGS_NAS_5GS_SERVICE_REQUEST_NAS_MESSAGE_CONTAINER_TYPE:
  ------------------
  |  |  612|    205|#define OGS_NAS_5GS_SERVICE_REQUEST_NAS_MESSAGE_CONTAINER_TYPE 0x71
  ------------------
  |  Branch (1746:9): [True: 205, False: 4.64k]
  ------------------
 1747|    205|            size = ogs_nas_5gs_decode_message_container(&service_request->nas_message_container, pkbuf);
 1748|    205|            if (size < 0) {
  ------------------
  |  Branch (1748:17): [True: 3, False: 202]
  ------------------
 1749|      3|               ogs_error("ogs_nas_5gs_decode_message_container() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1750|      3|               return size;
 1751|      3|            }
 1752|       |
 1753|    202|            service_request->presencemask |= OGS_NAS_5GS_SERVICE_REQUEST_NAS_MESSAGE_CONTAINER_PRESENT;
  ------------------
  |  |  606|    202|#define OGS_NAS_5GS_SERVICE_REQUEST_NAS_MESSAGE_CONTAINER_PRESENT ((uint64_t)1<<3)
  ------------------
 1754|    202|            decoded += size;
 1755|    202|            break;
 1756|    302|        case OGS_NAS_5GS_SERVICE_REQUEST_UE_REQUEST_TYPE_TYPE:
  ------------------
  |  |  613|    302|#define OGS_NAS_5GS_SERVICE_REQUEST_UE_REQUEST_TYPE_TYPE 0x29
  ------------------
  |  Branch (1756:9): [True: 302, False: 4.54k]
  ------------------
 1757|    302|            size = ogs_nas_5gs_decode_ue_request_type(&service_request->ue_request_type, pkbuf);
 1758|    302|            if (size < 0) {
  ------------------
  |  Branch (1758:17): [True: 7, False: 295]
  ------------------
 1759|      7|               ogs_error("ogs_nas_5gs_decode_ue_request_type() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1760|      7|               return size;
 1761|      7|            }
 1762|       |
 1763|    295|            service_request->presencemask |= OGS_NAS_5GS_SERVICE_REQUEST_UE_REQUEST_TYPE_PRESENT;
  ------------------
  |  |  607|    295|#define OGS_NAS_5GS_SERVICE_REQUEST_UE_REQUEST_TYPE_PRESENT ((uint64_t)1<<4)
  ------------------
 1764|    295|            decoded += size;
 1765|    295|            break;
 1766|    365|        case OGS_NAS_5GS_SERVICE_REQUEST_PAGING_RESTRICTION_TYPE:
  ------------------
  |  |  614|    365|#define OGS_NAS_5GS_SERVICE_REQUEST_PAGING_RESTRICTION_TYPE 0x28
  ------------------
  |  Branch (1766:9): [True: 365, False: 4.48k]
  ------------------
 1767|    365|            size = ogs_nas_5gs_decode_paging_restriction(&service_request->paging_restriction, pkbuf);
 1768|    365|            if (size < 0) {
  ------------------
  |  Branch (1768:17): [True: 3, False: 362]
  ------------------
 1769|      3|               ogs_error("ogs_nas_5gs_decode_paging_restriction() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1770|      3|               return size;
 1771|      3|            }
 1772|       |
 1773|    362|            service_request->presencemask |= OGS_NAS_5GS_SERVICE_REQUEST_PAGING_RESTRICTION_PRESENT;
  ------------------
  |  |  608|    362|#define OGS_NAS_5GS_SERVICE_REQUEST_PAGING_RESTRICTION_PRESENT ((uint64_t)1<<5)
  ------------------
 1774|    362|            decoded += size;
 1775|    362|            break;
 1776|  3.36k|        default:
  ------------------
  |  Branch (1776:9): [True: 3.36k, False: 1.48k]
  ------------------
 1777|  3.36k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  3.36k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  3.36k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  3.36k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  3.36k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  3.36k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  3.36k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1778|  3.36k|            break;
 1779|  4.85k|        }
 1780|  4.85k|    }
 1781|       |
 1782|    101|    return decoded;
 1783|    121|}
ogs_nas_5gs_decode_service_reject:
 1786|    164|{
 1787|    164|    ogs_nas_5gs_service_reject_t *service_reject = &message->gmm.service_reject;
 1788|    164|    int decoded = 0;
 1789|    164|    int size = 0;
 1790|       |
 1791|    164|    ogs_trace("[NAS] Decode SERVICE_REJECT\n");
  ------------------
  |  |   40|    164|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    164|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    164|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    164|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    164|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    164|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1792|       |
 1793|    164|    size = ogs_nas_5gs_decode_5gmm_cause(&service_reject->gmm_cause, pkbuf);
 1794|    164|    if (size < 0) {
  ------------------
  |  Branch (1794:9): [True: 0, False: 164]
  ------------------
 1795|      0|        ogs_error("ogs_nas_5gs_decode_5gmm_cause() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1796|      0|        return size;
 1797|      0|    }
 1798|       |
 1799|    164|    decoded += size;
 1800|       |
 1801|  3.57k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (1801:12): [True: 3.43k, False: 143]
  ------------------
 1802|  3.43k|        uint8_t *buffer = pkbuf->data;
 1803|  3.43k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (1803:24): [True: 593, False: 2.84k]
  ------------------
 1804|       |
 1805|  3.43k|        size = sizeof(uint8_t);
 1806|  3.43k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1806:13): [True: 0, False: 3.43k]
  ------------------
 1807|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1808|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 1809|      0|        }
 1810|  3.43k|        decoded += size;
 1811|       |
 1812|  3.43k|        switch(type) {
 1813|    213|        case OGS_NAS_5GS_SERVICE_REJECT_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  |  646|    213|#define OGS_NAS_5GS_SERVICE_REJECT_PDU_SESSION_STATUS_TYPE 0x50
  ------------------
  |  Branch (1813:9): [True: 213, False: 3.22k]
  ------------------
 1814|    213|            size = ogs_nas_5gs_decode_pdu_session_status(&service_reject->pdu_session_status, pkbuf);
 1815|    213|            if (size < 0) {
  ------------------
  |  Branch (1815:17): [True: 3, False: 210]
  ------------------
 1816|      3|               ogs_error("ogs_nas_5gs_decode_pdu_session_status() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1817|      3|               return size;
 1818|      3|            }
 1819|       |
 1820|    210|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  |  635|    210|#define OGS_NAS_5GS_SERVICE_REJECT_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<0)
  ------------------
 1821|    210|            decoded += size;
 1822|    210|            break;
 1823|    195|        case OGS_NAS_5GS_SERVICE_REJECT_T3346_VALUE_TYPE:
  ------------------
  |  |  647|    195|#define OGS_NAS_5GS_SERVICE_REJECT_T3346_VALUE_TYPE 0x5F
  ------------------
  |  Branch (1823:9): [True: 195, False: 3.24k]
  ------------------
 1824|    195|            size = ogs_nas_5gs_decode_gprs_timer_2(&service_reject->t3346_value, pkbuf);
 1825|    195|            if (size < 0) {
  ------------------
  |  Branch (1825:17): [True: 1, False: 194]
  ------------------
 1826|      1|               ogs_error("ogs_nas_5gs_decode_gprs_timer_2() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1827|      1|               return size;
 1828|      1|            }
 1829|       |
 1830|    194|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_T3346_VALUE_PRESENT;
  ------------------
  |  |  636|    194|#define OGS_NAS_5GS_SERVICE_REJECT_T3346_VALUE_PRESENT ((uint64_t)1<<1)
  ------------------
 1831|    194|            decoded += size;
 1832|    194|            break;
 1833|    212|        case OGS_NAS_5GS_SERVICE_REJECT_EAP_MESSAGE_TYPE:
  ------------------
  |  |  648|    212|#define OGS_NAS_5GS_SERVICE_REJECT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (1833:9): [True: 212, False: 3.22k]
  ------------------
 1834|    212|            size = ogs_nas_5gs_decode_eap_message(&service_reject->eap_message, pkbuf);
 1835|    212|            if (size < 0) {
  ------------------
  |  Branch (1835:17): [True: 1, False: 211]
  ------------------
 1836|      1|               ogs_error("ogs_nas_5gs_decode_eap_message() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1837|      1|               return size;
 1838|      1|            }
 1839|       |
 1840|    211|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  637|    211|#define OGS_NAS_5GS_SERVICE_REJECT_EAP_MESSAGE_PRESENT ((uint64_t)1<<2)
  ------------------
 1841|    211|            decoded += size;
 1842|    211|            break;
 1843|    195|        case OGS_NAS_5GS_SERVICE_REJECT_T3448_VALUE_TYPE:
  ------------------
  |  |  649|    195|#define OGS_NAS_5GS_SERVICE_REJECT_T3448_VALUE_TYPE 0x6B
  ------------------
  |  Branch (1843:9): [True: 195, False: 3.24k]
  ------------------
 1844|    195|            size = ogs_nas_5gs_decode_gprs_timer_2(&service_reject->t3448_value, pkbuf);
 1845|    195|            if (size < 0) {
  ------------------
  |  Branch (1845:17): [True: 1, False: 194]
  ------------------
 1846|      1|               ogs_error("ogs_nas_5gs_decode_gprs_timer_2() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1847|      1|               return size;
 1848|      1|            }
 1849|       |
 1850|    194|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_T3448_VALUE_PRESENT;
  ------------------
  |  |  638|    194|#define OGS_NAS_5GS_SERVICE_REJECT_T3448_VALUE_PRESENT ((uint64_t)1<<3)
  ------------------
 1851|    194|            decoded += size;
 1852|    194|            break;
 1853|    214|        case OGS_NAS_5GS_SERVICE_REJECT_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  650|    214|#define OGS_NAS_5GS_SERVICE_REJECT_CAG_INFORMATION_LIST_TYPE 0x75
  ------------------
  |  Branch (1853:9): [True: 214, False: 3.22k]
  ------------------
 1854|    214|            size = ogs_nas_5gs_decode_cag_information_list(&service_reject->cag_information_list, pkbuf);
 1855|    214|            if (size < 0) {
  ------------------
  |  Branch (1855:17): [True: 6, False: 208]
  ------------------
 1856|      6|               ogs_error("ogs_nas_5gs_decode_cag_information_list() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1857|      6|               return size;
 1858|      6|            }
 1859|       |
 1860|    208|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  639|    208|#define OGS_NAS_5GS_SERVICE_REJECT_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<4)
  ------------------
 1861|    208|            decoded += size;
 1862|    208|            break;
 1863|    195|        case OGS_NAS_5GS_SERVICE_REJECT_DISASTER_RETURN_WAIT_RANGE_TYPE:
  ------------------
  |  |  651|    195|#define OGS_NAS_5GS_SERVICE_REJECT_DISASTER_RETURN_WAIT_RANGE_TYPE 0x2C
  ------------------
  |  Branch (1863:9): [True: 195, False: 3.24k]
  ------------------
 1864|    195|            size = ogs_nas_5gs_decode_registration_wait_range(&service_reject->disaster_return_wait_range, pkbuf);
 1865|    195|            if (size < 0) {
  ------------------
  |  Branch (1865:17): [True: 1, False: 194]
  ------------------
 1866|      1|               ogs_error("ogs_nas_5gs_decode_registration_wait_range() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1867|      1|               return size;
 1868|      1|            }
 1869|       |
 1870|    194|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_DISASTER_RETURN_WAIT_RANGE_PRESENT;
  ------------------
  |  |  640|    194|#define OGS_NAS_5GS_SERVICE_REJECT_DISASTER_RETURN_WAIT_RANGE_PRESENT ((uint64_t)1<<5)
  ------------------
 1871|    194|            decoded += size;
 1872|    194|            break;
 1873|    198|        case OGS_NAS_5GS_SERVICE_REJECT_EXTENDED_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  652|    198|#define OGS_NAS_5GS_SERVICE_REJECT_EXTENDED_CAG_INFORMATION_LIST_TYPE 0x71
  ------------------
  |  Branch (1873:9): [True: 198, False: 3.23k]
  ------------------
 1874|    198|            size = ogs_nas_5gs_decode_extended_cag_information_list(&service_reject->extended_cag_information_list, pkbuf);
 1875|    198|            if (size < 0) {
  ------------------
  |  Branch (1875:17): [True: 4, False: 194]
  ------------------
 1876|      4|               ogs_error("ogs_nas_5gs_decode_extended_cag_information_list() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1877|      4|               return size;
 1878|      4|            }
 1879|       |
 1880|    194|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_EXTENDED_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  641|    194|#define OGS_NAS_5GS_SERVICE_REJECT_EXTENDED_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<6)
  ------------------
 1881|    194|            decoded += size;
 1882|    194|            break;
 1883|    195|        case OGS_NAS_5GS_SERVICE_REJECT_LOWER_BOUND_TIMER_VALUE_TYPE:
  ------------------
  |  |  653|    195|#define OGS_NAS_5GS_SERVICE_REJECT_LOWER_BOUND_TIMER_VALUE_TYPE 0x3A
  ------------------
  |  Branch (1883:9): [True: 195, False: 3.24k]
  ------------------
 1884|    195|            size = ogs_nas_5gs_decode_gprs_timer_3(&service_reject->lower_bound_timer_value, pkbuf);
 1885|    195|            if (size < 0) {
  ------------------
  |  Branch (1885:17): [True: 1, False: 194]
  ------------------
 1886|      1|               ogs_error("ogs_nas_5gs_decode_gprs_timer_3() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1887|      1|               return size;
 1888|      1|            }
 1889|       |
 1890|    194|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_LOWER_BOUND_TIMER_VALUE_PRESENT;
  ------------------
  |  |  642|    194|#define OGS_NAS_5GS_SERVICE_REJECT_LOWER_BOUND_TIMER_VALUE_PRESENT ((uint64_t)1<<7)
  ------------------
 1891|    194|            decoded += size;
 1892|    194|            break;
 1893|    201|        case OGS_NAS_5GS_SERVICE_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE:
  ------------------
  |  |  654|    201|#define OGS_NAS_5GS_SERVICE_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE 0x1D
  ------------------
  |  Branch (1893:9): [True: 201, False: 3.23k]
  ------------------
 1894|    201|            size = ogs_nas_5gs_decode_5gs_tracking_area_identity_list(&service_reject->forbidden_tai_for_the_list_of_forbidden_tracking_areas_for_roaming, pkbuf);
 1895|    201|            if (size < 0) {
  ------------------
  |  Branch (1895:17): [True: 1, False: 200]
  ------------------
 1896|      1|               ogs_error("ogs_nas_5gs_decode_5gs_tracking_area_identity_list() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1897|      1|               return size;
 1898|      1|            }
 1899|       |
 1900|    200|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT;
  ------------------
  |  |  643|    200|#define OGS_NAS_5GS_SERVICE_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT ((uint64_t)1<<8)
  ------------------
 1901|    200|            decoded += size;
 1902|    200|            break;
 1903|    199|        case OGS_NAS_5GS_SERVICE_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_TYPE:
  ------------------
  |  |  655|    199|#define OGS_NAS_5GS_SERVICE_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_TYPE 0x1E
  ------------------
  |  Branch (1903:9): [True: 199, False: 3.23k]
  ------------------
 1904|    199|            size = ogs_nas_5gs_decode_5gs_tracking_area_identity_list(&service_reject->forbidden_tai_for_the_list_of_forbidden_tracking_areas_forregional_provision_of_service, pkbuf);
 1905|    199|            if (size < 0) {
  ------------------
  |  Branch (1905:17): [True: 1, False: 198]
  ------------------
 1906|      1|               ogs_error("ogs_nas_5gs_decode_5gs_tracking_area_identity_list() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1907|      1|               return size;
 1908|      1|            }
 1909|       |
 1910|    198|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_PRESENT;
  ------------------
  |  |  644|    198|#define OGS_NAS_5GS_SERVICE_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_PRESENT ((uint64_t)1<<9)
  ------------------
 1911|    198|            decoded += size;
 1912|    198|            break;
 1913|    195|        case OGS_NAS_5GS_SERVICE_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE:
  ------------------
  |  |  656|    195|#define OGS_NAS_5GS_SERVICE_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE 0x63
  ------------------
  |  Branch (1913:9): [True: 195, False: 3.24k]
  ------------------
 1914|    195|            size = ogs_nas_5gs_decode_access_technology_utilization_control(&service_reject->access_technology_utilization_control, pkbuf);
 1915|    195|            if (size < 0) {
  ------------------
  |  Branch (1915:17): [True: 1, False: 194]
  ------------------
 1916|      1|               ogs_error("ogs_nas_5gs_decode_access_technology_utilization_control() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1917|      1|               return size;
 1918|      1|            }
 1919|       |
 1920|    194|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT;
  ------------------
  |  |  645|    194|#define OGS_NAS_5GS_SERVICE_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT ((uint64_t)1<<10)
  ------------------
 1921|    194|            decoded += size;
 1922|    194|            break;
 1923|  1.22k|        default:
  ------------------
  |  Branch (1923:9): [True: 1.22k, False: 2.21k]
  ------------------
 1924|  1.22k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.22k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.22k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.22k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.22k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.22k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.22k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1925|  1.22k|            break;
 1926|  3.43k|        }
 1927|  3.43k|    }
 1928|       |
 1929|    143|    return decoded;
 1930|    164|}
ogs_nas_5gs_decode_service_accept:
 1933|    184|{
 1934|    184|    ogs_nas_5gs_service_accept_t *service_accept = &message->gmm.service_accept;
 1935|    184|    int decoded = 0;
 1936|    184|    int size = 0;
 1937|       |
 1938|    184|    ogs_trace("[NAS] Decode SERVICE_ACCEPT\n");
  ------------------
  |  |   40|    184|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    184|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    184|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    184|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    184|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    184|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1939|       |
 1940|  7.18k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (1940:12): [True: 7.05k, False: 135]
  ------------------
 1941|  7.05k|        uint8_t *buffer = pkbuf->data;
 1942|  7.05k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (1942:24): [True: 1.70k, False: 5.34k]
  ------------------
 1943|       |
 1944|  7.05k|        size = sizeof(uint8_t);
 1945|  7.05k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1945:13): [True: 0, False: 7.05k]
  ------------------
 1946|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1947|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 1948|      0|        }
 1949|  7.05k|        decoded += size;
 1950|       |
 1951|  7.05k|        switch(type) {
 1952|    359|        case OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  |  689|    359|#define OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_STATUS_TYPE 0x50
  ------------------
  |  Branch (1952:9): [True: 359, False: 6.69k]
  ------------------
 1953|    359|            size = ogs_nas_5gs_decode_pdu_session_status(&service_accept->pdu_session_status, pkbuf);
 1954|    359|            if (size < 0) {
  ------------------
  |  Branch (1954:17): [True: 5, False: 354]
  ------------------
 1955|      5|               ogs_error("ogs_nas_5gs_decode_pdu_session_status() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1956|      5|               return size;
 1957|      5|            }
 1958|       |
 1959|    354|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  |  681|    354|#define OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<0)
  ------------------
 1960|    354|            decoded += size;
 1961|    354|            break;
 1962|    264|        case OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_TYPE:
  ------------------
  |  |  690|    264|#define OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_TYPE 0x26
  ------------------
  |  Branch (1962:9): [True: 264, False: 6.78k]
  ------------------
 1963|    264|            size = ogs_nas_5gs_decode_pdu_session_reactivation_result(&service_accept->pdu_session_reactivation_result, pkbuf);
 1964|    264|            if (size < 0) {
  ------------------
  |  Branch (1964:17): [True: 9, False: 255]
  ------------------
 1965|      9|               ogs_error("ogs_nas_5gs_decode_pdu_session_reactivation_result() failed");
  ------------------
  |  |   36|      9|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      9|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      9|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      9|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      9|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      9|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1966|      9|               return size;
 1967|      9|            }
 1968|       |
 1969|    255|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_PRESENT;
  ------------------
  |  |  682|    255|#define OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_PRESENT ((uint64_t)1<<1)
  ------------------
 1970|    255|            decoded += size;
 1971|    255|            break;
 1972|    245|        case OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_TYPE:
  ------------------
  |  |  691|    245|#define OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_TYPE 0x72
  ------------------
  |  Branch (1972:9): [True: 245, False: 6.80k]
  ------------------
 1973|    245|            size = ogs_nas_5gs_decode_pdu_session_reactivation_result_error_cause(&service_accept->pdu_session_reactivation_result_error_cause, pkbuf);
 1974|    245|            if (size < 0) {
  ------------------
  |  Branch (1974:17): [True: 18, False: 227]
  ------------------
 1975|     18|               ogs_error("ogs_nas_5gs_decode_pdu_session_reactivation_result_error_cause() failed");
  ------------------
  |  |   36|     18|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     18|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     18|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     18|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     18|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     18|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1976|     18|               return size;
 1977|     18|            }
 1978|       |
 1979|    227|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_PRESENT;
  ------------------
  |  |  683|    227|#define OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_PRESENT ((uint64_t)1<<2)
  ------------------
 1980|    227|            decoded += size;
 1981|    227|            break;
 1982|    201|        case OGS_NAS_5GS_SERVICE_ACCEPT_EAP_MESSAGE_TYPE:
  ------------------
  |  |  692|    201|#define OGS_NAS_5GS_SERVICE_ACCEPT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (1982:9): [True: 201, False: 6.85k]
  ------------------
 1983|    201|            size = ogs_nas_5gs_decode_eap_message(&service_accept->eap_message, pkbuf);
 1984|    201|            if (size < 0) {
  ------------------
  |  Branch (1984:17): [True: 3, False: 198]
  ------------------
 1985|      3|               ogs_error("ogs_nas_5gs_decode_eap_message() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1986|      3|               return size;
 1987|      3|            }
 1988|       |
 1989|    198|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  684|    198|#define OGS_NAS_5GS_SERVICE_ACCEPT_EAP_MESSAGE_PRESENT ((uint64_t)1<<3)
  ------------------
 1990|    198|            decoded += size;
 1991|    198|            break;
 1992|    220|        case OGS_NAS_5GS_SERVICE_ACCEPT_T3448_VALUE_TYPE:
  ------------------
  |  |  693|    220|#define OGS_NAS_5GS_SERVICE_ACCEPT_T3448_VALUE_TYPE 0x6B
  ------------------
  |  Branch (1992:9): [True: 220, False: 6.83k]
  ------------------
 1993|    220|            size = ogs_nas_5gs_decode_gprs_timer_2(&service_accept->t3448_value, pkbuf);
 1994|    220|            if (size < 0) {
  ------------------
  |  Branch (1994:17): [True: 4, False: 216]
  ------------------
 1995|      4|               ogs_error("ogs_nas_5gs_decode_gprs_timer_2() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1996|      4|               return size;
 1997|      4|            }
 1998|       |
 1999|    216|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_T3448_VALUE_PRESENT;
  ------------------
  |  |  685|    216|#define OGS_NAS_5GS_SERVICE_ACCEPT_T3448_VALUE_PRESENT ((uint64_t)1<<4)
  ------------------
 2000|    216|            decoded += size;
 2001|    216|            break;
 2002|    266|        case OGS_NAS_5GS_SERVICE_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_TYPE:
  ------------------
  |  |  694|    266|#define OGS_NAS_5GS_SERVICE_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_TYPE 0x34
  ------------------
  |  Branch (2002:9): [True: 266, False: 6.78k]
  ------------------
 2003|    266|            size = ogs_nas_5gs_decode_5gs_additional_request_result(&service_accept->additional_request_result, pkbuf);
 2004|    266|            if (size < 0) {
  ------------------
  |  Branch (2004:17): [True: 4, False: 262]
  ------------------
 2005|      4|               ogs_error("ogs_nas_5gs_decode_5gs_additional_request_result() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2006|      4|               return size;
 2007|      4|            }
 2008|       |
 2009|    262|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_PRESENT;
  ------------------
  |  |  686|    262|#define OGS_NAS_5GS_SERVICE_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_PRESENT ((uint64_t)1<<5)
  ------------------
 2010|    262|            decoded += size;
 2011|    262|            break;
 2012|    246|        case OGS_NAS_5GS_SERVICE_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE:
  ------------------
  |  |  695|    246|#define OGS_NAS_5GS_SERVICE_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE 0x1D
  ------------------
  |  Branch (2012:9): [True: 246, False: 6.80k]
  ------------------
 2013|    246|            size = ogs_nas_5gs_decode_5gs_tracking_area_identity_list(&service_accept->forbidden_tai_for_the_list_of_forbidden_tracking_areas_for_roaming, pkbuf);
 2014|    246|            if (size < 0) {
  ------------------
  |  Branch (2014:17): [True: 3, False: 243]
  ------------------
 2015|      3|               ogs_error("ogs_nas_5gs_decode_5gs_tracking_area_identity_list() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2016|      3|               return size;
 2017|      3|            }
 2018|       |
 2019|    243|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT;
  ------------------
  |  |  687|    243|#define OGS_NAS_5GS_SERVICE_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT ((uint64_t)1<<6)
  ------------------
 2020|    243|            decoded += size;
 2021|    243|            break;
 2022|    222|        case OGS_NAS_5GS_SERVICE_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_TYPE:
  ------------------
  |  |  696|    222|#define OGS_NAS_5GS_SERVICE_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_TYPE 0x1E
  ------------------
  |  Branch (2022:9): [True: 222, False: 6.83k]
  ------------------
 2023|    222|            size = ogs_nas_5gs_decode_5gs_tracking_area_identity_list(&service_accept->forbidden_tai_for_the_list_of_forbidden_tracking_areas_forregional_provision_of_service, pkbuf);
 2024|    222|            if (size < 0) {
  ------------------
  |  Branch (2024:17): [True: 3, False: 219]
  ------------------
 2025|      3|               ogs_error("ogs_nas_5gs_decode_5gs_tracking_area_identity_list() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2026|      3|               return size;
 2027|      3|            }
 2028|       |
 2029|    219|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_PRESENT;
  ------------------
  |  |  688|    219|#define OGS_NAS_5GS_SERVICE_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_PRESENT ((uint64_t)1<<7)
  ------------------
 2030|    219|            decoded += size;
 2031|    219|            break;
 2032|  5.02k|        default:
  ------------------
  |  Branch (2032:9): [True: 5.02k, False: 2.02k]
  ------------------
 2033|  5.02k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  5.02k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  5.02k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  5.02k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  5.02k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  5.02k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  5.02k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2034|  5.02k|            break;
 2035|  7.05k|        }
 2036|  7.05k|    }
 2037|       |
 2038|    135|    return decoded;
 2039|    184|}
ogs_nas_5gs_decode_configuration_update_command:
 2042|  1.00k|{
 2043|  1.00k|    ogs_nas_5gs_configuration_update_command_t *configuration_update_command = &message->gmm.configuration_update_command;
 2044|  1.00k|    int decoded = 0;
 2045|  1.00k|    int size = 0;
 2046|       |
 2047|  1.00k|    ogs_trace("[NAS] Decode CONFIGURATION_UPDATE_COMMAND\n");
  ------------------
  |  |   40|  1.00k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.00k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.00k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.00k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.00k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.00k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2048|       |
 2049|  43.6k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (2049:12): [True: 42.8k, False: 731]
  ------------------
 2050|  42.8k|        uint8_t *buffer = pkbuf->data;
 2051|  42.8k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (2051:24): [True: 14.8k, False: 28.0k]
  ------------------
 2052|       |
 2053|  42.8k|        size = sizeof(uint8_t);
 2054|  42.8k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2054:13): [True: 0, False: 42.8k]
  ------------------
 2055|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2056|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 2057|      0|        }
 2058|  42.8k|        decoded += size;
 2059|       |
 2060|  42.8k|        switch(type) {
 2061|  1.05k|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CONFIGURATION_UPDATE_INDICATION_TYPE:
  ------------------
  |  |  763|  1.05k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CONFIGURATION_UPDATE_INDICATION_TYPE 0xD0
  ------------------
  |  Branch (2061:9): [True: 1.05k, False: 41.8k]
  ------------------
 2062|  1.05k|            decoded--;
 2063|  1.05k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.05k|    do { \
  |  |  114|  1.05k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.05k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.05k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.05k|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|  1.05k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.05k]
  |  |  ------------------
  ------------------
 2064|  1.05k|            size = ogs_nas_5gs_decode_configuration_update_indication(&configuration_update_command->configuration_update_indication, pkbuf);
 2065|  1.05k|            if (size < 0) {
  ------------------
  |  Branch (2065:17): [True: 0, False: 1.05k]
  ------------------
 2066|      0|               ogs_error("ogs_nas_5gs_decode_configuration_update_indication() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2067|      0|               return size;
 2068|      0|            }
 2069|       |
 2070|  1.05k|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CONFIGURATION_UPDATE_INDICATION_PRESENT;
  ------------------
  |  |  716|  1.05k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CONFIGURATION_UPDATE_INDICATION_PRESENT ((uint64_t)1<<0)
  ------------------
 2071|  1.05k|            decoded += size;
 2072|  1.05k|            break;
 2073|    224|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5G_GUTI_TYPE:
  ------------------
  |  |  764|    224|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5G_GUTI_TYPE 0x77
  ------------------
  |  Branch (2073:9): [True: 224, False: 42.6k]
  ------------------
 2074|    224|            size = ogs_nas_5gs_decode_5gs_mobile_identity(&configuration_update_command->guti, pkbuf);
 2075|    224|            if (size < 0) {
  ------------------
  |  Branch (2075:17): [True: 2, False: 222]
  ------------------
 2076|      2|               ogs_error("ogs_nas_5gs_decode_5gs_mobile_identity() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2077|      2|               return size;
 2078|      2|            }
 2079|       |
 2080|    222|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5G_GUTI_PRESENT;
  ------------------
  |  |  717|    222|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5G_GUTI_PRESENT ((uint64_t)1<<1)
  ------------------
 2081|    222|            decoded += size;
 2082|    222|            break;
 2083|    378|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TAI_LIST_TYPE:
  ------------------
  |  |  765|    378|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TAI_LIST_TYPE 0x54
  ------------------
  |  Branch (2083:9): [True: 378, False: 42.5k]
  ------------------
 2084|    378|            size = ogs_nas_5gs_decode_5gs_tracking_area_identity_list(&configuration_update_command->tai_list, pkbuf);
 2085|    378|            if (size < 0) {
  ------------------
  |  Branch (2085:17): [True: 2, False: 376]
  ------------------
 2086|      2|               ogs_error("ogs_nas_5gs_decode_5gs_tracking_area_identity_list() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2087|      2|               return size;
 2088|      2|            }
 2089|       |
 2090|    376|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TAI_LIST_PRESENT;
  ------------------
  |  |  718|    376|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TAI_LIST_PRESENT ((uint64_t)1<<2)
  ------------------
 2091|    376|            decoded += size;
 2092|    376|            break;
 2093|    222|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALLOWED_NSSAI_TYPE:
  ------------------
  |  |  766|    222|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALLOWED_NSSAI_TYPE 0x15
  ------------------
  |  Branch (2093:9): [True: 222, False: 42.6k]
  ------------------
 2094|    222|            size = ogs_nas_5gs_decode_nssai(&configuration_update_command->allowed_nssai, pkbuf);
 2095|    222|            if (size < 0) {
  ------------------
  |  Branch (2095:17): [True: 2, False: 220]
  ------------------
 2096|      2|               ogs_error("ogs_nas_5gs_decode_nssai() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2097|      2|               return size;
 2098|      2|            }
 2099|       |
 2100|    220|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALLOWED_NSSAI_PRESENT;
  ------------------
  |  |  719|    220|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALLOWED_NSSAI_PRESENT ((uint64_t)1<<3)
  ------------------
 2101|    220|            decoded += size;
 2102|    220|            break;
 2103|    241|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_AREA_LIST_TYPE:
  ------------------
  |  |  767|    241|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_AREA_LIST_TYPE 0x27
  ------------------
  |  Branch (2103:9): [True: 241, False: 42.6k]
  ------------------
 2104|    241|            size = ogs_nas_5gs_decode_service_area_list(&configuration_update_command->service_area_list, pkbuf);
 2105|    241|            if (size < 0) {
  ------------------
  |  Branch (2105:17): [True: 2, False: 239]
  ------------------
 2106|      2|               ogs_error("ogs_nas_5gs_decode_service_area_list() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2107|      2|               return size;
 2108|      2|            }
 2109|       |
 2110|    239|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_AREA_LIST_PRESENT;
  ------------------
  |  |  720|    239|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_AREA_LIST_PRESENT ((uint64_t)1<<4)
  ------------------
 2111|    239|            decoded += size;
 2112|    239|            break;
 2113|    255|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FULL_NAME_FOR_NETWORK_TYPE:
  ------------------
  |  |  768|    255|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FULL_NAME_FOR_NETWORK_TYPE 0x43
  ------------------
  |  Branch (2113:9): [True: 255, False: 42.6k]
  ------------------
 2114|    255|            size = ogs_nas_5gs_decode_network_name(&configuration_update_command->full_name_for_network, pkbuf);
 2115|    255|            if (size < 0) {
  ------------------
  |  Branch (2115:17): [True: 3, False: 252]
  ------------------
 2116|      3|               ogs_error("ogs_nas_5gs_decode_network_name() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2117|      3|               return size;
 2118|      3|            }
 2119|       |
 2120|    252|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FULL_NAME_FOR_NETWORK_PRESENT;
  ------------------
  |  |  721|    252|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FULL_NAME_FOR_NETWORK_PRESENT ((uint64_t)1<<5)
  ------------------
 2121|    252|            decoded += size;
 2122|    252|            break;
 2123|    225|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SHORT_NAME_FOR_NETWORK_TYPE:
  ------------------
  |  |  769|    225|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SHORT_NAME_FOR_NETWORK_TYPE 0x45
  ------------------
  |  Branch (2123:9): [True: 225, False: 42.6k]
  ------------------
 2124|    225|            size = ogs_nas_5gs_decode_network_name(&configuration_update_command->short_name_for_network, pkbuf);
 2125|    225|            if (size < 0) {
  ------------------
  |  Branch (2125:17): [True: 3, False: 222]
  ------------------
 2126|      3|               ogs_error("ogs_nas_5gs_decode_network_name() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2127|      3|               return size;
 2128|      3|            }
 2129|       |
 2130|    222|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SHORT_NAME_FOR_NETWORK_PRESENT;
  ------------------
  |  |  722|    222|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SHORT_NAME_FOR_NETWORK_PRESENT ((uint64_t)1<<6)
  ------------------
 2131|    222|            decoded += size;
 2132|    222|            break;
 2133|    219|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LOCAL_TIME_ZONE_TYPE:
  ------------------
  |  |  770|    219|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LOCAL_TIME_ZONE_TYPE 0x46
  ------------------
  |  Branch (2133:9): [True: 219, False: 42.6k]
  ------------------
 2134|    219|            size = ogs_nas_5gs_decode_time_zone(&configuration_update_command->local_time_zone, pkbuf);
 2135|    219|            if (size < 0) {
  ------------------
  |  Branch (2135:17): [True: 5, False: 214]
  ------------------
 2136|      5|               ogs_error("ogs_nas_5gs_decode_time_zone() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2137|      5|               return size;
 2138|      5|            }
 2139|       |
 2140|    214|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LOCAL_TIME_ZONE_PRESENT;
  ------------------
  |  |  723|    214|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LOCAL_TIME_ZONE_PRESENT ((uint64_t)1<<7)
  ------------------
 2141|    214|            decoded += size;
 2142|    214|            break;
 2143|    185|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UNIVERSAL_TIME_AND_LOCAL_TIME_ZONE_TYPE:
  ------------------
  |  |  771|    185|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UNIVERSAL_TIME_AND_LOCAL_TIME_ZONE_TYPE 0x47
  ------------------
  |  Branch (2143:9): [True: 185, False: 42.7k]
  ------------------
 2144|    185|            size = ogs_nas_5gs_decode_time_zone_and_time(&configuration_update_command->universal_time_and_local_time_zone, pkbuf);
 2145|    185|            if (size < 0) {
  ------------------
  |  Branch (2145:17): [True: 10, False: 175]
  ------------------
 2146|     10|               ogs_error("ogs_nas_5gs_decode_time_zone_and_time() failed");
  ------------------
  |  |   36|     10|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     10|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     10|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     10|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     10|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     10|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2147|     10|               return size;
 2148|     10|            }
 2149|       |
 2150|    175|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UNIVERSAL_TIME_AND_LOCAL_TIME_ZONE_PRESENT;
  ------------------
  |  |  724|    175|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UNIVERSAL_TIME_AND_LOCAL_TIME_ZONE_PRESENT ((uint64_t)1<<8)
  ------------------
 2151|    175|            decoded += size;
 2152|    175|            break;
 2153|    248|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_DAYLIGHT_SAVING_TIME_TYPE:
  ------------------
  |  |  772|    248|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_DAYLIGHT_SAVING_TIME_TYPE 0x49
  ------------------
  |  Branch (2153:9): [True: 248, False: 42.6k]
  ------------------
 2154|    248|            size = ogs_nas_5gs_decode_daylight_saving_time(&configuration_update_command->network_daylight_saving_time, pkbuf);
 2155|    248|            if (size < 0) {
  ------------------
  |  Branch (2155:17): [True: 8, False: 240]
  ------------------
 2156|      8|               ogs_error("ogs_nas_5gs_decode_daylight_saving_time() failed");
  ------------------
  |  |   36|      8|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      8|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      8|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      8|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      8|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      8|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2157|      8|               return size;
 2158|      8|            }
 2159|       |
 2160|    240|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_DAYLIGHT_SAVING_TIME_PRESENT;
  ------------------
  |  |  725|    240|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_DAYLIGHT_SAVING_TIME_PRESENT ((uint64_t)1<<9)
  ------------------
 2161|    240|            decoded += size;
 2162|    240|            break;
 2163|    262|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LADN_INFORMATION_TYPE:
  ------------------
  |  |  773|    262|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LADN_INFORMATION_TYPE 0x79
  ------------------
  |  Branch (2163:9): [True: 262, False: 42.6k]
  ------------------
 2164|    262|            size = ogs_nas_5gs_decode_ladn_information(&configuration_update_command->ladn_information, pkbuf);
 2165|    262|            if (size < 0) {
  ------------------
  |  Branch (2165:17): [True: 19, False: 243]
  ------------------
 2166|     19|               ogs_error("ogs_nas_5gs_decode_ladn_information() failed");
  ------------------
  |  |   36|     19|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     19|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     19|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     19|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     19|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     19|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2167|     19|               return size;
 2168|     19|            }
 2169|       |
 2170|    243|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LADN_INFORMATION_PRESENT;
  ------------------
  |  |  726|    243|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LADN_INFORMATION_PRESENT ((uint64_t)1<<10)
  ------------------
 2171|    243|            decoded += size;
 2172|    243|            break;
 2173|  1.19k|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_MICO_INDICATION_TYPE:
  ------------------
  |  |  774|  1.19k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_MICO_INDICATION_TYPE 0xB0
  ------------------
  |  Branch (2173:9): [True: 1.19k, False: 41.7k]
  ------------------
 2174|  1.19k|            decoded--;
 2175|  1.19k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.19k|    do { \
  |  |  114|  1.19k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.19k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.19k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.19k|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|  1.19k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.19k]
  |  |  ------------------
  ------------------
 2176|  1.19k|            size = ogs_nas_5gs_decode_mico_indication(&configuration_update_command->mico_indication, pkbuf);
 2177|  1.19k|            if (size < 0) {
  ------------------
  |  Branch (2177:17): [True: 0, False: 1.19k]
  ------------------
 2178|      0|               ogs_error("ogs_nas_5gs_decode_mico_indication() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2179|      0|               return size;
 2180|      0|            }
 2181|       |
 2182|  1.19k|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_MICO_INDICATION_PRESENT;
  ------------------
  |  |  727|  1.19k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_MICO_INDICATION_PRESENT ((uint64_t)1<<11)
  ------------------
 2183|  1.19k|            decoded += size;
 2184|  1.19k|            break;
 2185|  1.77k|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_SLICING_INDICATION_TYPE:
  ------------------
  |  |  775|  1.77k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_SLICING_INDICATION_TYPE 0x90
  ------------------
  |  Branch (2185:9): [True: 1.77k, False: 41.1k]
  ------------------
 2186|  1.77k|            decoded--;
 2187|  1.77k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.77k|    do { \
  |  |  114|  1.77k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.77k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.77k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.77k|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|  1.77k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.77k]
  |  |  ------------------
  ------------------
 2188|  1.77k|            size = ogs_nas_5gs_decode_network_slicing_indication(&configuration_update_command->network_slicing_indication, pkbuf);
 2189|  1.77k|            if (size < 0) {
  ------------------
  |  Branch (2189:17): [True: 0, False: 1.77k]
  ------------------
 2190|      0|               ogs_error("ogs_nas_5gs_decode_network_slicing_indication() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2191|      0|               return size;
 2192|      0|            }
 2193|       |
 2194|  1.77k|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_SLICING_INDICATION_PRESENT;
  ------------------
  |  |  728|  1.77k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_SLICING_INDICATION_PRESENT ((uint64_t)1<<12)
  ------------------
 2195|  1.77k|            decoded += size;
 2196|  1.77k|            break;
 2197|    234|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CONFIGURED_NSSAI_TYPE:
  ------------------
  |  |  776|    234|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CONFIGURED_NSSAI_TYPE 0x31
  ------------------
  |  Branch (2197:9): [True: 234, False: 42.6k]
  ------------------
 2198|    234|            size = ogs_nas_5gs_decode_nssai(&configuration_update_command->configured_nssai, pkbuf);
 2199|    234|            if (size < 0) {
  ------------------
  |  Branch (2199:17): [True: 1, False: 233]
  ------------------
 2200|      1|               ogs_error("ogs_nas_5gs_decode_nssai() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2201|      1|               return size;
 2202|      1|            }
 2203|       |
 2204|    233|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CONFIGURED_NSSAI_PRESENT;
  ------------------
  |  |  729|    233|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CONFIGURED_NSSAI_PRESENT ((uint64_t)1<<13)
  ------------------
 2205|    233|            decoded += size;
 2206|    233|            break;
 2207|    399|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  777|    399|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_REJECTED_NSSAI_TYPE 0x11
  ------------------
  |  Branch (2207:9): [True: 399, False: 42.4k]
  ------------------
 2208|    399|            size = ogs_nas_5gs_decode_rejected_nssai(&configuration_update_command->rejected_nssai, pkbuf);
 2209|    399|            if (size < 0) {
  ------------------
  |  Branch (2209:17): [True: 2, False: 397]
  ------------------
 2210|      2|               ogs_error("ogs_nas_5gs_decode_rejected_nssai() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2211|      2|               return size;
 2212|      2|            }
 2213|       |
 2214|    397|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  730|    397|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_REJECTED_NSSAI_PRESENT ((uint64_t)1<<14)
  ------------------
 2215|    397|            decoded += size;
 2216|    397|            break;
 2217|    247|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_TYPE:
  ------------------
  |  |  778|    247|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_TYPE 0x76
  ------------------
  |  Branch (2217:9): [True: 247, False: 42.6k]
  ------------------
 2218|    247|            size = ogs_nas_5gs_decode_operator_defined_access_category_definitions(&configuration_update_command->operator_defined_access_category_definitions, pkbuf);
 2219|    247|            if (size < 0) {
  ------------------
  |  Branch (2219:17): [True: 19, False: 228]
  ------------------
 2220|     19|               ogs_error("ogs_nas_5gs_decode_operator_defined_access_category_definitions() failed");
  ------------------
  |  |   36|     19|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     19|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     19|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     19|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     19|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     19|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2221|     19|               return size;
 2222|     19|            }
 2223|       |
 2224|    228|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_PRESENT;
  ------------------
  |  |  731|    228|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_PRESENT ((uint64_t)1<<15)
  ------------------
 2225|    228|            decoded += size;
 2226|    228|            break;
 2227|  5.84k|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SMS_INDICATION_TYPE:
  ------------------
  |  |  779|  5.84k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SMS_INDICATION_TYPE 0xF0
  ------------------
  |  Branch (2227:9): [True: 5.84k, False: 37.0k]
  ------------------
 2228|  5.84k|            decoded--;
 2229|  5.84k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  5.84k|    do { \
  |  |  114|  5.84k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  5.84k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 5.84k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  5.84k|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|  5.84k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 5.84k]
  |  |  ------------------
  ------------------
 2230|  5.84k|            size = ogs_nas_5gs_decode_sms_indication(&configuration_update_command->sms_indication, pkbuf);
 2231|  5.84k|            if (size < 0) {
  ------------------
  |  Branch (2231:17): [True: 0, False: 5.84k]
  ------------------
 2232|      0|               ogs_error("ogs_nas_5gs_decode_sms_indication() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2233|      0|               return size;
 2234|      0|            }
 2235|       |
 2236|  5.84k|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SMS_INDICATION_PRESENT;
  ------------------
  |  |  732|  5.84k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SMS_INDICATION_PRESENT ((uint64_t)1<<16)
  ------------------
 2237|  5.84k|            decoded += size;
 2238|  5.84k|            break;
 2239|    207|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_T3447_VALUE_TYPE:
  ------------------
  |  |  780|    207|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_T3447_VALUE_TYPE 0x6C
  ------------------
  |  Branch (2239:9): [True: 207, False: 42.6k]
  ------------------
 2240|    207|            size = ogs_nas_5gs_decode_gprs_timer_3(&configuration_update_command->t3447_value, pkbuf);
 2241|    207|            if (size < 0) {
  ------------------
  |  Branch (2241:17): [True: 2, False: 205]
  ------------------
 2242|      2|               ogs_error("ogs_nas_5gs_decode_gprs_timer_3() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2243|      2|               return size;
 2244|      2|            }
 2245|       |
 2246|    205|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_T3447_VALUE_PRESENT;
  ------------------
  |  |  733|    205|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_T3447_VALUE_PRESENT ((uint64_t)1<<17)
  ------------------
 2247|    205|            decoded += size;
 2248|    205|            break;
 2249|    251|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  781|    251|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CAG_INFORMATION_LIST_TYPE 0x75
  ------------------
  |  Branch (2249:9): [True: 251, False: 42.6k]
  ------------------
 2250|    251|            size = ogs_nas_5gs_decode_cag_information_list(&configuration_update_command->cag_information_list, pkbuf);
 2251|    251|            if (size < 0) {
  ------------------
  |  Branch (2251:17): [True: 9, False: 242]
  ------------------
 2252|      9|               ogs_error("ogs_nas_5gs_decode_cag_information_list() failed");
  ------------------
  |  |   36|      9|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      9|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      9|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      9|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      9|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      9|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2253|      9|               return size;
 2254|      9|            }
 2255|       |
 2256|    242|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  734|    242|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<18)
  ------------------
 2257|    242|            decoded += size;
 2258|    242|            break;
 2259|    242|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_TYPE:
  ------------------
  |  |  782|    242|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_TYPE 0x67
  ------------------
  |  Branch (2259:9): [True: 242, False: 42.6k]
  ------------------
 2260|    242|            size = ogs_nas_5gs_decode_ue_radio_capability_id(&configuration_update_command->ue_radio_capability_id, pkbuf);
 2261|    242|            if (size < 0) {
  ------------------
  |  Branch (2261:17): [True: 3, False: 239]
  ------------------
 2262|      3|               ogs_error("ogs_nas_5gs_decode_ue_radio_capability_id() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2263|      3|               return size;
 2264|      3|            }
 2265|       |
 2266|    239|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_PRESENT;
  ------------------
  |  |  735|    239|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_PRESENT ((uint64_t)1<<19)
  ------------------
 2267|    239|            decoded += size;
 2268|    239|            break;
 2269|  1.25k|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_TYPE:
  ------------------
  |  |  783|  1.25k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_TYPE 0xA0
  ------------------
  |  Branch (2269:9): [True: 1.25k, False: 41.6k]
  ------------------
 2270|  1.25k|            decoded--;
 2271|  1.25k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.25k|    do { \
  |  |  114|  1.25k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.25k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.25k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.25k|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|  1.25k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.25k]
  |  |  ------------------
  ------------------
 2272|  1.25k|            size = ogs_nas_5gs_decode_ue_radio_capability_id_deletion_indication(&configuration_update_command->ue_radio_capability_id_deletion_indication, pkbuf);
 2273|  1.25k|            if (size < 0) {
  ------------------
  |  Branch (2273:17): [True: 0, False: 1.25k]
  ------------------
 2274|      0|               ogs_error("ogs_nas_5gs_decode_ue_radio_capability_id_deletion_indication() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2275|      0|               return size;
 2276|      0|            }
 2277|       |
 2278|  1.25k|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_PRESENT;
  ------------------
  |  |  736|  1.25k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_PRESENT ((uint64_t)1<<20)
  ------------------
 2279|  1.25k|            decoded += size;
 2280|  1.25k|            break;
 2281|    231|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5GS_REGISTRATION_RESULT_TYPE:
  ------------------
  |  |  784|    231|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5GS_REGISTRATION_RESULT_TYPE 0x44
  ------------------
  |  Branch (2281:9): [True: 231, False: 42.6k]
  ------------------
 2282|    231|            size = ogs_nas_5gs_decode_5gs_registration_result(&configuration_update_command->registration_result, pkbuf);
 2283|    231|            if (size < 0) {
  ------------------
  |  Branch (2283:17): [True: 1, False: 230]
  ------------------
 2284|      1|               ogs_error("ogs_nas_5gs_decode_5gs_registration_result() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2285|      1|               return size;
 2286|      1|            }
 2287|       |
 2288|    230|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5GS_REGISTRATION_RESULT_PRESENT;
  ------------------
  |  |  737|    230|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5GS_REGISTRATION_RESULT_PRESENT ((uint64_t)1<<21)
  ------------------
 2289|    230|            decoded += size;
 2290|    230|            break;
 2291|    737|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TRUNCATED_5G_S_TMSI_CONFIGURATION_TYPE:
  ------------------
  |  |  785|    737|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TRUNCATED_5G_S_TMSI_CONFIGURATION_TYPE 0x1B
  ------------------
  |  Branch (2291:9): [True: 737, False: 42.1k]
  ------------------
 2292|    737|            size = ogs_nas_5gs_decode_truncated_5g_s_tmsi_configuration(&configuration_update_command->truncated_s_tmsi_configuration, pkbuf);
 2293|    737|            if (size < 0) {
  ------------------
  |  Branch (2293:17): [True: 4, False: 733]
  ------------------
 2294|      4|               ogs_error("ogs_nas_5gs_decode_truncated_5g_s_tmsi_configuration() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2295|      4|               return size;
 2296|      4|            }
 2297|       |
 2298|    733|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TRUNCATED_5G_S_TMSI_CONFIGURATION_PRESENT;
  ------------------
  |  |  738|    733|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TRUNCATED_5G_S_TMSI_CONFIGURATION_PRESENT ((uint64_t)1<<22)
  ------------------
 2299|    733|            decoded += size;
 2300|    733|            break;
 2301|  1.32k|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ADDITIONAL_CONFIGURATION_INDICATION_TYPE:
  ------------------
  |  |  786|  1.32k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ADDITIONAL_CONFIGURATION_INDICATION_TYPE 0xC0
  ------------------
  |  Branch (2301:9): [True: 1.32k, False: 41.5k]
  ------------------
 2302|  1.32k|            decoded--;
 2303|  1.32k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.32k|    do { \
  |  |  114|  1.32k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.32k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.32k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.32k|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|  1.32k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.32k]
  |  |  ------------------
  ------------------
 2304|  1.32k|            size = ogs_nas_5gs_decode_additional_configuration_indication(&configuration_update_command->additional_configuration_indication, pkbuf);
 2305|  1.32k|            if (size < 0) {
  ------------------
  |  Branch (2305:17): [True: 0, False: 1.32k]
  ------------------
 2306|      0|               ogs_error("ogs_nas_5gs_decode_additional_configuration_indication() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2307|      0|               return size;
 2308|      0|            }
 2309|       |
 2310|  1.32k|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ADDITIONAL_CONFIGURATION_INDICATION_PRESENT;
  ------------------
  |  |  739|  1.32k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ADDITIONAL_CONFIGURATION_INDICATION_PRESENT ((uint64_t)1<<23)
  ------------------
 2311|  1.32k|            decoded += size;
 2312|  1.32k|            break;
 2313|    276|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  787|    276|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_REJECTED_NSSAI_TYPE 0x68
  ------------------
  |  Branch (2313:9): [True: 276, False: 42.6k]
  ------------------
 2314|    276|            size = ogs_nas_5gs_decode_extended_rejected_nssai(&configuration_update_command->extended_rejected_nssai, pkbuf);
 2315|    276|            if (size < 0) {
  ------------------
  |  Branch (2315:17): [True: 4, False: 272]
  ------------------
 2316|      4|               ogs_error("ogs_nas_5gs_decode_extended_rejected_nssai() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2317|      4|               return size;
 2318|      4|            }
 2319|       |
 2320|    272|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  740|    272|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_REJECTED_NSSAI_PRESENT ((uint64_t)1<<24)
  ------------------
 2321|    272|            decoded += size;
 2322|    272|            break;
 2323|    233|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  |  788|    233|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (2323:9): [True: 233, False: 42.6k]
  ------------------
 2324|    233|            size = ogs_nas_5gs_decode_service_level_aa_container(&configuration_update_command->service_level_aa_container, pkbuf);
 2325|    233|            if (size < 0) {
  ------------------
  |  Branch (2325:17): [True: 15, False: 218]
  ------------------
 2326|     15|               ogs_error("ogs_nas_5gs_decode_service_level_aa_container() failed");
  ------------------
  |  |   36|     15|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     15|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     15|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     15|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     15|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     15|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2327|     15|               return size;
 2328|     15|            }
 2329|       |
 2330|    218|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  |  741|    218|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<25)
  ------------------
 2331|    218|            decoded += size;
 2332|    218|            break;
 2333|    292|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSSRG_INFORMATION_TYPE:
  ------------------
  |  |  789|    292|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSSRG_INFORMATION_TYPE 0x70
  ------------------
  |  Branch (2333:9): [True: 292, False: 42.6k]
  ------------------
 2334|    292|            size = ogs_nas_5gs_decode_nssrg_information(&configuration_update_command->nssrg_information, pkbuf);
 2335|    292|            if (size < 0) {
  ------------------
  |  Branch (2335:17): [True: 9, False: 283]
  ------------------
 2336|      9|               ogs_error("ogs_nas_5gs_decode_nssrg_information() failed");
  ------------------
  |  |   36|      9|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      9|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      9|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      9|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      9|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      9|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2337|      9|               return size;
 2338|      9|            }
 2339|       |
 2340|    283|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSSRG_INFORMATION_PRESENT;
  ------------------
  |  |  742|    283|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSSRG_INFORMATION_PRESENT ((uint64_t)1<<26)
  ------------------
 2341|    283|            decoded += size;
 2342|    283|            break;
 2343|    218|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_ROAMING_WAIT_RANGE_TYPE:
  ------------------
  |  |  790|    218|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_ROAMING_WAIT_RANGE_TYPE 0x14
  ------------------
  |  Branch (2343:9): [True: 218, False: 42.6k]
  ------------------
 2344|    218|            size = ogs_nas_5gs_decode_registration_wait_range(&configuration_update_command->disaster_roaming_wait_range, pkbuf);
 2345|    218|            if (size < 0) {
  ------------------
  |  Branch (2345:17): [True: 2, False: 216]
  ------------------
 2346|      2|               ogs_error("ogs_nas_5gs_decode_registration_wait_range() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2347|      2|               return size;
 2348|      2|            }
 2349|       |
 2350|    216|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_ROAMING_WAIT_RANGE_PRESENT;
  ------------------
  |  |  743|    216|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_ROAMING_WAIT_RANGE_PRESENT ((uint64_t)1<<27)
  ------------------
 2351|    216|            decoded += size;
 2352|    216|            break;
 2353|    343|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_RETURN_WAIT_RANGE_TYPE:
  ------------------
  |  |  791|    343|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_RETURN_WAIT_RANGE_TYPE 0x2C
  ------------------
  |  Branch (2353:9): [True: 343, False: 42.5k]
  ------------------
 2354|    343|            size = ogs_nas_5gs_decode_registration_wait_range(&configuration_update_command->disaster_return_wait_range, pkbuf);
 2355|    343|            if (size < 0) {
  ------------------
  |  Branch (2355:17): [True: 4, False: 339]
  ------------------
 2356|      4|               ogs_error("ogs_nas_5gs_decode_registration_wait_range() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2357|      4|               return size;
 2358|      4|            }
 2359|       |
 2360|    339|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_RETURN_WAIT_RANGE_PRESENT;
  ------------------
  |  |  744|    339|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_RETURN_WAIT_RANGE_PRESENT ((uint64_t)1<<28)
  ------------------
 2361|    339|            decoded += size;
 2362|    339|            break;
 2363|    245|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION_TYPE:
  ------------------
  |  |  792|    245|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION_TYPE 0x13
  ------------------
  |  Branch (2363:9): [True: 245, False: 42.6k]
  ------------------
 2364|    245|            size = ogs_nas_5gs_decode_list_of_plmns_to_be_used_in_disaster_condition(&configuration_update_command->list_of_plmns_to_be_used_in_disaster_condition, pkbuf);
 2365|    245|            if (size < 0) {
  ------------------
  |  Branch (2365:17): [True: 2, False: 243]
  ------------------
 2366|      2|               ogs_error("ogs_nas_5gs_decode_list_of_plmns_to_be_used_in_disaster_condition() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2367|      2|               return size;
 2368|      2|            }
 2369|       |
 2370|    243|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION_PRESENT;
  ------------------
  |  |  745|    243|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION_PRESENT ((uint64_t)1<<29)
  ------------------
 2371|    243|            decoded += size;
 2372|    243|            break;
 2373|    246|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  793|    246|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_CAG_INFORMATION_LIST_TYPE 0x71
  ------------------
  |  Branch (2373:9): [True: 246, False: 42.6k]
  ------------------
 2374|    246|            size = ogs_nas_5gs_decode_extended_cag_information_list(&configuration_update_command->extended_cag_information_list, pkbuf);
 2375|    246|            if (size < 0) {
  ------------------
  |  Branch (2375:17): [True: 12, False: 234]
  ------------------
 2376|     12|               ogs_error("ogs_nas_5gs_decode_extended_cag_information_list() failed");
  ------------------
  |  |   36|     12|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     12|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     12|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     12|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     12|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     12|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2377|     12|               return size;
 2378|     12|            }
 2379|       |
 2380|    234|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  746|    234|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<30)
  ------------------
 2381|    234|            decoded += size;
 2382|    234|            break;
 2383|    234|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_PEIPS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  794|    234|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_PEIPS_ASSISTANCE_INFORMATION_TYPE 0x1F
  ------------------
  |  Branch (2383:9): [True: 234, False: 42.6k]
  ------------------
 2384|    234|            size = ogs_nas_5gs_decode_peips_assistance_information(&configuration_update_command->updated_peips_assistance_information, pkbuf);
 2385|    234|            if (size < 0) {
  ------------------
  |  Branch (2385:17): [True: 2, False: 232]
  ------------------
 2386|      2|               ogs_error("ogs_nas_5gs_decode_peips_assistance_information() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2387|      2|               return size;
 2388|      2|            }
 2389|       |
 2390|    232|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_PEIPS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  747|    232|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_PEIPS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<31)
  ------------------
 2391|    232|            decoded += size;
 2392|    232|            break;
 2393|    271|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSAG_INFORMATION_TYPE:
  ------------------
  |  |  795|    271|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSAG_INFORMATION_TYPE 0x73
  ------------------
  |  Branch (2393:9): [True: 271, False: 42.6k]
  ------------------
 2394|    271|            size = ogs_nas_5gs_decode_nsag_information(&configuration_update_command->nsag_information, pkbuf);
 2395|    271|            if (size < 0) {
  ------------------
  |  Branch (2395:17): [True: 17, False: 254]
  ------------------
 2396|     17|               ogs_error("ogs_nas_5gs_decode_nsag_information() failed");
  ------------------
  |  |   36|     17|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     17|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     17|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     17|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     17|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     17|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2397|     17|               return size;
 2398|     17|            }
 2399|       |
 2400|    254|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSAG_INFORMATION_PRESENT;
  ------------------
  |  |  748|    254|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSAG_INFORMATION_PRESENT ((uint64_t)1<<32)
  ------------------
 2401|    254|            decoded += size;
 2402|    254|            break;
 2403|  1.16k|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PRIORITY_INDICATOR_TYPE:
  ------------------
  |  |  796|  1.16k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PRIORITY_INDICATOR_TYPE 0xE0
  ------------------
  |  Branch (2403:9): [True: 1.16k, False: 41.7k]
  ------------------
 2404|  1.16k|            decoded--;
 2405|  1.16k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.16k|    do { \
  |  |  114|  1.16k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.16k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.16k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.16k|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|  1.16k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.16k]
  |  |  ------------------
  ------------------
 2406|  1.16k|            size = ogs_nas_5gs_decode_priority_indicator(&configuration_update_command->priority_indicator, pkbuf);
 2407|  1.16k|            if (size < 0) {
  ------------------
  |  Branch (2407:17): [True: 0, False: 1.16k]
  ------------------
 2408|      0|               ogs_error("ogs_nas_5gs_decode_priority_indicator() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2409|      0|               return size;
 2410|      0|            }
 2411|       |
 2412|  1.16k|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PRIORITY_INDICATOR_PRESENT;
  ------------------
  |  |  749|  1.16k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PRIORITY_INDICATOR_PRESENT ((uint64_t)1<<33)
  ------------------
 2413|  1.16k|            decoded += size;
 2414|  1.16k|            break;
 2415|    259|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_RAN_TIMING_SYNCHRONIZATION_TYPE:
  ------------------
  |  |  797|    259|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_RAN_TIMING_SYNCHRONIZATION_TYPE 0x4B
  ------------------
  |  Branch (2415:9): [True: 259, False: 42.6k]
  ------------------
 2416|    259|            size = ogs_nas_5gs_decode_ran_timing_synchronization(&configuration_update_command->ran_timing_synchronization, pkbuf);
 2417|    259|            if (size < 0) {
  ------------------
  |  Branch (2417:17): [True: 3, False: 256]
  ------------------
 2418|      3|               ogs_error("ogs_nas_5gs_decode_ran_timing_synchronization() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2419|      3|               return size;
 2420|      3|            }
 2421|       |
 2422|    256|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_RAN_TIMING_SYNCHRONIZATION_PRESENT;
  ------------------
  |  |  750|    256|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_RAN_TIMING_SYNCHRONIZATION_PRESENT ((uint64_t)1<<34)
  ------------------
 2423|    256|            decoded += size;
 2424|    256|            break;
 2425|    248|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_LADN_INFORMATION_TYPE:
  ------------------
  |  |  798|    248|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_LADN_INFORMATION_TYPE 0x78
  ------------------
  |  Branch (2425:9): [True: 248, False: 42.6k]
  ------------------
 2426|    248|            size = ogs_nas_5gs_decode_extended_ladn_information(&configuration_update_command->extended_ladn_information, pkbuf);
 2427|    248|            if (size < 0) {
  ------------------
  |  Branch (2427:17): [True: 20, False: 228]
  ------------------
 2428|     20|               ogs_error("ogs_nas_5gs_decode_extended_ladn_information() failed");
  ------------------
  |  |   36|     20|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     20|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     20|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     20|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     20|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     20|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2429|     20|               return size;
 2430|     20|            }
 2431|       |
 2432|    228|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_LADN_INFORMATION_PRESENT;
  ------------------
  |  |  751|    228|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_LADN_INFORMATION_PRESENT ((uint64_t)1<<35)
  ------------------
 2433|    228|            decoded += size;
 2434|    228|            break;
 2435|    256|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALTERNATIVE_NSSAI_TYPE:
  ------------------
  |  |  799|    256|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALTERNATIVE_NSSAI_TYPE 0x4C
  ------------------
  |  Branch (2435:9): [True: 256, False: 42.6k]
  ------------------
 2436|    256|            size = ogs_nas_5gs_decode_alternative_nssai(&configuration_update_command->alternative_nssai, pkbuf);
 2437|    256|            if (size < 0) {
  ------------------
  |  Branch (2437:17): [True: 4, False: 252]
  ------------------
 2438|      4|               ogs_error("ogs_nas_5gs_decode_alternative_nssai() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2439|      4|               return size;
 2440|      4|            }
 2441|       |
 2442|    252|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALTERNATIVE_NSSAI_PRESENT;
  ------------------
  |  |  752|    252|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALTERNATIVE_NSSAI_PRESENT ((uint64_t)1<<36)
  ------------------
 2443|    252|            decoded += size;
 2444|    252|            break;
 2445|    254|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_LOCATION_VALIDITY_INFORMATION_TYPE:
  ------------------
  |  |  800|    254|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_LOCATION_VALIDITY_INFORMATION_TYPE 0x7B
  ------------------
  |  Branch (2445:9): [True: 254, False: 42.6k]
  ------------------
 2446|    254|            size = ogs_nas_5gs_decode_s_nssai_location_validity_information(&configuration_update_command->s_nssai_location_validity_information, pkbuf);
 2447|    254|            if (size < 0) {
  ------------------
  |  Branch (2447:17): [True: 24, False: 230]
  ------------------
 2448|     24|               ogs_error("ogs_nas_5gs_decode_s_nssai_location_validity_information() failed");
  ------------------
  |  |   36|     24|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     24|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     24|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     24|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     24|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     24|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2449|     24|               return size;
 2450|     24|            }
 2451|       |
 2452|    230|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_LOCATION_VALIDITY_INFORMATION_PRESENT;
  ------------------
  |  |  753|    230|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_LOCATION_VALIDITY_INFORMATION_PRESENT ((uint64_t)1<<37)
  ------------------
 2453|    230|            decoded += size;
 2454|    230|            break;
 2455|    241|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_TIME_VALIDITY_INFORMATION_TYPE:
  ------------------
  |  |  801|    241|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_TIME_VALIDITY_INFORMATION_TYPE 0x5B
  ------------------
  |  Branch (2455:9): [True: 241, False: 42.6k]
  ------------------
 2456|    241|            size = ogs_nas_5gs_decode_s_nssai_time_validity_information(&configuration_update_command->s_nssai_time_validity_information, pkbuf);
 2457|    241|            if (size < 0) {
  ------------------
  |  Branch (2457:17): [True: 3, False: 238]
  ------------------
 2458|      3|               ogs_error("ogs_nas_5gs_decode_s_nssai_time_validity_information() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2459|      3|               return size;
 2460|      3|            }
 2461|       |
 2462|    238|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_TIME_VALIDITY_INFORMATION_PRESENT;
  ------------------
  |  |  754|    238|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_TIME_VALIDITY_INFORMATION_PRESENT ((uint64_t)1<<38)
  ------------------
 2463|    238|            decoded += size;
 2464|    238|            break;
 2465|    241|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_TYPE:
  ------------------
  |  |  802|    241|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_TYPE 0x4F
  ------------------
  |  Branch (2465:9): [True: 241, False: 42.6k]
  ------------------
 2466|    241|            size = ogs_nas_5gs_decode_gprs_timer_3(&configuration_update_command->discontinuous_coverage_maximum_time_offset, pkbuf);
 2467|    241|            if (size < 0) {
  ------------------
  |  Branch (2467:17): [True: 4, False: 237]
  ------------------
 2468|      4|               ogs_error("ogs_nas_5gs_decode_gprs_timer_3() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2469|      4|               return size;
 2470|      4|            }
 2471|       |
 2472|    237|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_PRESENT;
  ------------------
  |  |  755|    237|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_PRESENT ((uint64_t)1<<39)
  ------------------
 2473|    237|            decoded += size;
 2474|    237|            break;
 2475|    239|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_ALLOWED_NSSAI_TYPE:
  ------------------
  |  |  803|    239|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_ALLOWED_NSSAI_TYPE 0x74
  ------------------
  |  Branch (2475:9): [True: 239, False: 42.6k]
  ------------------
 2476|    239|            size = ogs_nas_5gs_decode_partial_nssai(&configuration_update_command->partially_allowed_nssai, pkbuf);
 2477|    239|            if (size < 0) {
  ------------------
  |  Branch (2477:17): [True: 12, False: 227]
  ------------------
 2478|     12|               ogs_error("ogs_nas_5gs_decode_partial_nssai() failed");
  ------------------
  |  |   36|     12|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     12|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     12|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     12|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     12|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     12|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2479|     12|               return size;
 2480|     12|            }
 2481|       |
 2482|    227|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_ALLOWED_NSSAI_PRESENT;
  ------------------
  |  |  756|    227|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_ALLOWED_NSSAI_PRESENT ((uint64_t)1<<40)
  ------------------
 2483|    227|            decoded += size;
 2484|    227|            break;
 2485|    273|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  804|    273|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_REJECTED_NSSAI_TYPE 0x7A
  ------------------
  |  Branch (2485:9): [True: 273, False: 42.6k]
  ------------------
 2486|    273|            size = ogs_nas_5gs_decode_partial_nssai(&configuration_update_command->partially_rejected_nssai, pkbuf);
 2487|    273|            if (size < 0) {
  ------------------
  |  Branch (2487:17): [True: 10, False: 263]
  ------------------
 2488|     10|               ogs_error("ogs_nas_5gs_decode_partial_nssai() failed");
  ------------------
  |  |   36|     10|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     10|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     10|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     10|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     10|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     10|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2489|     10|               return size;
 2490|     10|            }
 2491|       |
 2492|    263|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  757|    263|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_REJECTED_NSSAI_PRESENT ((uint64_t)1<<41)
  ------------------
 2493|    263|            decoded += size;
 2494|    263|            break;
 2495|    249|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FEATURE_AUTHORIZATION_INDICATION_TYPE:
  ------------------
  |  |  805|    249|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FEATURE_AUTHORIZATION_INDICATION_TYPE 0x5C
  ------------------
  |  Branch (2495:9): [True: 249, False: 42.6k]
  ------------------
 2496|    249|            size = ogs_nas_5gs_decode_feature_authorization_indication(&configuration_update_command->feature_authorization_indication, pkbuf);
 2497|    249|            if (size < 0) {
  ------------------
  |  Branch (2497:17): [True: 8, False: 241]
  ------------------
 2498|      8|               ogs_error("ogs_nas_5gs_decode_feature_authorization_indication() failed");
  ------------------
  |  |   36|      8|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      8|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      8|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      8|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      8|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      8|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2499|      8|               return size;
 2500|      8|            }
 2501|       |
 2502|    241|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FEATURE_AUTHORIZATION_INDICATION_PRESENT;
  ------------------
  |  |  758|    241|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FEATURE_AUTHORIZATION_INDICATION_PRESENT ((uint64_t)1<<42)
  ------------------
 2503|    241|            decoded += size;
 2504|    241|            break;
 2505|    395|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ON_DEMAND_NSSAI_TYPE:
  ------------------
  |  |  806|    395|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ON_DEMAND_NSSAI_TYPE 0x61
  ------------------
  |  Branch (2505:9): [True: 395, False: 42.5k]
  ------------------
 2506|    395|            size = ogs_nas_5gs_decode_on_demand_nssai(&configuration_update_command->on_demand_nssai, pkbuf);
 2507|    395|            if (size < 0) {
  ------------------
  |  Branch (2507:17): [True: 7, False: 388]
  ------------------
 2508|      7|               ogs_error("ogs_nas_5gs_decode_on_demand_nssai() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2509|      7|               return size;
 2510|      7|            }
 2511|       |
 2512|    388|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ON_DEMAND_NSSAI_PRESENT;
  ------------------
  |  |  759|    388|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ON_DEMAND_NSSAI_PRESENT ((uint64_t)1<<43)
  ------------------
 2513|    388|            decoded += size;
 2514|    388|            break;
 2515|    282|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE:
  ------------------
  |  |  807|    282|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE 0x63
  ------------------
  |  Branch (2515:9): [True: 282, False: 42.6k]
  ------------------
 2516|    282|            size = ogs_nas_5gs_decode_access_technology_utilization_control(&configuration_update_command->access_technology_utilization_control, pkbuf);
 2517|    282|            if (size < 0) {
  ------------------
  |  Branch (2517:17): [True: 6, False: 276]
  ------------------
 2518|      6|               ogs_error("ogs_nas_5gs_decode_access_technology_utilization_control() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2519|      6|               return size;
 2520|      6|            }
 2521|       |
 2522|    276|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT;
  ------------------
  |  |  760|    276|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT ((uint64_t)1<<44)
  ------------------
 2523|    276|            decoded += size;
 2524|    276|            break;
 2525|    323|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_LP_WUSPS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  808|    323|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_LP_WUSPS_ASSISTANCE_INFORMATION_TYPE 0x64
  ------------------
  |  Branch (2525:9): [True: 323, False: 42.5k]
  ------------------
 2526|    323|            size = ogs_nas_5gs_decode_lp_wusps_assistance_information(&configuration_update_command->updated_lp_wusps_assistance_information, pkbuf);
 2527|    323|            if (size < 0) {
  ------------------
  |  Branch (2527:17): [True: 6, False: 317]
  ------------------
 2528|      6|               ogs_error("ogs_nas_5gs_decode_lp_wusps_assistance_information() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2529|      6|               return size;
 2530|      6|            }
 2531|       |
 2532|    317|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_LP_WUSPS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  761|    317|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_LP_WUSPS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<45)
  ------------------
 2533|    317|            decoded += size;
 2534|    317|            break;
 2535|  1.19k|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LP_WUS_STATUS_TYPE:
  ------------------
  |  |  809|  1.19k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LP_WUS_STATUS_TYPE 0x80
  ------------------
  |  Branch (2535:9): [True: 1.19k, False: 41.6k]
  ------------------
 2536|  1.19k|            decoded--;
 2537|  1.19k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.19k|    do { \
  |  |  114|  1.19k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.19k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.19k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.19k|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|  1.19k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.19k]
  |  |  ------------------
  ------------------
 2538|  1.19k|            size = ogs_nas_5gs_decode_lp_wus_status(&configuration_update_command->lp_wus_status, pkbuf);
 2539|  1.19k|            if (size < 0) {
  ------------------
  |  Branch (2539:17): [True: 0, False: 1.19k]
  ------------------
 2540|      0|               ogs_error("ogs_nas_5gs_decode_lp_wus_status() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2541|      0|               return size;
 2542|      0|            }
 2543|       |
 2544|  1.19k|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LP_WUS_STATUS_PRESENT;
  ------------------
  |  |  762|  1.19k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LP_WUS_STATUS_PRESENT ((uint64_t)1<<46)
  ------------------
 2545|  1.19k|            decoded += size;
 2546|  1.19k|            break;
 2547|  17.4k|        default:
  ------------------
  |  Branch (2547:9): [True: 17.4k, False: 25.4k]
  ------------------
 2548|  17.4k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  17.4k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  17.4k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  17.4k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  17.4k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  17.4k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  17.4k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2549|  17.4k|            break;
 2550|  42.8k|        }
 2551|  42.8k|    }
 2552|       |
 2553|    731|    return decoded;
 2554|  1.00k|}
ogs_nas_5gs_decode_authentication_request:
 2557|    107|{
 2558|    107|    ogs_nas_5gs_authentication_request_t *authentication_request = &message->gmm.authentication_request;
 2559|    107|    int decoded = 0;
 2560|    107|    int size = 0;
 2561|       |
 2562|    107|    ogs_trace("[NAS] Decode AUTHENTICATION_REQUEST\n");
  ------------------
  |  |   40|    107|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    107|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    107|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    107|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    107|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    107|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2563|       |
 2564|    107|    size = ogs_nas_5gs_decode_key_set_identifier(&authentication_request->ngksi, pkbuf);
 2565|    107|    if (size < 0) {
  ------------------
  |  Branch (2565:9): [True: 0, False: 107]
  ------------------
 2566|      0|        ogs_error("ogs_nas_5gs_decode_key_set_identifier() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2567|      0|        return size;
 2568|      0|    }
 2569|       |
 2570|    107|    decoded += size;
 2571|       |
 2572|    107|    size = ogs_nas_5gs_decode_abba(&authentication_request->abba, pkbuf);
 2573|    107|    if (size < 0) {
  ------------------
  |  Branch (2573:9): [True: 8, False: 99]
  ------------------
 2574|      8|        ogs_error("ogs_nas_5gs_decode_abba() failed");
  ------------------
  |  |   36|      8|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      8|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      8|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      8|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      8|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      8|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2575|      8|        return size;
 2576|      8|    }
 2577|       |
 2578|     99|    decoded += size;
 2579|       |
 2580|  5.70k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (2580:12): [True: 5.61k, False: 83]
  ------------------
 2581|  5.61k|        uint8_t *buffer = pkbuf->data;
 2582|  5.61k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (2582:24): [True: 2.09k, False: 3.52k]
  ------------------
 2583|       |
 2584|  5.61k|        size = sizeof(uint8_t);
 2585|  5.61k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2585:13): [True: 0, False: 5.61k]
  ------------------
 2586|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2587|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 2588|      0|        }
 2589|  5.61k|        decoded += size;
 2590|       |
 2591|  5.61k|        switch(type) {
 2592|    190|        case OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_RAND_TYPE:
  ------------------
  |  |  871|    190|#define OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_RAND_TYPE 0x21
  ------------------
  |  Branch (2592:9): [True: 190, False: 5.42k]
  ------------------
 2593|    190|            size = ogs_nas_5gs_decode_authentication_parameter_rand(&authentication_request->authentication_parameter_rand, pkbuf);
 2594|    190|            if (size < 0) {
  ------------------
  |  Branch (2594:17): [True: 12, False: 178]
  ------------------
 2595|     12|               ogs_error("ogs_nas_5gs_decode_authentication_parameter_rand() failed");
  ------------------
  |  |   36|     12|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     12|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     12|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     12|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     12|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     12|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2596|     12|               return size;
 2597|     12|            }
 2598|       |
 2599|    178|            authentication_request->presencemask |= OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_RAND_PRESENT;
  ------------------
  |  |  868|    178|#define OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_RAND_PRESENT ((uint64_t)1<<0)
  ------------------
 2600|    178|            decoded += size;
 2601|    178|            break;
 2602|    215|        case OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_AUTN_TYPE:
  ------------------
  |  |  872|    215|#define OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_AUTN_TYPE 0x20
  ------------------
  |  Branch (2602:9): [True: 215, False: 5.40k]
  ------------------
 2603|    215|            size = ogs_nas_5gs_decode_authentication_parameter_autn(&authentication_request->authentication_parameter_autn, pkbuf);
 2604|    215|            if (size < 0) {
  ------------------
  |  Branch (2604:17): [True: 3, False: 212]
  ------------------
 2605|      3|               ogs_error("ogs_nas_5gs_decode_authentication_parameter_autn() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2606|      3|               return size;
 2607|      3|            }
 2608|       |
 2609|    212|            authentication_request->presencemask |= OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_AUTN_PRESENT;
  ------------------
  |  |  869|    212|#define OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_AUTN_PRESENT ((uint64_t)1<<1)
  ------------------
 2610|    212|            decoded += size;
 2611|    212|            break;
 2612|    200|        case OGS_NAS_5GS_AUTHENTICATION_REQUEST_EAP_MESSAGE_TYPE:
  ------------------
  |  |  873|    200|#define OGS_NAS_5GS_AUTHENTICATION_REQUEST_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (2612:9): [True: 200, False: 5.41k]
  ------------------
 2613|    200|            size = ogs_nas_5gs_decode_eap_message(&authentication_request->eap_message, pkbuf);
 2614|    200|            if (size < 0) {
  ------------------
  |  Branch (2614:17): [True: 1, False: 199]
  ------------------
 2615|      1|               ogs_error("ogs_nas_5gs_decode_eap_message() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2616|      1|               return size;
 2617|      1|            }
 2618|       |
 2619|    199|            authentication_request->presencemask |= OGS_NAS_5GS_AUTHENTICATION_REQUEST_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  870|    199|#define OGS_NAS_5GS_AUTHENTICATION_REQUEST_EAP_MESSAGE_PRESENT ((uint64_t)1<<2)
  ------------------
 2620|    199|            decoded += size;
 2621|    199|            break;
 2622|  5.01k|        default:
  ------------------
  |  Branch (2622:9): [True: 5.01k, False: 605]
  ------------------
 2623|  5.01k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  5.01k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  5.01k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  5.01k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  5.01k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  5.01k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  5.01k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2624|  5.01k|            break;
 2625|  5.61k|        }
 2626|  5.61k|    }
 2627|       |
 2628|     83|    return decoded;
 2629|     99|}
ogs_nas_5gs_decode_authentication_response:
 2632|     72|{
 2633|     72|    ogs_nas_5gs_authentication_response_t *authentication_response = &message->gmm.authentication_response;
 2634|     72|    int decoded = 0;
 2635|     72|    int size = 0;
 2636|       |
 2637|     72|    ogs_trace("[NAS] Decode AUTHENTICATION_RESPONSE\n");
  ------------------
  |  |   40|     72|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     72|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     72|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     72|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     72|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     72|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2638|       |
 2639|  2.58k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (2639:12): [True: 2.52k, False: 67]
  ------------------
 2640|  2.52k|        uint8_t *buffer = pkbuf->data;
 2641|  2.52k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (2641:24): [True: 720, False: 1.80k]
  ------------------
 2642|       |
 2643|  2.52k|        size = sizeof(uint8_t);
 2644|  2.52k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2644:13): [True: 0, False: 2.52k]
  ------------------
 2645|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2646|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 2647|      0|        }
 2648|  2.52k|        decoded += size;
 2649|       |
 2650|  2.52k|        switch(type) {
 2651|    258|        case OGS_NAS_5GS_AUTHENTICATION_RESPONSE_AUTHENTICATION_RESPONSE_PARAMETER_TYPE:
  ------------------
  |  |  893|    258|#define OGS_NAS_5GS_AUTHENTICATION_RESPONSE_AUTHENTICATION_RESPONSE_PARAMETER_TYPE 0x2D
  ------------------
  |  Branch (2651:9): [True: 258, False: 2.26k]
  ------------------
 2652|    258|            size = ogs_nas_5gs_decode_authentication_response_parameter(&authentication_response->authentication_response_parameter, pkbuf);
 2653|    258|            if (size < 0) {
  ------------------
  |  Branch (2653:17): [True: 4, False: 254]
  ------------------
 2654|      4|               ogs_error("ogs_nas_5gs_decode_authentication_response_parameter() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2655|      4|               return size;
 2656|      4|            }
 2657|       |
 2658|    254|            authentication_response->presencemask |= OGS_NAS_5GS_AUTHENTICATION_RESPONSE_AUTHENTICATION_RESPONSE_PARAMETER_PRESENT;
  ------------------
  |  |  891|    254|#define OGS_NAS_5GS_AUTHENTICATION_RESPONSE_AUTHENTICATION_RESPONSE_PARAMETER_PRESENT ((uint64_t)1<<0)
  ------------------
 2659|    254|            decoded += size;
 2660|    254|            break;
 2661|    331|        case OGS_NAS_5GS_AUTHENTICATION_RESPONSE_EAP_MESSAGE_TYPE:
  ------------------
  |  |  894|    331|#define OGS_NAS_5GS_AUTHENTICATION_RESPONSE_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (2661:9): [True: 331, False: 2.19k]
  ------------------
 2662|    331|            size = ogs_nas_5gs_decode_eap_message(&authentication_response->eap_message, pkbuf);
 2663|    331|            if (size < 0) {
  ------------------
  |  Branch (2663:17): [True: 1, False: 330]
  ------------------
 2664|      1|               ogs_error("ogs_nas_5gs_decode_eap_message() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2665|      1|               return size;
 2666|      1|            }
 2667|       |
 2668|    330|            authentication_response->presencemask |= OGS_NAS_5GS_AUTHENTICATION_RESPONSE_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  892|    330|#define OGS_NAS_5GS_AUTHENTICATION_RESPONSE_EAP_MESSAGE_PRESENT ((uint64_t)1<<1)
  ------------------
 2669|    330|            decoded += size;
 2670|    330|            break;
 2671|  1.93k|        default:
  ------------------
  |  Branch (2671:9): [True: 1.93k, False: 589]
  ------------------
 2672|  1.93k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.93k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.93k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.93k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.93k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.93k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.93k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2673|  1.93k|            break;
 2674|  2.52k|        }
 2675|  2.52k|    }
 2676|       |
 2677|     67|    return decoded;
 2678|     72|}
ogs_nas_5gs_decode_authentication_reject:
 2681|     60|{
 2682|     60|    ogs_nas_5gs_authentication_reject_t *authentication_reject = &message->gmm.authentication_reject;
 2683|     60|    int decoded = 0;
 2684|     60|    int size = 0;
 2685|       |
 2686|     60|    ogs_trace("[NAS] Decode AUTHENTICATION_REJECT\n");
  ------------------
  |  |   40|     60|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     60|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     60|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     60|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     60|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     60|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2687|       |
 2688|  1.82k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (2688:12): [True: 1.76k, False: 57]
  ------------------
 2689|  1.76k|        uint8_t *buffer = pkbuf->data;
 2690|  1.76k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (2690:24): [True: 728, False: 1.04k]
  ------------------
 2691|       |
 2692|  1.76k|        size = sizeof(uint8_t);
 2693|  1.76k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2693:13): [True: 0, False: 1.76k]
  ------------------
 2694|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2695|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 2696|      0|        }
 2697|  1.76k|        decoded += size;
 2698|       |
 2699|  1.76k|        switch(type) {
 2700|    210|        case OGS_NAS_5GS_AUTHENTICATION_REJECT_EAP_MESSAGE_TYPE:
  ------------------
  |  |  909|    210|#define OGS_NAS_5GS_AUTHENTICATION_REJECT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (2700:9): [True: 210, False: 1.55k]
  ------------------
 2701|    210|            size = ogs_nas_5gs_decode_eap_message(&authentication_reject->eap_message, pkbuf);
 2702|    210|            if (size < 0) {
  ------------------
  |  Branch (2702:17): [True: 3, False: 207]
  ------------------
 2703|      3|               ogs_error("ogs_nas_5gs_decode_eap_message() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2704|      3|               return size;
 2705|      3|            }
 2706|       |
 2707|    207|            authentication_reject->presencemask |= OGS_NAS_5GS_AUTHENTICATION_REJECT_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  908|    207|#define OGS_NAS_5GS_AUTHENTICATION_REJECT_EAP_MESSAGE_PRESENT ((uint64_t)1<<0)
  ------------------
 2708|    207|            decoded += size;
 2709|    207|            break;
 2710|  1.55k|        default:
  ------------------
  |  Branch (2710:9): [True: 1.55k, False: 210]
  ------------------
 2711|  1.55k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.55k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.55k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.55k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.55k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.55k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.55k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2712|  1.55k|            break;
 2713|  1.76k|        }
 2714|  1.76k|    }
 2715|       |
 2716|     57|    return decoded;
 2717|     60|}
ogs_nas_5gs_decode_authentication_failure:
 2720|     61|{
 2721|     61|    ogs_nas_5gs_authentication_failure_t *authentication_failure = &message->gmm.authentication_failure;
 2722|     61|    int decoded = 0;
 2723|     61|    int size = 0;
 2724|       |
 2725|     61|    ogs_trace("[NAS] Decode AUTHENTICATION_FAILURE\n");
  ------------------
  |  |   40|     61|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     61|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     61|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     61|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     61|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     61|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2726|       |
 2727|     61|    size = ogs_nas_5gs_decode_5gmm_cause(&authentication_failure->gmm_cause, pkbuf);
 2728|     61|    if (size < 0) {
  ------------------
  |  Branch (2728:9): [True: 0, False: 61]
  ------------------
 2729|      0|        ogs_error("ogs_nas_5gs_decode_5gmm_cause() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2730|      0|        return size;
 2731|      0|    }
 2732|       |
 2733|     61|    decoded += size;
 2734|       |
 2735|  2.68k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (2735:12): [True: 2.62k, False: 55]
  ------------------
 2736|  2.62k|        uint8_t *buffer = pkbuf->data;
 2737|  2.62k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (2737:24): [True: 926, False: 1.69k]
  ------------------
 2738|       |
 2739|  2.62k|        size = sizeof(uint8_t);
 2740|  2.62k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2740:13): [True: 0, False: 2.62k]
  ------------------
 2741|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2742|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 2743|      0|        }
 2744|  2.62k|        decoded += size;
 2745|       |
 2746|  2.62k|        switch(type) {
 2747|    218|        case OGS_NAS_5GS_AUTHENTICATION_FAILURE_AUTHENTICATION_FAILURE_PARAMETER_TYPE:
  ------------------
  |  |  923|    218|#define OGS_NAS_5GS_AUTHENTICATION_FAILURE_AUTHENTICATION_FAILURE_PARAMETER_TYPE 0x30
  ------------------
  |  Branch (2747:9): [True: 218, False: 2.40k]
  ------------------
 2748|    218|            size = ogs_nas_5gs_decode_authentication_failure_parameter(&authentication_failure->authentication_failure_parameter, pkbuf);
 2749|    218|            if (size < 0) {
  ------------------
  |  Branch (2749:17): [True: 6, False: 212]
  ------------------
 2750|      6|               ogs_error("ogs_nas_5gs_decode_authentication_failure_parameter() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2751|      6|               return size;
 2752|      6|            }
 2753|       |
 2754|    212|            authentication_failure->presencemask |= OGS_NAS_5GS_AUTHENTICATION_FAILURE_AUTHENTICATION_FAILURE_PARAMETER_PRESENT;
  ------------------
  |  |  922|    212|#define OGS_NAS_5GS_AUTHENTICATION_FAILURE_AUTHENTICATION_FAILURE_PARAMETER_PRESENT ((uint64_t)1<<0)
  ------------------
 2755|    212|            decoded += size;
 2756|    212|            break;
 2757|  2.40k|        default:
  ------------------
  |  Branch (2757:9): [True: 2.40k, False: 218]
  ------------------
 2758|  2.40k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.40k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.40k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.40k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.40k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.40k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.40k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2759|  2.40k|            break;
 2760|  2.62k|        }
 2761|  2.62k|    }
 2762|       |
 2763|     55|    return decoded;
 2764|     61|}
ogs_nas_5gs_decode_authentication_result:
 2767|     68|{
 2768|     68|    ogs_nas_5gs_authentication_result_t *authentication_result = &message->gmm.authentication_result;
 2769|     68|    int decoded = 0;
 2770|     68|    int size = 0;
 2771|       |
 2772|     68|    ogs_trace("[NAS] Decode AUTHENTICATION_RESULT\n");
  ------------------
  |  |   40|     68|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     68|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     68|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     68|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     68|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     68|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2773|       |
 2774|     68|    size = ogs_nas_5gs_decode_key_set_identifier(&authentication_result->ngksi, pkbuf);
 2775|     68|    if (size < 0) {
  ------------------
  |  Branch (2775:9): [True: 0, False: 68]
  ------------------
 2776|      0|        ogs_error("ogs_nas_5gs_decode_key_set_identifier() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2777|      0|        return size;
 2778|      0|    }
 2779|       |
 2780|     68|    decoded += size;
 2781|       |
 2782|     68|    size = ogs_nas_5gs_decode_eap_message(&authentication_result->eap_message, pkbuf);
 2783|     68|    if (size < 0) {
  ------------------
  |  Branch (2783:9): [True: 11, False: 57]
  ------------------
 2784|     11|        ogs_error("ogs_nas_5gs_decode_eap_message() failed");
  ------------------
  |  |   36|     11|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     11|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     11|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     11|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     11|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     11|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2785|     11|        return size;
 2786|     11|    }
 2787|       |
 2788|     57|    decoded += size;
 2789|       |
 2790|  2.65k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (2790:12): [True: 2.60k, False: 52]
  ------------------
 2791|  2.60k|        uint8_t *buffer = pkbuf->data;
 2792|  2.60k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (2792:24): [True: 925, False: 1.68k]
  ------------------
 2793|       |
 2794|  2.60k|        size = sizeof(uint8_t);
 2795|  2.60k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2795:13): [True: 0, False: 2.60k]
  ------------------
 2796|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2797|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 2798|      0|        }
 2799|  2.60k|        decoded += size;
 2800|       |
 2801|  2.60k|        switch(type) {
 2802|    206|        case OGS_NAS_5GS_AUTHENTICATION_RESULT_ABBA_TYPE:
  ------------------
  |  |  940|    206|#define OGS_NAS_5GS_AUTHENTICATION_RESULT_ABBA_TYPE 0x38
  ------------------
  |  Branch (2802:9): [True: 206, False: 2.40k]
  ------------------
 2803|    206|            size = ogs_nas_5gs_decode_abba(&authentication_result->abba, pkbuf);
 2804|    206|            if (size < 0) {
  ------------------
  |  Branch (2804:17): [True: 1, False: 205]
  ------------------
 2805|      1|               ogs_error("ogs_nas_5gs_decode_abba() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2806|      1|               return size;
 2807|      1|            }
 2808|       |
 2809|    205|            authentication_result->presencemask |= OGS_NAS_5GS_AUTHENTICATION_RESULT_ABBA_PRESENT;
  ------------------
  |  |  938|    205|#define OGS_NAS_5GS_AUTHENTICATION_RESULT_ABBA_PRESENT ((uint64_t)1<<0)
  ------------------
 2810|    205|            decoded += size;
 2811|    205|            break;
 2812|    207|        case OGS_NAS_5GS_AUTHENTICATION_RESULT_AUN3_DEVICE_SECURITY_KEY_TYPE:
  ------------------
  |  |  941|    207|#define OGS_NAS_5GS_AUTHENTICATION_RESULT_AUN3_DEVICE_SECURITY_KEY_TYPE 0x55
  ------------------
  |  Branch (2812:9): [True: 207, False: 2.39k]
  ------------------
 2813|    207|            size = ogs_nas_5gs_decode_aun3_device_security_key(&authentication_result->aun3_device_security_key, pkbuf);
 2814|    207|            if (size < 0) {
  ------------------
  |  Branch (2814:17): [True: 4, False: 203]
  ------------------
 2815|      4|               ogs_error("ogs_nas_5gs_decode_aun3_device_security_key() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2816|      4|               return size;
 2817|      4|            }
 2818|       |
 2819|    203|            authentication_result->presencemask |= OGS_NAS_5GS_AUTHENTICATION_RESULT_AUN3_DEVICE_SECURITY_KEY_PRESENT;
  ------------------
  |  |  939|    203|#define OGS_NAS_5GS_AUTHENTICATION_RESULT_AUN3_DEVICE_SECURITY_KEY_PRESENT ((uint64_t)1<<1)
  ------------------
 2820|    203|            decoded += size;
 2821|    203|            break;
 2822|  2.19k|        default:
  ------------------
  |  Branch (2822:9): [True: 2.19k, False: 413]
  ------------------
 2823|  2.19k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.19k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.19k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.19k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.19k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.19k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.19k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2824|  2.19k|            break;
 2825|  2.60k|        }
 2826|  2.60k|    }
 2827|       |
 2828|     52|    return decoded;
 2829|     57|}
ogs_nas_5gs_decode_identity_request:
 2832|      1|{
 2833|      1|    ogs_nas_5gs_identity_request_t *identity_request = &message->gmm.identity_request;
 2834|      1|    int decoded = 0;
 2835|      1|    int size = 0;
 2836|       |
 2837|      1|    ogs_trace("[NAS] Decode IDENTITY_REQUEST\n");
  ------------------
  |  |   40|      1|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2838|       |
 2839|      1|    size = ogs_nas_5gs_decode_5gs_identity_type(&identity_request->identity_type, pkbuf);
 2840|      1|    if (size < 0) {
  ------------------
  |  Branch (2840:9): [True: 0, False: 1]
  ------------------
 2841|      0|        ogs_error("ogs_nas_5gs_decode_5gs_identity_type() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2842|      0|        return size;
 2843|      0|    }
 2844|       |
 2845|      1|    decoded += size;
 2846|       |
 2847|      1|    return decoded;
 2848|      1|}
ogs_nas_5gs_decode_identity_response:
 2851|     22|{
 2852|     22|    ogs_nas_5gs_identity_response_t *identity_response = &message->gmm.identity_response;
 2853|     22|    int decoded = 0;
 2854|     22|    int size = 0;
 2855|       |
 2856|     22|    ogs_trace("[NAS] Decode IDENTITY_RESPONSE\n");
  ------------------
  |  |   40|     22|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     22|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     22|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     22|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     22|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     22|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2857|       |
 2858|     22|    size = ogs_nas_5gs_decode_5gs_mobile_identity(&identity_response->mobile_identity, pkbuf);
 2859|     22|    if (size < 0) {
  ------------------
  |  Branch (2859:9): [True: 15, False: 7]
  ------------------
 2860|     15|        ogs_error("ogs_nas_5gs_decode_5gs_mobile_identity() failed");
  ------------------
  |  |   36|     15|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     15|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     15|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     15|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     15|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     15|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2861|     15|        return size;
 2862|     15|    }
 2863|       |
 2864|      7|    decoded += size;
 2865|       |
 2866|      7|    return decoded;
 2867|     22|}
ogs_nas_5gs_decode_security_mode_command:
 2870|    143|{
 2871|    143|    ogs_nas_5gs_security_mode_command_t *security_mode_command = &message->gmm.security_mode_command;
 2872|    143|    int decoded = 0;
 2873|    143|    int size = 0;
 2874|       |
 2875|    143|    ogs_trace("[NAS] Decode SECURITY_MODE_COMMAND\n");
  ------------------
  |  |   40|    143|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    143|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    143|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    143|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    143|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    143|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2876|       |
 2877|    143|    size = ogs_nas_5gs_decode_security_algorithms(&security_mode_command->selected_nas_security_algorithms, pkbuf);
 2878|    143|    if (size < 0) {
  ------------------
  |  Branch (2878:9): [True: 0, False: 143]
  ------------------
 2879|      0|        ogs_error("ogs_nas_5gs_decode_security_algorithms() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2880|      0|        return size;
 2881|      0|    }
 2882|       |
 2883|    143|    decoded += size;
 2884|       |
 2885|    143|    size = ogs_nas_5gs_decode_key_set_identifier(&security_mode_command->ngksi, pkbuf);
 2886|    143|    if (size < 0) {
  ------------------
  |  Branch (2886:9): [True: 1, False: 142]
  ------------------
 2887|      1|        ogs_error("ogs_nas_5gs_decode_key_set_identifier() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2888|      1|        return size;
 2889|      1|    }
 2890|       |
 2891|    142|    decoded += size;
 2892|       |
 2893|    142|    size = ogs_nas_5gs_decode_ue_security_capability(&security_mode_command->replayed_ue_security_capabilities, pkbuf);
 2894|    142|    if (size < 0) {
  ------------------
  |  Branch (2894:9): [True: 9, False: 133]
  ------------------
 2895|      9|        ogs_error("ogs_nas_5gs_decode_ue_security_capability() failed");
  ------------------
  |  |   36|      9|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      9|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      9|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      9|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      9|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      9|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2896|      9|        return size;
 2897|      9|    }
 2898|       |
 2899|    133|    decoded += size;
 2900|       |
 2901|  8.14k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (2901:12): [True: 8.03k, False: 113]
  ------------------
 2902|  8.03k|        uint8_t *buffer = pkbuf->data;
 2903|  8.03k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (2903:24): [True: 3.08k, False: 4.94k]
  ------------------
 2904|       |
 2905|  8.03k|        size = sizeof(uint8_t);
 2906|  8.03k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2906:13): [True: 0, False: 8.03k]
  ------------------
 2907|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2908|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 2909|      0|        }
 2910|  8.03k|        decoded += size;
 2911|       |
 2912|  8.03k|        switch(type) {
 2913|    914|        case OGS_NAS_5GS_SECURITY_MODE_COMMAND_IMEISV_REQUEST_TYPE:
  ------------------
  |  |  985|    914|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_IMEISV_REQUEST_TYPE 0xE0
  ------------------
  |  Branch (2913:9): [True: 914, False: 7.11k]
  ------------------
 2914|    914|            decoded--;
 2915|    914|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    914|    do { \
  |  |  114|    914|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    914|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 914, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    914|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|    914|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 914]
  |  |  ------------------
  ------------------
 2916|    914|            size = ogs_nas_5gs_decode_imeisv_request(&security_mode_command->imeisv_request, pkbuf);
 2917|    914|            if (size < 0) {
  ------------------
  |  Branch (2917:17): [True: 0, False: 914]
  ------------------
 2918|      0|               ogs_error("ogs_nas_5gs_decode_imeisv_request() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2919|      0|               return size;
 2920|      0|            }
 2921|       |
 2922|    914|            security_mode_command->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMMAND_IMEISV_REQUEST_PRESENT;
  ------------------
  |  |  978|    914|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_IMEISV_REQUEST_PRESENT ((uint64_t)1<<0)
  ------------------
 2923|    914|            decoded += size;
 2924|    914|            break;
 2925|    210|        case OGS_NAS_5GS_SECURITY_MODE_COMMAND_SELECTED_EPS_NAS_SECURITY_ALGORITHMS_TYPE:
  ------------------
  |  |  986|    210|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_SELECTED_EPS_NAS_SECURITY_ALGORITHMS_TYPE 0x57
  ------------------
  |  Branch (2925:9): [True: 210, False: 7.82k]
  ------------------
 2926|    210|            size = ogs_nas_5gs_decode_eps_nas_security_algorithms(&security_mode_command->selected_eps_nas_security_algorithms, pkbuf);
 2927|    210|            if (size < 0) {
  ------------------
  |  Branch (2927:17): [True: 4, False: 206]
  ------------------
 2928|      4|               ogs_error("ogs_nas_5gs_decode_eps_nas_security_algorithms() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2929|      4|               return size;
 2930|      4|            }
 2931|       |
 2932|    206|            security_mode_command->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMMAND_SELECTED_EPS_NAS_SECURITY_ALGORITHMS_PRESENT;
  ------------------
  |  |  979|    206|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_SELECTED_EPS_NAS_SECURITY_ALGORITHMS_PRESENT ((uint64_t)1<<1)
  ------------------
 2933|    206|            decoded += size;
 2934|    206|            break;
 2935|    264|        case OGS_NAS_5GS_SECURITY_MODE_COMMAND_ADDITIONAL_5G_SECURITY_INFORMATION_TYPE:
  ------------------
  |  |  987|    264|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_ADDITIONAL_5G_SECURITY_INFORMATION_TYPE 0x36
  ------------------
  |  Branch (2935:9): [True: 264, False: 7.76k]
  ------------------
 2936|    264|            size = ogs_nas_5gs_decode_additional_5g_security_information(&security_mode_command->additional_security_information, pkbuf);
 2937|    264|            if (size < 0) {
  ------------------
  |  Branch (2937:17): [True: 5, False: 259]
  ------------------
 2938|      5|               ogs_error("ogs_nas_5gs_decode_additional_5g_security_information() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2939|      5|               return size;
 2940|      5|            }
 2941|       |
 2942|    259|            security_mode_command->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMMAND_ADDITIONAL_5G_SECURITY_INFORMATION_PRESENT;
  ------------------
  |  |  980|    259|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_ADDITIONAL_5G_SECURITY_INFORMATION_PRESENT ((uint64_t)1<<2)
  ------------------
 2943|    259|            decoded += size;
 2944|    259|            break;
 2945|    205|        case OGS_NAS_5GS_SECURITY_MODE_COMMAND_EAP_MESSAGE_TYPE:
  ------------------
  |  |  988|    205|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (2945:9): [True: 205, False: 7.82k]
  ------------------
 2946|    205|            size = ogs_nas_5gs_decode_eap_message(&security_mode_command->eap_message, pkbuf);
 2947|    205|            if (size < 0) {
  ------------------
  |  Branch (2947:17): [True: 1, False: 204]
  ------------------
 2948|      1|               ogs_error("ogs_nas_5gs_decode_eap_message() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2949|      1|               return size;
 2950|      1|            }
 2951|       |
 2952|    204|            security_mode_command->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMMAND_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  981|    204|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_EAP_MESSAGE_PRESENT ((uint64_t)1<<3)
  ------------------
 2953|    204|            decoded += size;
 2954|    204|            break;
 2955|    222|        case OGS_NAS_5GS_SECURITY_MODE_COMMAND_ABBA_TYPE:
  ------------------
  |  |  989|    222|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_ABBA_TYPE 0x38
  ------------------
  |  Branch (2955:9): [True: 222, False: 7.81k]
  ------------------
 2956|    222|            size = ogs_nas_5gs_decode_abba(&security_mode_command->abba, pkbuf);
 2957|    222|            if (size < 0) {
  ------------------
  |  Branch (2957:17): [True: 1, False: 221]
  ------------------
 2958|      1|               ogs_error("ogs_nas_5gs_decode_abba() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2959|      1|               return size;
 2960|      1|            }
 2961|       |
 2962|    221|            security_mode_command->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMMAND_ABBA_PRESENT;
  ------------------
  |  |  982|    221|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_ABBA_PRESENT ((uint64_t)1<<4)
  ------------------
 2963|    221|            decoded += size;
 2964|    221|            break;
 2965|    205|        case OGS_NAS_5GS_SECURITY_MODE_COMMAND_REPLAYED_S1_UE_SECURITY_CAPABILITIES_TYPE:
  ------------------
  |  |  990|    205|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_REPLAYED_S1_UE_SECURITY_CAPABILITIES_TYPE 0x19
  ------------------
  |  Branch (2965:9): [True: 205, False: 7.82k]
  ------------------
 2966|    205|            size = ogs_nas_5gs_decode_s1_ue_security_capability(&security_mode_command->replayed_s1_ue_security_capabilities, pkbuf);
 2967|    205|            if (size < 0) {
  ------------------
  |  Branch (2967:17): [True: 5, False: 200]
  ------------------
 2968|      5|               ogs_error("ogs_nas_5gs_decode_s1_ue_security_capability() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2969|      5|               return size;
 2970|      5|            }
 2971|       |
 2972|    200|            security_mode_command->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMMAND_REPLAYED_S1_UE_SECURITY_CAPABILITIES_PRESENT;
  ------------------
  |  |  983|    200|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_REPLAYED_S1_UE_SECURITY_CAPABILITIES_PRESENT ((uint64_t)1<<5)
  ------------------
 2973|    200|            decoded += size;
 2974|    200|            break;
 2975|    233|        case OGS_NAS_5GS_SECURITY_MODE_COMMAND_AUN3_DEVICE_SECURITY_KEY_TYPE:
  ------------------
  |  |  991|    233|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_AUN3_DEVICE_SECURITY_KEY_TYPE 0x55
  ------------------
  |  Branch (2975:9): [True: 233, False: 7.80k]
  ------------------
 2976|    233|            size = ogs_nas_5gs_decode_aun3_device_security_key(&security_mode_command->aun3_device_security_key, pkbuf);
 2977|    233|            if (size < 0) {
  ------------------
  |  Branch (2977:17): [True: 4, False: 229]
  ------------------
 2978|      4|               ogs_error("ogs_nas_5gs_decode_aun3_device_security_key() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2979|      4|               return size;
 2980|      4|            }
 2981|       |
 2982|    229|            security_mode_command->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMMAND_AUN3_DEVICE_SECURITY_KEY_PRESENT;
  ------------------
  |  |  984|    229|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_AUN3_DEVICE_SECURITY_KEY_PRESENT ((uint64_t)1<<6)
  ------------------
 2983|    229|            decoded += size;
 2984|    229|            break;
 2985|  5.78k|        default:
  ------------------
  |  Branch (2985:9): [True: 5.78k, False: 2.25k]
  ------------------
 2986|  5.78k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  5.78k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  5.78k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  5.78k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  5.78k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  5.78k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  5.78k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2987|  5.78k|            break;
 2988|  8.03k|        }
 2989|  8.03k|    }
 2990|       |
 2991|    113|    return decoded;
 2992|    133|}
ogs_nas_5gs_decode_security_mode_complete:
 2995|    100|{
 2996|    100|    ogs_nas_5gs_security_mode_complete_t *security_mode_complete = &message->gmm.security_mode_complete;
 2997|    100|    int decoded = 0;
 2998|    100|    int size = 0;
 2999|       |
 3000|    100|    ogs_trace("[NAS] Decode SECURITY_MODE_COMPLETE\n");
  ------------------
  |  |   40|    100|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    100|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    100|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    100|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    100|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    100|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3001|       |
 3002|  2.75k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (3002:12): [True: 2.68k, False: 73]
  ------------------
 3003|  2.68k|        uint8_t *buffer = pkbuf->data;
 3004|  2.68k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (3004:24): [True: 834, False: 1.84k]
  ------------------
 3005|       |
 3006|  2.68k|        size = sizeof(uint8_t);
 3007|  2.68k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3007:13): [True: 0, False: 2.68k]
  ------------------
 3008|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3009|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 3010|      0|        }
 3011|  2.68k|        decoded += size;
 3012|       |
 3013|  2.68k|        switch(type) {
 3014|    219|        case OGS_NAS_5GS_SECURITY_MODE_COMPLETE_IMEISV_TYPE:
  ------------------
  |  | 1017|    219|#define OGS_NAS_5GS_SECURITY_MODE_COMPLETE_IMEISV_TYPE 0x77
  ------------------
  |  Branch (3014:9): [True: 219, False: 2.46k]
  ------------------
 3015|    219|            size = ogs_nas_5gs_decode_5gs_mobile_identity(&security_mode_complete->imeisv, pkbuf);
 3016|    219|            if (size < 0) {
  ------------------
  |  Branch (3016:17): [True: 5, False: 214]
  ------------------
 3017|      5|               ogs_error("ogs_nas_5gs_decode_5gs_mobile_identity() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3018|      5|               return size;
 3019|      5|            }
 3020|       |
 3021|    214|            security_mode_complete->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMPLETE_IMEISV_PRESENT;
  ------------------
  |  | 1014|    214|#define OGS_NAS_5GS_SECURITY_MODE_COMPLETE_IMEISV_PRESENT ((uint64_t)1<<0)
  ------------------
 3022|    214|            decoded += size;
 3023|    214|            break;
 3024|    427|        case OGS_NAS_5GS_SECURITY_MODE_COMPLETE_NAS_MESSAGE_CONTAINER_TYPE:
  ------------------
  |  | 1018|    427|#define OGS_NAS_5GS_SECURITY_MODE_COMPLETE_NAS_MESSAGE_CONTAINER_TYPE 0x71
  ------------------
  |  Branch (3024:9): [True: 427, False: 2.25k]
  ------------------
 3025|    427|            size = ogs_nas_5gs_decode_message_container(&security_mode_complete->nas_message_container, pkbuf);
 3026|    427|            if (size < 0) {
  ------------------
  |  Branch (3026:17): [True: 20, False: 407]
  ------------------
 3027|     20|               ogs_error("ogs_nas_5gs_decode_message_container() failed");
  ------------------
  |  |   36|     20|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     20|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     20|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     20|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     20|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     20|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3028|     20|               return size;
 3029|     20|            }
 3030|       |
 3031|    407|            security_mode_complete->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMPLETE_NAS_MESSAGE_CONTAINER_PRESENT;
  ------------------
  |  | 1015|    407|#define OGS_NAS_5GS_SECURITY_MODE_COMPLETE_NAS_MESSAGE_CONTAINER_PRESENT ((uint64_t)1<<1)
  ------------------
 3032|    407|            decoded += size;
 3033|    407|            break;
 3034|    206|        case OGS_NAS_5GS_SECURITY_MODE_COMPLETE_NON_IMEISV_PEI_TYPE:
  ------------------
  |  | 1019|    206|#define OGS_NAS_5GS_SECURITY_MODE_COMPLETE_NON_IMEISV_PEI_TYPE 0x78
  ------------------
  |  Branch (3034:9): [True: 206, False: 2.47k]
  ------------------
 3035|    206|            size = ogs_nas_5gs_decode_5gs_mobile_identity(&security_mode_complete->non_imeisv_pei, pkbuf);
 3036|    206|            if (size < 0) {
  ------------------
  |  Branch (3036:17): [True: 2, False: 204]
  ------------------
 3037|      2|               ogs_error("ogs_nas_5gs_decode_5gs_mobile_identity() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3038|      2|               return size;
 3039|      2|            }
 3040|       |
 3041|    204|            security_mode_complete->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMPLETE_NON_IMEISV_PEI_PRESENT;
  ------------------
  |  | 1016|    204|#define OGS_NAS_5GS_SECURITY_MODE_COMPLETE_NON_IMEISV_PEI_PRESENT ((uint64_t)1<<2)
  ------------------
 3042|    204|            decoded += size;
 3043|    204|            break;
 3044|  1.83k|        default:
  ------------------
  |  Branch (3044:9): [True: 1.83k, False: 852]
  ------------------
 3045|  1.83k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.83k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.83k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.83k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.83k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.83k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.83k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3046|  1.83k|            break;
 3047|  2.68k|        }
 3048|  2.68k|    }
 3049|       |
 3050|     73|    return decoded;
 3051|    100|}
ogs_nas_5gs_decode_security_mode_reject:
 3054|      1|{
 3055|      1|    ogs_nas_5gs_security_mode_reject_t *security_mode_reject = &message->gmm.security_mode_reject;
 3056|      1|    int decoded = 0;
 3057|      1|    int size = 0;
 3058|       |
 3059|      1|    ogs_trace("[NAS] Decode SECURITY_MODE_REJECT\n");
  ------------------
  |  |   40|      1|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3060|       |
 3061|      1|    size = ogs_nas_5gs_decode_5gmm_cause(&security_mode_reject->gmm_cause, pkbuf);
 3062|      1|    if (size < 0) {
  ------------------
  |  Branch (3062:9): [True: 0, False: 1]
  ------------------
 3063|      0|        ogs_error("ogs_nas_5gs_decode_5gmm_cause() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3064|      0|        return size;
 3065|      0|    }
 3066|       |
 3067|      1|    decoded += size;
 3068|       |
 3069|      1|    return decoded;
 3070|      1|}
ogs_nas_5gs_decode_5gmm_status:
 3073|      1|{
 3074|      1|    ogs_nas_5gs_5gmm_status_t *gmm_status = &message->gmm.gmm_status;
 3075|      1|    int decoded = 0;
 3076|      1|    int size = 0;
 3077|       |
 3078|      1|    ogs_trace("[NAS] Decode 5GMM_STATUS\n");
  ------------------
  |  |   40|      1|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3079|       |
 3080|      1|    size = ogs_nas_5gs_decode_5gmm_cause(&gmm_status->gmm_cause, pkbuf);
 3081|      1|    if (size < 0) {
  ------------------
  |  Branch (3081:9): [True: 0, False: 1]
  ------------------
 3082|      0|        ogs_error("ogs_nas_5gs_decode_5gmm_cause() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3083|      0|        return size;
 3084|      0|    }
 3085|       |
 3086|      1|    decoded += size;
 3087|       |
 3088|      1|    return decoded;
 3089|      1|}
ogs_nas_5gs_decode_notification:
 3092|      1|{
 3093|      1|    ogs_nas_5gs_notification_t *notification = &message->gmm.notification;
 3094|      1|    int decoded = 0;
 3095|      1|    int size = 0;
 3096|       |
 3097|      1|    ogs_trace("[NAS] Decode NOTIFICATION\n");
  ------------------
  |  |   40|      1|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3098|       |
 3099|      1|    size = ogs_nas_5gs_decode_access_type(&notification->access_type, pkbuf);
 3100|      1|    if (size < 0) {
  ------------------
  |  Branch (3100:9): [True: 0, False: 1]
  ------------------
 3101|      0|        ogs_error("ogs_nas_5gs_decode_access_type() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3102|      0|        return size;
 3103|      0|    }
 3104|       |
 3105|      1|    decoded += size;
 3106|       |
 3107|      1|    return decoded;
 3108|      1|}
ogs_nas_5gs_decode_notification_response:
 3111|     63|{
 3112|     63|    ogs_nas_5gs_notification_response_t *notification_response = &message->gmm.notification_response;
 3113|     63|    int decoded = 0;
 3114|     63|    int size = 0;
 3115|       |
 3116|     63|    ogs_trace("[NAS] Decode NOTIFICATION_RESPONSE\n");
  ------------------
  |  |   40|     63|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     63|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     63|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     63|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     63|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     63|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3117|       |
 3118|  1.90k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (3118:12): [True: 1.84k, False: 56]
  ------------------
 3119|  1.84k|        uint8_t *buffer = pkbuf->data;
 3120|  1.84k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (3120:24): [True: 996, False: 849]
  ------------------
 3121|       |
 3122|  1.84k|        size = sizeof(uint8_t);
 3123|  1.84k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3123:13): [True: 0, False: 1.84k]
  ------------------
 3124|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3125|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 3126|      0|        }
 3127|  1.84k|        decoded += size;
 3128|       |
 3129|  1.84k|        switch(type) {
 3130|    246|        case OGS_NAS_5GS_NOTIFICATION_RESPONSE_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  | 1065|    246|#define OGS_NAS_5GS_NOTIFICATION_RESPONSE_PDU_SESSION_STATUS_TYPE 0x50
  ------------------
  |  Branch (3130:9): [True: 246, False: 1.59k]
  ------------------
 3131|    246|            size = ogs_nas_5gs_decode_pdu_session_status(&notification_response->pdu_session_status, pkbuf);
 3132|    246|            if (size < 0) {
  ------------------
  |  Branch (3132:17): [True: 7, False: 239]
  ------------------
 3133|      7|               ogs_error("ogs_nas_5gs_decode_pdu_session_status() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3134|      7|               return size;
 3135|      7|            }
 3136|       |
 3137|    239|            notification_response->presencemask |= OGS_NAS_5GS_NOTIFICATION_RESPONSE_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  | 1064|    239|#define OGS_NAS_5GS_NOTIFICATION_RESPONSE_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<0)
  ------------------
 3138|    239|            decoded += size;
 3139|    239|            break;
 3140|  1.59k|        default:
  ------------------
  |  Branch (3140:9): [True: 1.59k, False: 246]
  ------------------
 3141|  1.59k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.59k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.59k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.59k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.59k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.59k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.59k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3142|  1.59k|            break;
 3143|  1.84k|        }
 3144|  1.84k|    }
 3145|       |
 3146|     56|    return decoded;
 3147|     63|}
ogs_nas_5gs_decode_ul_nas_transport:
 3150|    299|{
 3151|    299|    ogs_nas_5gs_ul_nas_transport_t *ul_nas_transport = &message->gmm.ul_nas_transport;
 3152|    299|    int decoded = 0;
 3153|    299|    int size = 0;
 3154|       |
 3155|    299|    ogs_trace("[NAS] Decode UL_NAS_TRANSPORT\n");
  ------------------
  |  |   40|    299|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    299|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    299|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    299|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    299|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    299|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3156|       |
 3157|    299|    size = ogs_nas_5gs_decode_payload_container_type(&ul_nas_transport->payload_container_type, pkbuf);
 3158|    299|    if (size < 0) {
  ------------------
  |  Branch (3158:9): [True: 0, False: 299]
  ------------------
 3159|      0|        ogs_error("ogs_nas_5gs_decode_payload_container_type() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3160|      0|        return size;
 3161|      0|    }
 3162|       |
 3163|    299|    decoded += size;
 3164|       |
 3165|    299|    size = ogs_nas_5gs_decode_payload_container(&ul_nas_transport->payload_container, pkbuf);
 3166|    299|    if (size < 0) {
  ------------------
  |  Branch (3166:9): [True: 13, False: 286]
  ------------------
 3167|     13|        ogs_error("ogs_nas_5gs_decode_payload_container() failed");
  ------------------
  |  |   36|     13|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     13|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     13|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     13|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     13|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     13|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3168|     13|        return size;
 3169|     13|    }
 3170|       |
 3171|    286|    decoded += size;
 3172|       |
 3173|  15.8k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (3173:12): [True: 15.5k, False: 265]
  ------------------
 3174|  15.5k|        uint8_t *buffer = pkbuf->data;
 3175|  15.5k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (3175:24): [True: 5.80k, False: 9.78k]
  ------------------
 3176|       |
 3177|  15.5k|        size = sizeof(uint8_t);
 3178|  15.5k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3178:13): [True: 0, False: 15.5k]
  ------------------
 3179|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3180|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 3181|      0|        }
 3182|  15.5k|        decoded += size;
 3183|       |
 3184|  15.5k|        switch(type) {
 3185|    278|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_PDU_SESSION_ID_TYPE:
  ------------------
  |  | 1089|    278|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_PDU_SESSION_ID_TYPE 0x12
  ------------------
  |  Branch (3185:9): [True: 278, False: 15.3k]
  ------------------
 3186|    278|            size = ogs_nas_5gs_decode_pdu_session_identity_2(&ul_nas_transport->pdu_session_id, pkbuf);
 3187|    278|            if (size < 0) {
  ------------------
  |  Branch (3187:17): [True: 3, False: 275]
  ------------------
 3188|      3|               ogs_error("ogs_nas_5gs_decode_pdu_session_identity_2() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3189|      3|               return size;
 3190|      3|            }
 3191|       |
 3192|    275|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_PDU_SESSION_ID_PRESENT;
  ------------------
  |  | 1078|    275|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_PDU_SESSION_ID_PRESENT ((uint64_t)1<<0)
  ------------------
 3193|    275|            decoded += size;
 3194|    275|            break;
 3195|    231|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_OLD_PDU_SESSION_ID_TYPE:
  ------------------
  |  | 1090|    231|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_OLD_PDU_SESSION_ID_TYPE 0x59
  ------------------
  |  Branch (3195:9): [True: 231, False: 15.3k]
  ------------------
 3196|    231|            size = ogs_nas_5gs_decode_pdu_session_identity_2(&ul_nas_transport->old_pdu_session_id, pkbuf);
 3197|    231|            if (size < 0) {
  ------------------
  |  Branch (3197:17): [True: 1, False: 230]
  ------------------
 3198|      1|               ogs_error("ogs_nas_5gs_decode_pdu_session_identity_2() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3199|      1|               return size;
 3200|      1|            }
 3201|       |
 3202|    230|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_OLD_PDU_SESSION_ID_PRESENT;
  ------------------
  |  | 1079|    230|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_OLD_PDU_SESSION_ID_PRESENT ((uint64_t)1<<1)
  ------------------
 3203|    230|            decoded += size;
 3204|    230|            break;
 3205|  1.01k|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_REQUEST_TYPE_TYPE:
  ------------------
  |  | 1091|  1.01k|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_REQUEST_TYPE_TYPE 0x80
  ------------------
  |  Branch (3205:9): [True: 1.01k, False: 14.5k]
  ------------------
 3206|  1.01k|            decoded--;
 3207|  1.01k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.01k|    do { \
  |  |  114|  1.01k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.01k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.01k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.01k|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|  1.01k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.01k]
  |  |  ------------------
  ------------------
 3208|  1.01k|            size = ogs_nas_5gs_decode_request_type(&ul_nas_transport->request_type, pkbuf);
 3209|  1.01k|            if (size < 0) {
  ------------------
  |  Branch (3209:17): [True: 0, False: 1.01k]
  ------------------
 3210|      0|               ogs_error("ogs_nas_5gs_decode_request_type() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3211|      0|               return size;
 3212|      0|            }
 3213|       |
 3214|  1.01k|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_REQUEST_TYPE_PRESENT;
  ------------------
  |  | 1080|  1.01k|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_REQUEST_TYPE_PRESENT ((uint64_t)1<<2)
  ------------------
 3215|  1.01k|            decoded += size;
 3216|  1.01k|            break;
 3217|    196|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_S_NSSAI_TYPE:
  ------------------
  |  | 1092|    196|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_S_NSSAI_TYPE 0x22
  ------------------
  |  Branch (3217:9): [True: 196, False: 15.3k]
  ------------------
 3218|    196|            size = ogs_nas_5gs_decode_s_nssai(&ul_nas_transport->s_nssai, pkbuf);
 3219|    196|            if (size < 0) {
  ------------------
  |  Branch (3219:17): [True: 1, False: 195]
  ------------------
 3220|      1|               ogs_error("ogs_nas_5gs_decode_s_nssai() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3221|      1|               return size;
 3222|      1|            }
 3223|       |
 3224|    195|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_S_NSSAI_PRESENT;
  ------------------
  |  | 1081|    195|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_S_NSSAI_PRESENT ((uint64_t)1<<3)
  ------------------
 3225|    195|            decoded += size;
 3226|    195|            break;
 3227|    892|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_DNN_TYPE:
  ------------------
  |  | 1093|    892|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_DNN_TYPE 0x25
  ------------------
  |  Branch (3227:9): [True: 892, False: 14.6k]
  ------------------
 3228|    892|            size = ogs_nas_5gs_decode_dnn(&ul_nas_transport->dnn, pkbuf);
 3229|    892|            if (size < 0) {
  ------------------
  |  Branch (3229:17): [True: 7, False: 885]
  ------------------
 3230|      7|               ogs_error("ogs_nas_5gs_decode_dnn() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3231|      7|               return size;
 3232|      7|            }
 3233|       |
 3234|    885|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_DNN_PRESENT;
  ------------------
  |  | 1082|    885|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_DNN_PRESENT ((uint64_t)1<<4)
  ------------------
 3235|    885|            decoded += size;
 3236|    885|            break;
 3237|    256|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_TYPE:
  ------------------
  |  | 1094|    256|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_TYPE 0x24
  ------------------
  |  Branch (3237:9): [True: 256, False: 15.3k]
  ------------------
 3238|    256|            size = ogs_nas_5gs_decode_additional_information(&ul_nas_transport->additional_information, pkbuf);
 3239|    256|            if (size < 0) {
  ------------------
  |  Branch (3239:17): [True: 4, False: 252]
  ------------------
 3240|      4|               ogs_error("ogs_nas_5gs_decode_additional_information() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3241|      4|               return size;
 3242|      4|            }
 3243|       |
 3244|    252|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_PRESENT;
  ------------------
  |  | 1083|    252|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_PRESENT ((uint64_t)1<<5)
  ------------------
 3245|    252|            decoded += size;
 3246|    252|            break;
 3247|    954|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_MA_PDU_SESSION_INFORMATION_TYPE:
  ------------------
  |  | 1095|    954|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_MA_PDU_SESSION_INFORMATION_TYPE 0xA0
  ------------------
  |  Branch (3247:9): [True: 954, False: 14.6k]
  ------------------
 3248|    954|            decoded--;
 3249|    954|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    954|    do { \
  |  |  114|    954|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    954|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 954, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    954|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|    954|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 954]
  |  |  ------------------
  ------------------
 3250|    954|            size = ogs_nas_5gs_decode_ma_pdu_session_information(&ul_nas_transport->ma_pdu_session_information, pkbuf);
 3251|    954|            if (size < 0) {
  ------------------
  |  Branch (3251:17): [True: 0, False: 954]
  ------------------
 3252|      0|               ogs_error("ogs_nas_5gs_decode_ma_pdu_session_information() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3253|      0|               return size;
 3254|      0|            }
 3255|       |
 3256|    954|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_MA_PDU_SESSION_INFORMATION_PRESENT;
  ------------------
  |  | 1084|    954|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_MA_PDU_SESSION_INFORMATION_PRESENT ((uint64_t)1<<6)
  ------------------
 3257|    954|            decoded += size;
 3258|    954|            break;
 3259|  2.10k|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_RELEASE_ASSISTANCE_INDICATION_TYPE:
  ------------------
  |  | 1096|  2.10k|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_RELEASE_ASSISTANCE_INDICATION_TYPE 0xF0
  ------------------
  |  Branch (3259:9): [True: 2.10k, False: 13.4k]
  ------------------
 3260|  2.10k|            decoded--;
 3261|  2.10k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  2.10k|    do { \
  |  |  114|  2.10k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  2.10k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 2.10k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  2.10k|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|  2.10k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 2.10k]
  |  |  ------------------
  ------------------
 3262|  2.10k|            size = ogs_nas_5gs_decode_release_assistance_indication(&ul_nas_transport->release_assistance_indication, pkbuf);
 3263|  2.10k|            if (size < 0) {
  ------------------
  |  Branch (3263:17): [True: 0, False: 2.10k]
  ------------------
 3264|      0|               ogs_error("ogs_nas_5gs_decode_release_assistance_indication() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3265|      0|               return size;
 3266|      0|            }
 3267|       |
 3268|  2.10k|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_RELEASE_ASSISTANCE_INDICATION_PRESENT;
  ------------------
  |  | 1085|  2.10k|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_RELEASE_ASSISTANCE_INDICATION_PRESENT ((uint64_t)1<<7)
  ------------------
 3269|  2.10k|            decoded += size;
 3270|  2.10k|            break;
 3271|    202|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_NON_3GPP_ACCESS_PATH_SWITCHING_INDICATION_TYPE:
  ------------------
  |  | 1097|    202|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_NON_3GPP_ACCESS_PATH_SWITCHING_INDICATION_TYPE 0x4E
  ------------------
  |  Branch (3271:9): [True: 202, False: 15.3k]
  ------------------
 3272|    202|            size = ogs_nas_5gs_decode_non_3gpp_access_path_switching_indication(&ul_nas_transport->non_3gpp_access_path_switching_indication, pkbuf);
 3273|    202|            if (size < 0) {
  ------------------
  |  Branch (3273:17): [True: 4, False: 198]
  ------------------
 3274|      4|               ogs_error("ogs_nas_5gs_decode_non_3gpp_access_path_switching_indication() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3275|      4|               return size;
 3276|      4|            }
 3277|       |
 3278|    198|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_NON_3GPP_ACCESS_PATH_SWITCHING_INDICATION_PRESENT;
  ------------------
  |  | 1086|    198|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_NON_3GPP_ACCESS_PATH_SWITCHING_INDICATION_PRESENT ((uint64_t)1<<8)
  ------------------
 3279|    198|            decoded += size;
 3280|    198|            break;
 3281|    196|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_ALTERNATIVE_S_NSSAI_TYPE:
  ------------------
  |  | 1098|    196|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_ALTERNATIVE_S_NSSAI_TYPE 0x5A
  ------------------
  |  Branch (3281:9): [True: 196, False: 15.3k]
  ------------------
 3282|    196|            size = ogs_nas_5gs_decode_s_nssai(&ul_nas_transport->alternative_s_nssai, pkbuf);
 3283|    196|            if (size < 0) {
  ------------------
  |  Branch (3283:17): [True: 1, False: 195]
  ------------------
 3284|      1|               ogs_error("ogs_nas_5gs_decode_s_nssai() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3285|      1|               return size;
 3286|      1|            }
 3287|       |
 3288|    195|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_ALTERNATIVE_S_NSSAI_PRESENT;
  ------------------
  |  | 1087|    195|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_ALTERNATIVE_S_NSSAI_PRESENT ((uint64_t)1<<9)
  ------------------
 3289|    195|            decoded += size;
 3290|    195|            break;
 3291|    861|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_PAYLOAD_CONTAINER_INFORMATION_TYPE:
  ------------------
  |  | 1099|    861|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_PAYLOAD_CONTAINER_INFORMATION_TYPE 0x90
  ------------------
  |  Branch (3291:9): [True: 861, False: 14.7k]
  ------------------
 3292|    861|            decoded--;
 3293|    861|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    861|    do { \
  |  |  114|    861|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    861|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 861, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    861|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|    861|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 861]
  |  |  ------------------
  ------------------
 3294|    861|            size = ogs_nas_5gs_decode_payload_container_information(&ul_nas_transport->payload_container_information, pkbuf);
 3295|    861|            if (size < 0) {
  ------------------
  |  Branch (3295:17): [True: 0, False: 861]
  ------------------
 3296|      0|               ogs_error("ogs_nas_5gs_decode_payload_container_information() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3297|      0|               return size;
 3298|      0|            }
 3299|       |
 3300|    861|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_PAYLOAD_CONTAINER_INFORMATION_PRESENT;
  ------------------
  |  | 1088|    861|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_PAYLOAD_CONTAINER_INFORMATION_PRESENT ((uint64_t)1<<10)
  ------------------
 3301|    861|            decoded += size;
 3302|    861|            break;
 3303|  8.40k|        default:
  ------------------
  |  Branch (3303:9): [True: 8.40k, False: 7.18k]
  ------------------
 3304|  8.40k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  8.40k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  8.40k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  8.40k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  8.40k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  8.40k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  8.40k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3305|  8.40k|            break;
 3306|  15.5k|        }
 3307|  15.5k|    }
 3308|       |
 3309|    265|    return decoded;
 3310|    286|}
ogs_nas_5gs_decode_dl_nas_transport:
 3313|    101|{
 3314|    101|    ogs_nas_5gs_dl_nas_transport_t *dl_nas_transport = &message->gmm.dl_nas_transport;
 3315|    101|    int decoded = 0;
 3316|    101|    int size = 0;
 3317|       |
 3318|    101|    ogs_trace("[NAS] Decode DL_NAS_TRANSPORT\n");
  ------------------
  |  |   40|    101|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    101|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    101|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    101|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    101|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    101|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3319|       |
 3320|    101|    size = ogs_nas_5gs_decode_payload_container_type(&dl_nas_transport->payload_container_type, pkbuf);
 3321|    101|    if (size < 0) {
  ------------------
  |  Branch (3321:9): [True: 0, False: 101]
  ------------------
 3322|      0|        ogs_error("ogs_nas_5gs_decode_payload_container_type() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3323|      0|        return size;
 3324|      0|    }
 3325|       |
 3326|    101|    decoded += size;
 3327|       |
 3328|    101|    size = ogs_nas_5gs_decode_payload_container(&dl_nas_transport->payload_container, pkbuf);
 3329|    101|    if (size < 0) {
  ------------------
  |  Branch (3329:9): [True: 12, False: 89]
  ------------------
 3330|     12|        ogs_error("ogs_nas_5gs_decode_payload_container() failed");
  ------------------
  |  |   36|     12|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     12|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     12|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     12|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     12|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     12|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3331|     12|        return size;
 3332|     12|    }
 3333|       |
 3334|     89|    decoded += size;
 3335|       |
 3336|  3.33k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (3336:12): [True: 3.25k, False: 82]
  ------------------
 3337|  3.25k|        uint8_t *buffer = pkbuf->data;
 3338|  3.25k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (3338:24): [True: 708, False: 2.54k]
  ------------------
 3339|       |
 3340|  3.25k|        size = sizeof(uint8_t);
 3341|  3.25k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3341:13): [True: 0, False: 3.25k]
  ------------------
 3342|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3343|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 3344|      0|        }
 3345|  3.25k|        decoded += size;
 3346|       |
 3347|  3.25k|        switch(type) {
 3348|    196|        case OGS_NAS_5GS_DL_NAS_TRANSPORT_PDU_SESSION_ID_TYPE:
  ------------------
  |  | 1130|    196|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_PDU_SESSION_ID_TYPE 0x12
  ------------------
  |  Branch (3348:9): [True: 196, False: 3.05k]
  ------------------
 3349|    196|            size = ogs_nas_5gs_decode_pdu_session_identity_2(&dl_nas_transport->pdu_session_id, pkbuf);
 3350|    196|            if (size < 0) {
  ------------------
  |  Branch (3350:17): [True: 1, False: 195]
  ------------------
 3351|      1|               ogs_error("ogs_nas_5gs_decode_pdu_session_identity_2() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3352|      1|               return size;
 3353|      1|            }
 3354|       |
 3355|    195|            dl_nas_transport->presencemask |= OGS_NAS_5GS_DL_NAS_TRANSPORT_PDU_SESSION_ID_PRESENT;
  ------------------
  |  | 1125|    195|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_PDU_SESSION_ID_PRESENT ((uint64_t)1<<0)
  ------------------
 3356|    195|            decoded += size;
 3357|    195|            break;
 3358|    206|        case OGS_NAS_5GS_DL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_TYPE:
  ------------------
  |  | 1131|    206|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_TYPE 0x24
  ------------------
  |  Branch (3358:9): [True: 206, False: 3.04k]
  ------------------
 3359|    206|            size = ogs_nas_5gs_decode_additional_information(&dl_nas_transport->additional_information, pkbuf);
 3360|    206|            if (size < 0) {
  ------------------
  |  Branch (3360:17): [True: 3, False: 203]
  ------------------
 3361|      3|               ogs_error("ogs_nas_5gs_decode_additional_information() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3362|      3|               return size;
 3363|      3|            }
 3364|       |
 3365|    203|            dl_nas_transport->presencemask |= OGS_NAS_5GS_DL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_PRESENT;
  ------------------
  |  | 1126|    203|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_PRESENT ((uint64_t)1<<1)
  ------------------
 3366|    203|            decoded += size;
 3367|    203|            break;
 3368|    195|        case OGS_NAS_5GS_DL_NAS_TRANSPORT_5GMM_CAUSE_TYPE:
  ------------------
  |  | 1132|    195|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_5GMM_CAUSE_TYPE 0x58
  ------------------
  |  Branch (3368:9): [True: 195, False: 3.05k]
  ------------------
 3369|    195|            size = ogs_nas_5gs_decode_5gmm_cause(&dl_nas_transport->gmm_cause, pkbuf);
 3370|    195|            if (size < 0) {
  ------------------
  |  Branch (3370:17): [True: 1, False: 194]
  ------------------
 3371|      1|               ogs_error("ogs_nas_5gs_decode_5gmm_cause() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3372|      1|               return size;
 3373|      1|            }
 3374|       |
 3375|    194|            dl_nas_transport->presencemask |= OGS_NAS_5GS_DL_NAS_TRANSPORT_5GMM_CAUSE_PRESENT;
  ------------------
  |  | 1127|    194|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_5GMM_CAUSE_PRESENT ((uint64_t)1<<2)
  ------------------
 3376|    194|            decoded += size;
 3377|    194|            break;
 3378|    227|        case OGS_NAS_5GS_DL_NAS_TRANSPORT_BACK_OFF_TIMER_VALUE_TYPE:
  ------------------
  |  | 1133|    227|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_BACK_OFF_TIMER_VALUE_TYPE 0x37
  ------------------
  |  Branch (3378:9): [True: 227, False: 3.02k]
  ------------------
 3379|    227|            size = ogs_nas_5gs_decode_gprs_timer_3(&dl_nas_transport->back_off_timer_value, pkbuf);
 3380|    227|            if (size < 0) {
  ------------------
  |  Branch (3380:17): [True: 1, False: 226]
  ------------------
 3381|      1|               ogs_error("ogs_nas_5gs_decode_gprs_timer_3() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3382|      1|               return size;
 3383|      1|            }
 3384|       |
 3385|    226|            dl_nas_transport->presencemask |= OGS_NAS_5GS_DL_NAS_TRANSPORT_BACK_OFF_TIMER_VALUE_PRESENT;
  ------------------
  |  | 1128|    226|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_BACK_OFF_TIMER_VALUE_PRESENT ((uint64_t)1<<3)
  ------------------
 3386|    226|            decoded += size;
 3387|    226|            break;
 3388|    212|        case OGS_NAS_5GS_DL_NAS_TRANSPORT_LOWER_BOUND_TIMER_VALUE_TYPE:
  ------------------
  |  | 1134|    212|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_LOWER_BOUND_TIMER_VALUE_TYPE 0x3A
  ------------------
  |  Branch (3388:9): [True: 212, False: 3.04k]
  ------------------
 3389|    212|            size = ogs_nas_5gs_decode_gprs_timer_3(&dl_nas_transport->lower_bound_timer_value, pkbuf);
 3390|    212|            if (size < 0) {
  ------------------
  |  Branch (3390:17): [True: 1, False: 211]
  ------------------
 3391|      1|               ogs_error("ogs_nas_5gs_decode_gprs_timer_3() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3392|      1|               return size;
 3393|      1|            }
 3394|       |
 3395|    211|            dl_nas_transport->presencemask |= OGS_NAS_5GS_DL_NAS_TRANSPORT_LOWER_BOUND_TIMER_VALUE_PRESENT;
  ------------------
  |  | 1129|    211|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_LOWER_BOUND_TIMER_VALUE_PRESENT ((uint64_t)1<<4)
  ------------------
 3396|    211|            decoded += size;
 3397|    211|            break;
 3398|  2.21k|        default:
  ------------------
  |  Branch (3398:9): [True: 2.21k, False: 1.03k]
  ------------------
 3399|  2.21k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.21k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.21k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.21k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.21k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.21k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.21k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3400|  2.21k|            break;
 3401|  3.25k|        }
 3402|  3.25k|    }
 3403|       |
 3404|     82|    return decoded;
 3405|     89|}
ogs_nas_5gs_decode_pdu_session_establishment_request:
 3408|    305|{
 3409|    305|    ogs_nas_5gs_pdu_session_establishment_request_t *pdu_session_establishment_request = &message->gsm.pdu_session_establishment_request;
 3410|    305|    int decoded = 0;
 3411|    305|    int size = 0;
 3412|       |
 3413|    305|    ogs_trace("[NAS] Decode PDU_SESSION_ESTABLISHMENT_REQUEST\n");
  ------------------
  |  |   40|    305|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    305|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    305|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    305|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    305|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    305|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3414|       |
 3415|    305|    size = ogs_nas_5gs_decode_integrity_protection_maximum_data_rate(&pdu_session_establishment_request->integrity_protection_maximum_data_rate, pkbuf);
 3416|    305|    if (size < 0) {
  ------------------
  |  Branch (3416:9): [True: 2, False: 303]
  ------------------
 3417|      2|        ogs_error("ogs_nas_5gs_decode_integrity_protection_maximum_data_rate() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3418|      2|        return size;
 3419|      2|    }
 3420|       |
 3421|    303|    decoded += size;
 3422|       |
 3423|  15.4k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (3423:12): [True: 15.1k, False: 239]
  ------------------
 3424|  15.1k|        uint8_t *buffer = pkbuf->data;
 3425|  15.1k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (3425:24): [True: 4.61k, False: 10.5k]
  ------------------
 3426|       |
 3427|  15.1k|        size = sizeof(uint8_t);
 3428|  15.1k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3428:13): [True: 0, False: 15.1k]
  ------------------
 3429|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3430|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 3431|      0|        }
 3432|  15.1k|        decoded += size;
 3433|       |
 3434|  15.1k|        switch(type) {
 3435|    376|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_TYPE_TYPE:
  ------------------
  |  | 1172|    376|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_TYPE_TYPE 0x90
  ------------------
  |  Branch (3435:9): [True: 376, False: 14.7k]
  ------------------
 3436|    376|            decoded--;
 3437|    376|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    376|    do { \
  |  |  114|    376|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    376|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 376, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    376|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|    376|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 376]
  |  |  ------------------
  ------------------
 3438|    376|            size = ogs_nas_5gs_decode_pdu_session_type(&pdu_session_establishment_request->pdu_session_type, pkbuf);
 3439|    376|            if (size < 0) {
  ------------------
  |  Branch (3439:17): [True: 0, False: 376]
  ------------------
 3440|      0|               ogs_error("ogs_nas_5gs_decode_pdu_session_type() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3441|      0|               return size;
 3442|      0|            }
 3443|       |
 3444|    376|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_TYPE_PRESENT;
  ------------------
  |  | 1154|    376|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_TYPE_PRESENT ((uint64_t)1<<0)
  ------------------
 3445|    376|            decoded += size;
 3446|    376|            break;
 3447|    569|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SSC_MODE_TYPE:
  ------------------
  |  | 1173|    569|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SSC_MODE_TYPE 0xA0
  ------------------
  |  Branch (3447:9): [True: 569, False: 14.6k]
  ------------------
 3448|    569|            decoded--;
 3449|    569|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    569|    do { \
  |  |  114|    569|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    569|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 569, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    569|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|    569|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 569]
  |  |  ------------------
  ------------------
 3450|    569|            size = ogs_nas_5gs_decode_ssc_mode(&pdu_session_establishment_request->ssc_mode, pkbuf);
 3451|    569|            if (size < 0) {
  ------------------
  |  Branch (3451:17): [True: 0, False: 569]
  ------------------
 3452|      0|               ogs_error("ogs_nas_5gs_decode_ssc_mode() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3453|      0|               return size;
 3454|      0|            }
 3455|       |
 3456|    569|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SSC_MODE_PRESENT;
  ------------------
  |  | 1155|    569|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SSC_MODE_PRESENT ((uint64_t)1<<1)
  ------------------
 3457|    569|            decoded += size;
 3458|    569|            break;
 3459|    222|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_5GSM_CAPABILITY_TYPE:
  ------------------
  |  | 1174|    222|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_5GSM_CAPABILITY_TYPE 0x28
  ------------------
  |  Branch (3459:9): [True: 222, False: 14.9k]
  ------------------
 3460|    222|            size = ogs_nas_5gs_decode_5gsm_capability(&pdu_session_establishment_request->gsm_capability, pkbuf);
 3461|    222|            if (size < 0) {
  ------------------
  |  Branch (3461:17): [True: 2, False: 220]
  ------------------
 3462|      2|               ogs_error("ogs_nas_5gs_decode_5gsm_capability() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3463|      2|               return size;
 3464|      2|            }
 3465|       |
 3466|    220|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_5GSM_CAPABILITY_PRESENT;
  ------------------
  |  | 1156|    220|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_5GSM_CAPABILITY_PRESENT ((uint64_t)1<<2)
  ------------------
 3467|    220|            decoded += size;
 3468|    220|            break;
 3469|    237|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_TYPE:
  ------------------
  |  | 1175|    237|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_TYPE 0x55
  ------------------
  |  Branch (3469:9): [True: 237, False: 14.9k]
  ------------------
 3470|    237|            size = ogs_nas_5gs_decode_maximum_number_of_supported_packet_filters(&pdu_session_establishment_request->maximum_number_of_supported_packet_filters, pkbuf);
 3471|    237|            if (size < 0) {
  ------------------
  |  Branch (3471:17): [True: 1, False: 236]
  ------------------
 3472|      1|               ogs_error("ogs_nas_5gs_decode_maximum_number_of_supported_packet_filters() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3473|      1|               return size;
 3474|      1|            }
 3475|       |
 3476|    236|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_PRESENT;
  ------------------
  |  | 1157|    236|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_PRESENT ((uint64_t)1<<3)
  ------------------
 3477|    236|            decoded += size;
 3478|    236|            break;
 3479|    622|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_TYPE:
  ------------------
  |  | 1176|    622|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_TYPE 0xB0
  ------------------
  |  Branch (3479:9): [True: 622, False: 14.5k]
  ------------------
 3480|    622|            decoded--;
 3481|    622|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    622|    do { \
  |  |  114|    622|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    622|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 622, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    622|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|    622|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 622]
  |  |  ------------------
  ------------------
 3482|    622|            size = ogs_nas_5gs_decode_always_on_pdu_session_requested(&pdu_session_establishment_request->always_on_pdu_session_requested, pkbuf);
 3483|    622|            if (size < 0) {
  ------------------
  |  Branch (3483:17): [True: 0, False: 622]
  ------------------
 3484|      0|               ogs_error("ogs_nas_5gs_decode_always_on_pdu_session_requested() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3485|      0|               return size;
 3486|      0|            }
 3487|       |
 3488|    622|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_PRESENT;
  ------------------
  |  | 1158|    622|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_PRESENT ((uint64_t)1<<4)
  ------------------
 3489|    622|            decoded += size;
 3490|    622|            break;
 3491|    209|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SM_PDU_DN_REQUEST_CONTAINER_TYPE:
  ------------------
  |  | 1177|    209|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SM_PDU_DN_REQUEST_CONTAINER_TYPE 0x39
  ------------------
  |  Branch (3491:9): [True: 209, False: 14.9k]
  ------------------
 3492|    209|            size = ogs_nas_5gs_decode_sm_pdu_dn_request_container(&pdu_session_establishment_request->sm_pdu_dn_request_container, pkbuf);
 3493|    209|            if (size < 0) {
  ------------------
  |  Branch (3493:17): [True: 3, False: 206]
  ------------------
 3494|      3|               ogs_error("ogs_nas_5gs_decode_sm_pdu_dn_request_container() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3495|      3|               return size;
 3496|      3|            }
 3497|       |
 3498|    206|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SM_PDU_DN_REQUEST_CONTAINER_PRESENT;
  ------------------
  |  | 1159|    206|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SM_PDU_DN_REQUEST_CONTAINER_PRESENT ((uint64_t)1<<5)
  ------------------
 3499|    206|            decoded += size;
 3500|    206|            break;
 3501|    198|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1178|    198|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (3501:9): [True: 198, False: 14.9k]
  ------------------
 3502|    198|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_establishment_request->extended_protocol_configuration_options, pkbuf);
 3503|    198|            if (size < 0) {
  ------------------
  |  Branch (3503:17): [True: 1, False: 197]
  ------------------
 3504|      1|               ogs_error("ogs_nas_5gs_decode_extended_protocol_configuration_options() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3505|      1|               return size;
 3506|      1|            }
 3507|       |
 3508|    197|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1160|    197|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<6)
  ------------------
 3509|    197|            decoded += size;
 3510|    197|            break;
 3511|    243|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1179|    243|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x66
  ------------------
  |  Branch (3511:9): [True: 243, False: 14.9k]
  ------------------
 3512|    243|            size = ogs_nas_5gs_decode_ip_header_compression_configuration(&pdu_session_establishment_request->ip_header_compression_configuration, pkbuf);
 3513|    243|            if (size < 0) {
  ------------------
  |  Branch (3513:17): [True: 1, False: 242]
  ------------------
 3514|      1|               ogs_error("ogs_nas_5gs_decode_ip_header_compression_configuration() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3515|      1|               return size;
 3516|      1|            }
 3517|       |
 3518|    242|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1161|    242|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<7)
  ------------------
 3519|    242|            decoded += size;
 3520|    242|            break;
 3521|    261|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_DS_TT_ETHERNET_PORT_MAC_ADDRESS_TYPE:
  ------------------
  |  | 1180|    261|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_DS_TT_ETHERNET_PORT_MAC_ADDRESS_TYPE 0x6E
  ------------------
  |  Branch (3521:9): [True: 261, False: 14.9k]
  ------------------
 3522|    261|            size = ogs_nas_5gs_decode_ds_tt_ethernet_port_mac_address(&pdu_session_establishment_request->ds_tt_ethernet_port_mac_address, pkbuf);
 3523|    261|            if (size < 0) {
  ------------------
  |  Branch (3523:17): [True: 13, False: 248]
  ------------------
 3524|     13|               ogs_error("ogs_nas_5gs_decode_ds_tt_ethernet_port_mac_address() failed");
  ------------------
  |  |   36|     13|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     13|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     13|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     13|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     13|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     13|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3525|     13|               return size;
 3526|     13|            }
 3527|       |
 3528|    248|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_DS_TT_ETHERNET_PORT_MAC_ADDRESS_PRESENT;
  ------------------
  |  | 1162|    248|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_DS_TT_ETHERNET_PORT_MAC_ADDRESS_PRESENT ((uint64_t)1<<8)
  ------------------
 3529|    248|            decoded += size;
 3530|    248|            break;
 3531|    205|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_UE_DS_TT_RESIDENCE_TIME_TYPE:
  ------------------
  |  | 1181|    205|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_UE_DS_TT_RESIDENCE_TIME_TYPE 0x6F
  ------------------
  |  Branch (3531:9): [True: 205, False: 14.9k]
  ------------------
 3532|    205|            size = ogs_nas_5gs_decode_ue_ds_tt_residence_time(&pdu_session_establishment_request->ue_ds_tt_residence_time, pkbuf);
 3533|    205|            if (size < 0) {
  ------------------
  |  Branch (3533:17): [True: 4, False: 201]
  ------------------
 3534|      4|               ogs_error("ogs_nas_5gs_decode_ue_ds_tt_residence_time() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3535|      4|               return size;
 3536|      4|            }
 3537|       |
 3538|    201|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_UE_DS_TT_RESIDENCE_TIME_PRESENT;
  ------------------
  |  | 1163|    201|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_UE_DS_TT_RESIDENCE_TIME_PRESENT ((uint64_t)1<<9)
  ------------------
 3539|    201|            decoded += size;
 3540|    201|            break;
 3541|    204|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE:
  ------------------
  |  | 1182|    204|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE 0x74
  ------------------
  |  Branch (3541:9): [True: 204, False: 14.9k]
  ------------------
 3542|    204|            size = ogs_nas_5gs_decode_port_management_information_container(&pdu_session_establishment_request->port_management_information_container, pkbuf);
 3543|    204|            if (size < 0) {
  ------------------
  |  Branch (3543:17): [True: 3, False: 201]
  ------------------
 3544|      3|               ogs_error("ogs_nas_5gs_decode_port_management_information_container() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3545|      3|               return size;
 3546|      3|            }
 3547|       |
 3548|    201|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT;
  ------------------
  |  | 1164|    201|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT ((uint64_t)1<<10)
  ------------------
 3549|    201|            decoded += size;
 3550|    201|            break;
 3551|    334|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1183|    334|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x1F
  ------------------
  |  Branch (3551:9): [True: 334, False: 14.8k]
  ------------------
 3552|    334|            size = ogs_nas_5gs_decode_ethernet_header_compression_configuration(&pdu_session_establishment_request->ethernet_header_compression_configuration, pkbuf);
 3553|    334|            if (size < 0) {
  ------------------
  |  Branch (3553:17): [True: 2, False: 332]
  ------------------
 3554|      2|               ogs_error("ogs_nas_5gs_decode_ethernet_header_compression_configuration() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3555|      2|               return size;
 3556|      2|            }
 3557|       |
 3558|    332|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1165|    332|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<11)
  ------------------
 3559|    332|            decoded += size;
 3560|    332|            break;
 3561|    250|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SUGGESTED_INTERFACE_IDENTIFIER_TYPE:
  ------------------
  |  | 1184|    250|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SUGGESTED_INTERFACE_IDENTIFIER_TYPE 0x29
  ------------------
  |  Branch (3561:9): [True: 250, False: 14.9k]
  ------------------
 3562|    250|            size = ogs_nas_5gs_decode_pdu_address(&pdu_session_establishment_request->suggested_interface_identifier, pkbuf);
 3563|    250|            if (size < 0) {
  ------------------
  |  Branch (3563:17): [True: 5, False: 245]
  ------------------
 3564|      5|               ogs_error("ogs_nas_5gs_decode_pdu_address() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3565|      5|               return size;
 3566|      5|            }
 3567|       |
 3568|    245|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SUGGESTED_INTERFACE_IDENTIFIER_PRESENT;
  ------------------
  |  | 1166|    245|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SUGGESTED_INTERFACE_IDENTIFIER_PRESENT ((uint64_t)1<<12)
  ------------------
 3569|    245|            decoded += size;
 3570|    245|            break;
 3571|    196|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  | 1185|    196|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (3571:9): [True: 196, False: 14.9k]
  ------------------
 3572|    196|            size = ogs_nas_5gs_decode_service_level_aa_container(&pdu_session_establishment_request->service_level_aa_container, pkbuf);
 3573|    196|            if (size < 0) {
  ------------------
  |  Branch (3573:17): [True: 1, False: 195]
  ------------------
 3574|      1|               ogs_error("ogs_nas_5gs_decode_service_level_aa_container() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3575|      1|               return size;
 3576|      1|            }
 3577|       |
 3578|    195|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  | 1167|    195|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<13)
  ------------------
 3579|    195|            decoded += size;
 3580|    195|            break;
 3581|    211|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_REQUESTED_MBS_CONTAINER_TYPE:
  ------------------
  |  | 1186|    211|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_REQUESTED_MBS_CONTAINER_TYPE 0x70
  ------------------
  |  Branch (3581:9): [True: 211, False: 14.9k]
  ------------------
 3582|    211|            size = ogs_nas_5gs_decode_requested_mbs_container(&pdu_session_establishment_request->requested_mbs_container, pkbuf);
 3583|    211|            if (size < 0) {
  ------------------
  |  Branch (3583:17): [True: 10, False: 201]
  ------------------
 3584|     10|               ogs_error("ogs_nas_5gs_decode_requested_mbs_container() failed");
  ------------------
  |  |   36|     10|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     10|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     10|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     10|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     10|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     10|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3585|     10|               return size;
 3586|     10|            }
 3587|       |
 3588|    201|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_REQUESTED_MBS_CONTAINER_PRESENT;
  ------------------
  |  | 1168|    201|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_REQUESTED_MBS_CONTAINER_PRESENT ((uint64_t)1<<14)
  ------------------
 3589|    201|            decoded += size;
 3590|    201|            break;
 3591|    568|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_PAIR_ID_TYPE:
  ------------------
  |  | 1187|    568|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_PAIR_ID_TYPE 0x34
  ------------------
  |  Branch (3591:9): [True: 568, False: 14.6k]
  ------------------
 3592|    568|            size = ogs_nas_5gs_decode_pdu_session_pair_id(&pdu_session_establishment_request->pdu_session_pair_id, pkbuf);
 3593|    568|            if (size < 0) {
  ------------------
  |  Branch (3593:17): [True: 6, False: 562]
  ------------------
 3594|      6|               ogs_error("ogs_nas_5gs_decode_pdu_session_pair_id() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3595|      6|               return size;
 3596|      6|            }
 3597|       |
 3598|    562|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_PAIR_ID_PRESENT;
  ------------------
  |  | 1169|    562|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_PAIR_ID_PRESENT ((uint64_t)1<<15)
  ------------------
 3599|    562|            decoded += size;
 3600|    562|            break;
 3601|    274|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_RSN_TYPE:
  ------------------
  |  | 1188|    274|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_RSN_TYPE 0x35
  ------------------
  |  Branch (3601:9): [True: 274, False: 14.8k]
  ------------------
 3602|    274|            size = ogs_nas_5gs_decode_rsn(&pdu_session_establishment_request->rsn, pkbuf);
 3603|    274|            if (size < 0) {
  ------------------
  |  Branch (3603:17): [True: 10, False: 264]
  ------------------
 3604|     10|               ogs_error("ogs_nas_5gs_decode_rsn() failed");
  ------------------
  |  |   36|     10|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     10|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     10|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     10|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     10|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     10|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3605|     10|               return size;
 3606|     10|            }
 3607|       |
 3608|    264|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_RSN_PRESENT;
  ------------------
  |  | 1170|    264|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_RSN_PRESENT ((uint64_t)1<<16)
  ------------------
 3609|    264|            decoded += size;
 3610|    264|            break;
 3611|    232|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_TYPE:
  ------------------
  |  | 1189|    232|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_TYPE 0x36
  ------------------
  |  Branch (3611:9): [True: 232, False: 14.9k]
  ------------------
 3612|    232|            size = ogs_nas_5gs_decode_ursp_rule_enforcement_reports(&pdu_session_establishment_request->ursp_rule_enforcement_reports, pkbuf);
 3613|    232|            if (size < 0) {
  ------------------
  |  Branch (3613:17): [True: 2, False: 230]
  ------------------
 3614|      2|               ogs_error("ogs_nas_5gs_decode_ursp_rule_enforcement_reports() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3615|      2|               return size;
 3616|      2|            }
 3617|       |
 3618|    230|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_PRESENT;
  ------------------
  |  | 1171|    230|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_PRESENT ((uint64_t)1<<17)
  ------------------
 3619|    230|            decoded += size;
 3620|    230|            break;
 3621|  9.76k|        default:
  ------------------
  |  Branch (3621:9): [True: 9.76k, False: 5.41k]
  ------------------
 3622|  9.76k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  9.76k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  9.76k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  9.76k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  9.76k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  9.76k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  9.76k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3623|  9.76k|            break;
 3624|  15.1k|        }
 3625|  15.1k|    }
 3626|       |
 3627|    239|    return decoded;
 3628|    303|}
ogs_nas_5gs_decode_pdu_session_establishment_accept:
 3631|    368|{
 3632|    368|    ogs_nas_5gs_pdu_session_establishment_accept_t *pdu_session_establishment_accept = &message->gsm.pdu_session_establishment_accept;
 3633|    368|    int decoded = 0;
 3634|    368|    int size = 0;
 3635|       |
 3636|    368|    ogs_trace("[NAS] Decode PDU_SESSION_ESTABLISHMENT_ACCEPT\n");
  ------------------
  |  |   40|    368|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    368|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    368|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    368|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    368|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    368|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3637|       |
 3638|    368|    size = ogs_nas_5gs_decode_pdu_session_type(&pdu_session_establishment_accept->selected_pdu_session_type, pkbuf);
 3639|    368|    if (size < 0) {
  ------------------
  |  Branch (3639:9): [True: 1, False: 367]
  ------------------
 3640|      1|        ogs_error("ogs_nas_5gs_decode_pdu_session_type() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3641|      1|        return size;
 3642|      1|    }
 3643|       |
 3644|    367|    decoded += size;
 3645|       |
 3646|    367|    size = ogs_nas_5gs_decode_qos_rules(&pdu_session_establishment_accept->authorized_qos_rules, pkbuf);
 3647|    367|    if (size < 0) {
  ------------------
  |  Branch (3647:9): [True: 26, False: 341]
  ------------------
 3648|     26|        ogs_error("ogs_nas_5gs_decode_qos_rules() failed");
  ------------------
  |  |   36|     26|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     26|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     26|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     26|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     26|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     26|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3649|     26|        return size;
 3650|     26|    }
 3651|       |
 3652|    341|    decoded += size;
 3653|       |
 3654|    341|    size = ogs_nas_5gs_decode_session_ambr(&pdu_session_establishment_accept->session_ambr, pkbuf);
 3655|    341|    if (size < 0) {
  ------------------
  |  Branch (3655:9): [True: 7, False: 334]
  ------------------
 3656|      7|        ogs_error("ogs_nas_5gs_decode_session_ambr() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3657|      7|        return size;
 3658|      7|    }
 3659|       |
 3660|    334|    decoded += size;
 3661|       |
 3662|  10.0k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (3662:12): [True: 9.74k, False: 289]
  ------------------
 3663|  9.74k|        uint8_t *buffer = pkbuf->data;
 3664|  9.74k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (3664:24): [True: 2.02k, False: 7.71k]
  ------------------
 3665|       |
 3666|  9.74k|        size = sizeof(uint8_t);
 3667|  9.74k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3667:13): [True: 0, False: 9.74k]
  ------------------
 3668|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3669|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 3670|      0|        }
 3671|  9.74k|        decoded += size;
 3672|       |
 3673|  9.74k|        switch(type) {
 3674|    200|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_CAUSE_TYPE:
  ------------------
  |  | 1242|    200|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_CAUSE_TYPE 0x59
  ------------------
  |  Branch (3674:9): [True: 200, False: 9.54k]
  ------------------
 3675|    200|            size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_establishment_accept->gsm_cause, pkbuf);
 3676|    200|            if (size < 0) {
  ------------------
  |  Branch (3676:17): [True: 1, False: 199]
  ------------------
 3677|      1|               ogs_error("ogs_nas_5gs_decode_5gsm_cause() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3678|      1|               return size;
 3679|      1|            }
 3680|       |
 3681|    199|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_CAUSE_PRESENT;
  ------------------
  |  | 1221|    199|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_CAUSE_PRESENT ((uint64_t)1<<0)
  ------------------
 3682|    199|            decoded += size;
 3683|    199|            break;
 3684|    210|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_PDU_ADDRESS_TYPE:
  ------------------
  |  | 1243|    210|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_PDU_ADDRESS_TYPE 0x29
  ------------------
  |  Branch (3684:9): [True: 210, False: 9.53k]
  ------------------
 3685|    210|            size = ogs_nas_5gs_decode_pdu_address(&pdu_session_establishment_accept->pdu_address, pkbuf);
 3686|    210|            if (size < 0) {
  ------------------
  |  Branch (3686:17): [True: 3, False: 207]
  ------------------
 3687|      3|               ogs_error("ogs_nas_5gs_decode_pdu_address() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3688|      3|               return size;
 3689|      3|            }
 3690|       |
 3691|    207|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_PDU_ADDRESS_PRESENT;
  ------------------
  |  | 1222|    207|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_PDU_ADDRESS_PRESENT ((uint64_t)1<<1)
  ------------------
 3692|    207|            decoded += size;
 3693|    207|            break;
 3694|    196|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RQ_TIMER_VALUE_TYPE:
  ------------------
  |  | 1244|    196|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RQ_TIMER_VALUE_TYPE 0x56
  ------------------
  |  Branch (3694:9): [True: 196, False: 9.54k]
  ------------------
 3695|    196|            size = ogs_nas_5gs_decode_gprs_timer(&pdu_session_establishment_accept->rq_timer_value, pkbuf);
 3696|    196|            if (size < 0) {
  ------------------
  |  Branch (3696:17): [True: 1, False: 195]
  ------------------
 3697|      1|               ogs_error("ogs_nas_5gs_decode_gprs_timer() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3698|      1|               return size;
 3699|      1|            }
 3700|       |
 3701|    195|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RQ_TIMER_VALUE_PRESENT;
  ------------------
  |  | 1223|    195|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RQ_TIMER_VALUE_PRESENT ((uint64_t)1<<2)
  ------------------
 3702|    195|            decoded += size;
 3703|    195|            break;
 3704|    303|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_S_NSSAI_TYPE:
  ------------------
  |  | 1245|    303|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_S_NSSAI_TYPE 0x22
  ------------------
  |  Branch (3704:9): [True: 303, False: 9.43k]
  ------------------
 3705|    303|            size = ogs_nas_5gs_decode_s_nssai(&pdu_session_establishment_accept->s_nssai, pkbuf);
 3706|    303|            if (size < 0) {
  ------------------
  |  Branch (3706:17): [True: 2, False: 301]
  ------------------
 3707|      2|               ogs_error("ogs_nas_5gs_decode_s_nssai() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3708|      2|               return size;
 3709|      2|            }
 3710|       |
 3711|    301|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_S_NSSAI_PRESENT;
  ------------------
  |  | 1224|    301|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_S_NSSAI_PRESENT ((uint64_t)1<<3)
  ------------------
 3712|    301|            decoded += size;
 3713|    301|            break;
 3714|    437|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ALWAYS_ON_PDU_SESSION_INDICATION_TYPE:
  ------------------
  |  | 1246|    437|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ALWAYS_ON_PDU_SESSION_INDICATION_TYPE 0x80
  ------------------
  |  Branch (3714:9): [True: 437, False: 9.30k]
  ------------------
 3715|    437|            decoded--;
 3716|    437|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    437|    do { \
  |  |  114|    437|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    437|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 437, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    437|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|    437|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 437]
  |  |  ------------------
  ------------------
 3717|    437|            size = ogs_nas_5gs_decode_always_on_pdu_session_indication(&pdu_session_establishment_accept->always_on_pdu_session_indication, pkbuf);
 3718|    437|            if (size < 0) {
  ------------------
  |  Branch (3718:17): [True: 0, False: 437]
  ------------------
 3719|      0|               ogs_error("ogs_nas_5gs_decode_always_on_pdu_session_indication() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3720|      0|               return size;
 3721|      0|            }
 3722|       |
 3723|    437|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ALWAYS_ON_PDU_SESSION_INDICATION_PRESENT;
  ------------------
  |  | 1225|    437|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ALWAYS_ON_PDU_SESSION_INDICATION_PRESENT ((uint64_t)1<<4)
  ------------------
 3724|    437|            decoded += size;
 3725|    437|            break;
 3726|    224|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_MAPPED_EPS_BEARER_CONTEXTS_TYPE:
  ------------------
  |  | 1247|    224|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_MAPPED_EPS_BEARER_CONTEXTS_TYPE 0x75
  ------------------
  |  Branch (3726:9): [True: 224, False: 9.51k]
  ------------------
 3727|    224|            size = ogs_nas_5gs_decode_mapped_eps_bearer_contexts(&pdu_session_establishment_accept->mapped_eps_bearer_contexts, pkbuf);
 3728|    224|            if (size < 0) {
  ------------------
  |  Branch (3728:17): [True: 2, False: 222]
  ------------------
 3729|      2|               ogs_error("ogs_nas_5gs_decode_mapped_eps_bearer_contexts() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3730|      2|               return size;
 3731|      2|            }
 3732|       |
 3733|    222|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_MAPPED_EPS_BEARER_CONTEXTS_PRESENT;
  ------------------
  |  | 1226|    222|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_MAPPED_EPS_BEARER_CONTEXTS_PRESENT ((uint64_t)1<<5)
  ------------------
 3734|    222|            decoded += size;
 3735|    222|            break;
 3736|    196|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_EAP_MESSAGE_TYPE:
  ------------------
  |  | 1248|    196|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (3736:9): [True: 196, False: 9.54k]
  ------------------
 3737|    196|            size = ogs_nas_5gs_decode_eap_message(&pdu_session_establishment_accept->eap_message, pkbuf);
 3738|    196|            if (size < 0) {
  ------------------
  |  Branch (3738:17): [True: 1, False: 195]
  ------------------
 3739|      1|               ogs_error("ogs_nas_5gs_decode_eap_message() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3740|      1|               return size;
 3741|      1|            }
 3742|       |
 3743|    195|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_EAP_MESSAGE_PRESENT;
  ------------------
  |  | 1227|    195|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_EAP_MESSAGE_PRESENT ((uint64_t)1<<6)
  ------------------
 3744|    195|            decoded += size;
 3745|    195|            break;
 3746|    206|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_AUTHORIZED_QOS_FLOW_DESCRIPTIONS_TYPE:
  ------------------
  |  | 1249|    206|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_AUTHORIZED_QOS_FLOW_DESCRIPTIONS_TYPE 0x79
  ------------------
  |  Branch (3746:9): [True: 206, False: 9.53k]
  ------------------
 3747|    206|            size = ogs_nas_5gs_decode_qos_flow_descriptions(&pdu_session_establishment_accept->authorized_qos_flow_descriptions, pkbuf);
 3748|    206|            if (size < 0) {
  ------------------
  |  Branch (3748:17): [True: 1, False: 205]
  ------------------
 3749|      1|               ogs_error("ogs_nas_5gs_decode_qos_flow_descriptions() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3750|      1|               return size;
 3751|      1|            }
 3752|       |
 3753|    205|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_AUTHORIZED_QOS_FLOW_DESCRIPTIONS_PRESENT;
  ------------------
  |  | 1228|    205|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_AUTHORIZED_QOS_FLOW_DESCRIPTIONS_PRESENT ((uint64_t)1<<7)
  ------------------
 3754|    205|            decoded += size;
 3755|    205|            break;
 3756|    236|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1250|    236|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (3756:9): [True: 236, False: 9.50k]
  ------------------
 3757|    236|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_establishment_accept->extended_protocol_configuration_options, pkbuf);
 3758|    236|            if (size < 0) {
  ------------------
  |  Branch (3758:17): [True: 2, False: 234]
  ------------------
 3759|      2|               ogs_error("ogs_nas_5gs_decode_extended_protocol_configuration_options() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3760|      2|               return size;
 3761|      2|            }
 3762|       |
 3763|    234|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1229|    234|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<8)
  ------------------
 3764|    234|            decoded += size;
 3765|    234|            break;
 3766|    713|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_DNN_TYPE:
  ------------------
  |  | 1251|    713|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_DNN_TYPE 0x25
  ------------------
  |  Branch (3766:9): [True: 713, False: 9.02k]
  ------------------
 3767|    713|            size = ogs_nas_5gs_decode_dnn(&pdu_session_establishment_accept->dnn, pkbuf);
 3768|    713|            if (size < 0) {
  ------------------
  |  Branch (3768:17): [True: 1, False: 712]
  ------------------
 3769|      1|               ogs_error("ogs_nas_5gs_decode_dnn() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3770|      1|               return size;
 3771|      1|            }
 3772|       |
 3773|    712|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_DNN_PRESENT;
  ------------------
  |  | 1230|    712|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_DNN_PRESENT ((uint64_t)1<<9)
  ------------------
 3774|    712|            decoded += size;
 3775|    712|            break;
 3776|    209|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_NETWORK_FEATURE_SUPPORT_TYPE:
  ------------------
  |  | 1252|    209|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_NETWORK_FEATURE_SUPPORT_TYPE 0x17
  ------------------
  |  Branch (3776:9): [True: 209, False: 9.53k]
  ------------------
 3777|    209|            size = ogs_nas_5gs_decode_5gsm_network_feature_support(&pdu_session_establishment_accept->gsm_network_feature_support, pkbuf);
 3778|    209|            if (size < 0) {
  ------------------
  |  Branch (3778:17): [True: 3, False: 206]
  ------------------
 3779|      3|               ogs_error("ogs_nas_5gs_decode_5gsm_network_feature_support() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3780|      3|               return size;
 3781|      3|            }
 3782|       |
 3783|    206|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_NETWORK_FEATURE_SUPPORT_PRESENT;
  ------------------
  |  | 1231|    206|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_NETWORK_FEATURE_SUPPORT_PRESENT ((uint64_t)1<<10)
  ------------------
 3784|    206|            decoded += size;
 3785|    206|            break;
 3786|    195|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVING_PLMN_RATE_CONTROL_TYPE:
  ------------------
  |  | 1253|    195|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVING_PLMN_RATE_CONTROL_TYPE 0x18
  ------------------
  |  Branch (3786:9): [True: 195, False: 9.54k]
  ------------------
 3787|    195|            size = ogs_nas_5gs_decode_serving_plmn_rate_control(&pdu_session_establishment_accept->serving_plmn_rate_control, pkbuf);
 3788|    195|            if (size < 0) {
  ------------------
  |  Branch (3788:17): [True: 1, False: 194]
  ------------------
 3789|      1|               ogs_error("ogs_nas_5gs_decode_serving_plmn_rate_control() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3790|      1|               return size;
 3791|      1|            }
 3792|       |
 3793|    194|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVING_PLMN_RATE_CONTROL_PRESENT;
  ------------------
  |  | 1232|    194|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVING_PLMN_RATE_CONTROL_PRESENT ((uint64_t)1<<11)
  ------------------
 3794|    194|            decoded += size;
 3795|    194|            break;
 3796|    225|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ATSSS_CONTAINER_TYPE:
  ------------------
  |  | 1254|    225|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ATSSS_CONTAINER_TYPE 0x77
  ------------------
  |  Branch (3796:9): [True: 225, False: 9.51k]
  ------------------
 3797|    225|            size = ogs_nas_5gs_decode_atsss_container(&pdu_session_establishment_accept->atsss_container, pkbuf);
 3798|    225|            if (size < 0) {
  ------------------
  |  Branch (3798:17): [True: 3, False: 222]
  ------------------
 3799|      3|               ogs_error("ogs_nas_5gs_decode_atsss_container() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3800|      3|               return size;
 3801|      3|            }
 3802|       |
 3803|    222|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ATSSS_CONTAINER_PRESENT;
  ------------------
  |  | 1233|    222|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ATSSS_CONTAINER_PRESENT ((uint64_t)1<<12)
  ------------------
 3804|    222|            decoded += size;
 3805|    222|            break;
 3806|    524|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_CONTROL_PLANE_ONLY_INDICATION_TYPE:
  ------------------
  |  | 1255|    524|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_CONTROL_PLANE_ONLY_INDICATION_TYPE 0xC0
  ------------------
  |  Branch (3806:9): [True: 524, False: 9.21k]
  ------------------
 3807|    524|            decoded--;
 3808|    524|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    524|    do { \
  |  |  114|    524|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    524|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 524, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    524|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|    524|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 524]
  |  |  ------------------
  ------------------
 3809|    524|            size = ogs_nas_5gs_decode_control_plane_only_indication(&pdu_session_establishment_accept->control_plane_only_indication, pkbuf);
 3810|    524|            if (size < 0) {
  ------------------
  |  Branch (3810:17): [True: 0, False: 524]
  ------------------
 3811|      0|               ogs_error("ogs_nas_5gs_decode_control_plane_only_indication() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3812|      0|               return size;
 3813|      0|            }
 3814|       |
 3815|    524|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_CONTROL_PLANE_ONLY_INDICATION_PRESENT;
  ------------------
  |  | 1234|    524|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_CONTROL_PLANE_ONLY_INDICATION_PRESENT ((uint64_t)1<<13)
  ------------------
 3816|    524|            decoded += size;
 3817|    524|            break;
 3818|    296|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1256|    296|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x66
  ------------------
  |  Branch (3818:9): [True: 296, False: 9.44k]
  ------------------
 3819|    296|            size = ogs_nas_5gs_decode_ip_header_compression_configuration(&pdu_session_establishment_accept->ip_header_compression_configuration, pkbuf);
 3820|    296|            if (size < 0) {
  ------------------
  |  Branch (3820:17): [True: 1, False: 295]
  ------------------
 3821|      1|               ogs_error("ogs_nas_5gs_decode_ip_header_compression_configuration() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3822|      1|               return size;
 3823|      1|            }
 3824|       |
 3825|    295|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1235|    295|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<14)
  ------------------
 3826|    295|            decoded += size;
 3827|    295|            break;
 3828|    198|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1257|    198|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x1F
  ------------------
  |  Branch (3828:9): [True: 198, False: 9.54k]
  ------------------
 3829|    198|            size = ogs_nas_5gs_decode_ethernet_header_compression_configuration(&pdu_session_establishment_accept->ethernet_header_compression_configuration, pkbuf);
 3830|    198|            if (size < 0) {
  ------------------
  |  Branch (3830:17): [True: 1, False: 197]
  ------------------
 3831|      1|               ogs_error("ogs_nas_5gs_decode_ethernet_header_compression_configuration() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3832|      1|               return size;
 3833|      1|            }
 3834|       |
 3835|    197|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1236|    197|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<15)
  ------------------
 3836|    197|            decoded += size;
 3837|    197|            break;
 3838|    197|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  | 1258|    197|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (3838:9): [True: 197, False: 9.54k]
  ------------------
 3839|    197|            size = ogs_nas_5gs_decode_service_level_aa_container(&pdu_session_establishment_accept->service_level_aa_container, pkbuf);
 3840|    197|            if (size < 0) {
  ------------------
  |  Branch (3840:17): [True: 2, False: 195]
  ------------------
 3841|      2|               ogs_error("ogs_nas_5gs_decode_service_level_aa_container() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3842|      2|               return size;
 3843|      2|            }
 3844|       |
 3845|    195|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  | 1237|    195|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<16)
  ------------------
 3846|    195|            decoded += size;
 3847|    195|            break;
 3848|    214|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RECEIVED_MBS_CONTAINER_TYPE:
  ------------------
  |  | 1259|    214|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RECEIVED_MBS_CONTAINER_TYPE 0x71
  ------------------
  |  Branch (3848:9): [True: 214, False: 9.52k]
  ------------------
 3849|    214|            size = ogs_nas_5gs_decode_received_mbs_container(&pdu_session_establishment_accept->received_mbs_container, pkbuf);
 3850|    214|            if (size < 0) {
  ------------------
  |  Branch (3850:17): [True: 3, False: 211]
  ------------------
 3851|      3|               ogs_error("ogs_nas_5gs_decode_received_mbs_container() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3852|      3|               return size;
 3853|      3|            }
 3854|       |
 3855|    211|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RECEIVED_MBS_CONTAINER_PRESENT;
  ------------------
  |  | 1238|    211|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RECEIVED_MBS_CONTAINER_PRESENT ((uint64_t)1<<17)
  ------------------
 3856|    211|            decoded += size;
 3857|    211|            break;
 3858|    205|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_N3QAI_TYPE:
  ------------------
  |  | 1260|    205|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_N3QAI_TYPE 0x70
  ------------------
  |  Branch (3858:9): [True: 205, False: 9.53k]
  ------------------
 3859|    205|            size = ogs_nas_5gs_decode_n3qai(&pdu_session_establishment_accept->n3qai, pkbuf);
 3860|    205|            if (size < 0) {
  ------------------
  |  Branch (3860:17): [True: 7, False: 198]
  ------------------
 3861|      7|               ogs_error("ogs_nas_5gs_decode_n3qai() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3862|      7|               return size;
 3863|      7|            }
 3864|       |
 3865|    198|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_N3QAI_PRESENT;
  ------------------
  |  | 1239|    198|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_N3QAI_PRESENT ((uint64_t)1<<18)
  ------------------
 3866|    198|            decoded += size;
 3867|    198|            break;
 3868|    218|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_PROTOCOL_DESCRIPTION_TYPE:
  ------------------
  |  | 1261|    218|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_PROTOCOL_DESCRIPTION_TYPE 0x73
  ------------------
  |  Branch (3868:9): [True: 218, False: 9.52k]
  ------------------
 3869|    218|            size = ogs_nas_5gs_decode_protocol_description(&pdu_session_establishment_accept->protocol_description, pkbuf);
 3870|    218|            if (size < 0) {
  ------------------
  |  Branch (3870:17): [True: 9, False: 209]
  ------------------
 3871|      9|               ogs_error("ogs_nas_5gs_decode_protocol_description() failed");
  ------------------
  |  |   36|      9|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      9|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      9|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      9|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      9|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      9|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3872|      9|               return size;
 3873|      9|            }
 3874|       |
 3875|    209|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_PROTOCOL_DESCRIPTION_PRESENT;
  ------------------
  |  | 1240|    209|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_PROTOCOL_DESCRIPTION_PRESENT ((uint64_t)1<<19)
  ------------------
 3876|    209|            decoded += size;
 3877|    209|            break;
 3878|    198|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ECN_MARKING_FOR_L4S_INDICATION_TYPE:
  ------------------
  |  | 1262|    198|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ECN_MARKING_FOR_L4S_INDICATION_TYPE 0x38
  ------------------
  |  Branch (3878:9): [True: 198, False: 9.54k]
  ------------------
 3879|    198|            size = ogs_nas_5gs_decode_ecn_marking_for_l4s_indication(&pdu_session_establishment_accept->ecn_marking_for_l4s_indication, pkbuf);
 3880|    198|            if (size < 0) {
  ------------------
  |  Branch (3880:17): [True: 1, False: 197]
  ------------------
 3881|      1|               ogs_error("ogs_nas_5gs_decode_ecn_marking_for_l4s_indication() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3882|      1|               return size;
 3883|      1|            }
 3884|       |
 3885|    197|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ECN_MARKING_FOR_L4S_INDICATION_PRESENT;
  ------------------
  |  | 1241|    197|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ECN_MARKING_FOR_L4S_INDICATION_PRESENT ((uint64_t)1<<20)
  ------------------
 3886|    197|            decoded += size;
 3887|    197|            break;
 3888|  4.14k|        default:
  ------------------
  |  Branch (3888:9): [True: 4.14k, False: 5.60k]
  ------------------
 3889|  4.14k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  4.14k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  4.14k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  4.14k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  4.14k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  4.14k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  4.14k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3890|  4.14k|            break;
 3891|  9.74k|        }
 3892|  9.74k|    }
 3893|       |
 3894|    289|    return decoded;
 3895|    334|}
ogs_nas_5gs_decode_pdu_session_establishment_reject:
 3898|    132|{
 3899|    132|    ogs_nas_5gs_pdu_session_establishment_reject_t *pdu_session_establishment_reject = &message->gsm.pdu_session_establishment_reject;
 3900|    132|    int decoded = 0;
 3901|    132|    int size = 0;
 3902|       |
 3903|    132|    ogs_trace("[NAS] Decode PDU_SESSION_ESTABLISHMENT_REJECT\n");
  ------------------
  |  |   40|    132|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    132|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    132|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    132|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    132|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    132|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3904|       |
 3905|    132|    size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_establishment_reject->gsm_cause, pkbuf);
 3906|    132|    if (size < 0) {
  ------------------
  |  Branch (3906:9): [True: 1, False: 131]
  ------------------
 3907|      1|        ogs_error("ogs_nas_5gs_decode_5gsm_cause() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3908|      1|        return size;
 3909|      1|    }
 3910|       |
 3911|    131|    decoded += size;
 3912|       |
 3913|  5.47k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (3913:12): [True: 5.35k, False: 113]
  ------------------
 3914|  5.35k|        uint8_t *buffer = pkbuf->data;
 3915|  5.35k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (3915:24): [True: 1.79k, False: 3.55k]
  ------------------
 3916|       |
 3917|  5.35k|        size = sizeof(uint8_t);
 3918|  5.35k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3918:13): [True: 0, False: 5.35k]
  ------------------
 3919|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3920|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 3921|      0|        }
 3922|  5.35k|        decoded += size;
 3923|       |
 3924|  5.35k|        switch(type) {
 3925|    195|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_BACK_OFF_TIMER_VALUE_TYPE:
  ------------------
  |  | 1307|    195|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_BACK_OFF_TIMER_VALUE_TYPE 0x37
  ------------------
  |  Branch (3925:9): [True: 195, False: 5.16k]
  ------------------
 3926|    195|            size = ogs_nas_5gs_decode_gprs_timer_3(&pdu_session_establishment_reject->back_off_timer_value, pkbuf);
 3927|    195|            if (size < 0) {
  ------------------
  |  Branch (3927:17): [True: 1, False: 194]
  ------------------
 3928|      1|               ogs_error("ogs_nas_5gs_decode_gprs_timer_3() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3929|      1|               return size;
 3930|      1|            }
 3931|       |
 3932|    194|            pdu_session_establishment_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_BACK_OFF_TIMER_VALUE_PRESENT;
  ------------------
  |  | 1299|    194|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_BACK_OFF_TIMER_VALUE_PRESENT ((uint64_t)1<<0)
  ------------------
 3933|    194|            decoded += size;
 3934|    194|            break;
 3935|  1.00k|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ALLOWED_SSC_MODE_TYPE:
  ------------------
  |  | 1308|  1.00k|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ALLOWED_SSC_MODE_TYPE 0xF0
  ------------------
  |  Branch (3935:9): [True: 1.00k, False: 4.35k]
  ------------------
 3936|  1.00k|            decoded--;
 3937|  1.00k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.00k|    do { \
  |  |  114|  1.00k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.00k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.00k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.00k|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|  1.00k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.00k]
  |  |  ------------------
  ------------------
 3938|  1.00k|            size = ogs_nas_5gs_decode_allowed_ssc_mode(&pdu_session_establishment_reject->allowed_ssc_mode, pkbuf);
 3939|  1.00k|            if (size < 0) {
  ------------------
  |  Branch (3939:17): [True: 0, False: 1.00k]
  ------------------
 3940|      0|               ogs_error("ogs_nas_5gs_decode_allowed_ssc_mode() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3941|      0|               return size;
 3942|      0|            }
 3943|       |
 3944|  1.00k|            pdu_session_establishment_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ALLOWED_SSC_MODE_PRESENT;
  ------------------
  |  | 1300|  1.00k|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ALLOWED_SSC_MODE_PRESENT ((uint64_t)1<<1)
  ------------------
 3945|  1.00k|            decoded += size;
 3946|  1.00k|            break;
 3947|    205|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_EAP_MESSAGE_TYPE:
  ------------------
  |  | 1309|    205|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (3947:9): [True: 205, False: 5.15k]
  ------------------
 3948|    205|            size = ogs_nas_5gs_decode_eap_message(&pdu_session_establishment_reject->eap_message, pkbuf);
 3949|    205|            if (size < 0) {
  ------------------
  |  Branch (3949:17): [True: 1, False: 204]
  ------------------
 3950|      1|               ogs_error("ogs_nas_5gs_decode_eap_message() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3951|      1|               return size;
 3952|      1|            }
 3953|       |
 3954|    204|            pdu_session_establishment_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_EAP_MESSAGE_PRESENT;
  ------------------
  |  | 1301|    204|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_EAP_MESSAGE_PRESENT ((uint64_t)1<<2)
  ------------------
 3955|    204|            decoded += size;
 3956|    204|            break;
 3957|    196|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_TYPE:
  ------------------
  |  | 1310|    196|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_TYPE 0x61
  ------------------
  |  Branch (3957:9): [True: 196, False: 5.16k]
  ------------------
 3958|    196|            size = ogs_nas_5gs_decode_5gsm_congestion_re_attempt_indicator(&pdu_session_establishment_reject->gsm_congestion_re_attempt_indicator, pkbuf);
 3959|    196|            if (size < 0) {
  ------------------
  |  Branch (3959:17): [True: 2, False: 194]
  ------------------
 3960|      2|               ogs_error("ogs_nas_5gs_decode_5gsm_congestion_re_attempt_indicator() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3961|      2|               return size;
 3962|      2|            }
 3963|       |
 3964|    194|            pdu_session_establishment_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_PRESENT;
  ------------------
  |  | 1302|    194|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_PRESENT ((uint64_t)1<<3)
  ------------------
 3965|    194|            decoded += size;
 3966|    194|            break;
 3967|    200|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1311|    200|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (3967:9): [True: 200, False: 5.15k]
  ------------------
 3968|    200|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_establishment_reject->extended_protocol_configuration_options, pkbuf);
 3969|    200|            if (size < 0) {
  ------------------
  |  Branch (3969:17): [True: 2, False: 198]
  ------------------
 3970|      2|               ogs_error("ogs_nas_5gs_decode_extended_protocol_configuration_options() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3971|      2|               return size;
 3972|      2|            }
 3973|       |
 3974|    198|            pdu_session_establishment_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1303|    198|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<4)
  ------------------
 3975|    198|            decoded += size;
 3976|    198|            break;
 3977|    206|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_RE_ATTEMPT_INDICATOR_TYPE:
  ------------------
  |  | 1312|    206|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_RE_ATTEMPT_INDICATOR_TYPE 0x1D
  ------------------
  |  Branch (3977:9): [True: 206, False: 5.15k]
  ------------------
 3978|    206|            size = ogs_nas_5gs_decode_re_attempt_indicator(&pdu_session_establishment_reject->re_attempt_indicator, pkbuf);
 3979|    206|            if (size < 0) {
  ------------------
  |  Branch (3979:17): [True: 5, False: 201]
  ------------------
 3980|      5|               ogs_error("ogs_nas_5gs_decode_re_attempt_indicator() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3981|      5|               return size;
 3982|      5|            }
 3983|       |
 3984|    201|            pdu_session_establishment_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_RE_ATTEMPT_INDICATOR_PRESENT;
  ------------------
  |  | 1304|    201|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_RE_ATTEMPT_INDICATOR_PRESENT ((uint64_t)1<<5)
  ------------------
 3985|    201|            decoded += size;
 3986|    201|            break;
 3987|    201|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  | 1313|    201|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (3987:9): [True: 201, False: 5.15k]
  ------------------
 3988|    201|            size = ogs_nas_5gs_decode_service_level_aa_container(&pdu_session_establishment_reject->service_level_aa_container, pkbuf);
 3989|    201|            if (size < 0) {
  ------------------
  |  Branch (3989:17): [True: 1, False: 200]
  ------------------
 3990|      1|               ogs_error("ogs_nas_5gs_decode_service_level_aa_container() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3991|      1|               return size;
 3992|      1|            }
 3993|       |
 3994|    200|            pdu_session_establishment_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  | 1305|    200|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<6)
  ------------------
 3995|    200|            decoded += size;
 3996|    200|            break;
 3997|    217|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ATSSS_CONTAINER_TYPE:
  ------------------
  |  | 1314|    217|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ATSSS_CONTAINER_TYPE 0x77
  ------------------
  |  Branch (3997:9): [True: 217, False: 5.14k]
  ------------------
 3998|    217|            size = ogs_nas_5gs_decode_atsss_container(&pdu_session_establishment_reject->atsss_container, pkbuf);
 3999|    217|            if (size < 0) {
  ------------------
  |  Branch (3999:17): [True: 6, False: 211]
  ------------------
 4000|      6|               ogs_error("ogs_nas_5gs_decode_atsss_container() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4001|      6|               return size;
 4002|      6|            }
 4003|       |
 4004|    211|            pdu_session_establishment_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ATSSS_CONTAINER_PRESENT;
  ------------------
  |  | 1306|    211|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ATSSS_CONTAINER_PRESENT ((uint64_t)1<<7)
  ------------------
 4005|    211|            decoded += size;
 4006|    211|            break;
 4007|  2.93k|        default:
  ------------------
  |  Branch (4007:9): [True: 2.93k, False: 2.42k]
  ------------------
 4008|  2.93k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.93k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.93k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.93k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.93k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.93k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.93k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4009|  2.93k|            break;
 4010|  5.35k|        }
 4011|  5.35k|    }
 4012|       |
 4013|    113|    return decoded;
 4014|    131|}
ogs_nas_5gs_decode_pdu_session_authentication_command:
 4017|     58|{
 4018|     58|    ogs_nas_5gs_pdu_session_authentication_command_t *pdu_session_authentication_command = &message->gsm.pdu_session_authentication_command;
 4019|     58|    int decoded = 0;
 4020|     58|    int size = 0;
 4021|       |
 4022|     58|    ogs_trace("[NAS] Decode PDU_SESSION_AUTHENTICATION_COMMAND\n");
  ------------------
  |  |   40|     58|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     58|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     58|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     58|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     58|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     58|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4023|       |
 4024|     58|    size = ogs_nas_5gs_decode_eap_message(&pdu_session_authentication_command->eap_message, pkbuf);
 4025|     58|    if (size < 0) {
  ------------------
  |  Branch (4025:9): [True: 10, False: 48]
  ------------------
 4026|     10|        ogs_error("ogs_nas_5gs_decode_eap_message() failed");
  ------------------
  |  |   36|     10|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     10|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     10|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     10|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     10|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     10|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4027|     10|        return size;
 4028|     10|    }
 4029|       |
 4030|     48|    decoded += size;
 4031|       |
 4032|  1.63k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4032:12): [True: 1.58k, False: 46]
  ------------------
 4033|  1.58k|        uint8_t *buffer = pkbuf->data;
 4034|  1.58k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4034:24): [True: 470, False: 1.11k]
  ------------------
 4035|       |
 4036|  1.58k|        size = sizeof(uint8_t);
 4037|  1.58k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4037:13): [True: 0, False: 1.58k]
  ------------------
 4038|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4039|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 4040|      0|        }
 4041|  1.58k|        decoded += size;
 4042|       |
 4043|  1.58k|        switch(type) {
 4044|    198|        case OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1337|    198|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4044:9): [True: 198, False: 1.38k]
  ------------------
 4045|    198|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_authentication_command->extended_protocol_configuration_options, pkbuf);
 4046|    198|            if (size < 0) {
  ------------------
  |  Branch (4046:17): [True: 2, False: 196]
  ------------------
 4047|      2|               ogs_error("ogs_nas_5gs_decode_extended_protocol_configuration_options() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4048|      2|               return size;
 4049|      2|            }
 4050|       |
 4051|    196|            pdu_session_authentication_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1336|    196|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<0)
  ------------------
 4052|    196|            decoded += size;
 4053|    196|            break;
 4054|  1.38k|        default:
  ------------------
  |  Branch (4054:9): [True: 1.38k, False: 198]
  ------------------
 4055|  1.38k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.38k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.38k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.38k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.38k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.38k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.38k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4056|  1.38k|            break;
 4057|  1.58k|        }
 4058|  1.58k|    }
 4059|       |
 4060|     46|    return decoded;
 4061|     48|}
ogs_nas_5gs_decode_pdu_session_authentication_complete:
 4064|     67|{
 4065|     67|    ogs_nas_5gs_pdu_session_authentication_complete_t *pdu_session_authentication_complete = &message->gsm.pdu_session_authentication_complete;
 4066|     67|    int decoded = 0;
 4067|     67|    int size = 0;
 4068|       |
 4069|     67|    ogs_trace("[NAS] Decode PDU_SESSION_AUTHENTICATION_COMPLETE\n");
  ------------------
  |  |   40|     67|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     67|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     67|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     67|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     67|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     67|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4070|       |
 4071|     67|    size = ogs_nas_5gs_decode_eap_message(&pdu_session_authentication_complete->eap_message, pkbuf);
 4072|     67|    if (size < 0) {
  ------------------
  |  Branch (4072:9): [True: 6, False: 61]
  ------------------
 4073|      6|        ogs_error("ogs_nas_5gs_decode_eap_message() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4074|      6|        return size;
 4075|      6|    }
 4076|       |
 4077|     61|    decoded += size;
 4078|       |
 4079|  2.83k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4079:12): [True: 2.77k, False: 60]
  ------------------
 4080|  2.77k|        uint8_t *buffer = pkbuf->data;
 4081|  2.77k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4081:24): [True: 840, False: 1.93k]
  ------------------
 4082|       |
 4083|  2.77k|        size = sizeof(uint8_t);
 4084|  2.77k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4084:13): [True: 0, False: 2.77k]
  ------------------
 4085|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4086|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 4087|      0|        }
 4088|  2.77k|        decoded += size;
 4089|       |
 4090|  2.77k|        switch(type) {
 4091|    218|        case OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1353|    218|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4091:9): [True: 218, False: 2.56k]
  ------------------
 4092|    218|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_authentication_complete->extended_protocol_configuration_options, pkbuf);
 4093|    218|            if (size < 0) {
  ------------------
  |  Branch (4093:17): [True: 1, False: 217]
  ------------------
 4094|      1|               ogs_error("ogs_nas_5gs_decode_extended_protocol_configuration_options() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4095|      1|               return size;
 4096|      1|            }
 4097|       |
 4098|    217|            pdu_session_authentication_complete->presencemask |= OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1352|    217|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<0)
  ------------------
 4099|    217|            decoded += size;
 4100|    217|            break;
 4101|  2.56k|        default:
  ------------------
  |  Branch (4101:9): [True: 2.56k, False: 218]
  ------------------
 4102|  2.56k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.56k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.56k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.56k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.56k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.56k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.56k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4103|  2.56k|            break;
 4104|  2.77k|        }
 4105|  2.77k|    }
 4106|       |
 4107|     60|    return decoded;
 4108|     61|}
ogs_nas_5gs_decode_pdu_session_authentication_result:
 4111|     59|{
 4112|     59|    ogs_nas_5gs_pdu_session_authentication_result_t *pdu_session_authentication_result = &message->gsm.pdu_session_authentication_result;
 4113|     59|    int decoded = 0;
 4114|     59|    int size = 0;
 4115|       |
 4116|     59|    ogs_trace("[NAS] Decode PDU_SESSION_AUTHENTICATION_RESULT\n");
  ------------------
  |  |   40|     59|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     59|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     59|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     59|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     59|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     59|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4117|       |
 4118|  1.73k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4118:12): [True: 1.67k, False: 51]
  ------------------
 4119|  1.67k|        uint8_t *buffer = pkbuf->data;
 4120|  1.67k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4120:24): [True: 616, False: 1.06k]
  ------------------
 4121|       |
 4122|  1.67k|        size = sizeof(uint8_t);
 4123|  1.67k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4123:13): [True: 0, False: 1.67k]
  ------------------
 4124|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4125|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 4126|      0|        }
 4127|  1.67k|        decoded += size;
 4128|       |
 4129|  1.67k|        switch(type) {
 4130|    202|        case OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EAP_MESSAGE_TYPE:
  ------------------
  |  | 1370|    202|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (4130:9): [True: 202, False: 1.47k]
  ------------------
 4131|    202|            size = ogs_nas_5gs_decode_eap_message(&pdu_session_authentication_result->eap_message, pkbuf);
 4132|    202|            if (size < 0) {
  ------------------
  |  Branch (4132:17): [True: 1, False: 201]
  ------------------
 4133|      1|               ogs_error("ogs_nas_5gs_decode_eap_message() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4134|      1|               return size;
 4135|      1|            }
 4136|       |
 4137|    201|            pdu_session_authentication_result->presencemask |= OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EAP_MESSAGE_PRESENT;
  ------------------
  |  | 1368|    201|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EAP_MESSAGE_PRESENT ((uint64_t)1<<0)
  ------------------
 4138|    201|            decoded += size;
 4139|    201|            break;
 4140|    209|        case OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1371|    209|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4140:9): [True: 209, False: 1.47k]
  ------------------
 4141|    209|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_authentication_result->extended_protocol_configuration_options, pkbuf);
 4142|    209|            if (size < 0) {
  ------------------
  |  Branch (4142:17): [True: 7, False: 202]
  ------------------
 4143|      7|               ogs_error("ogs_nas_5gs_decode_extended_protocol_configuration_options() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4144|      7|               return size;
 4145|      7|            }
 4146|       |
 4147|    202|            pdu_session_authentication_result->presencemask |= OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1369|    202|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<1)
  ------------------
 4148|    202|            decoded += size;
 4149|    202|            break;
 4150|  1.26k|        default:
  ------------------
  |  Branch (4150:9): [True: 1.26k, False: 411]
  ------------------
 4151|  1.26k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.26k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.26k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.26k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.26k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.26k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.26k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4152|  1.26k|            break;
 4153|  1.67k|        }
 4154|  1.67k|    }
 4155|       |
 4156|     51|    return decoded;
 4157|     59|}
ogs_nas_5gs_decode_pdu_session_modification_request:
 4160|    359|{
 4161|    359|    ogs_nas_5gs_pdu_session_modification_request_t *pdu_session_modification_request = &message->gsm.pdu_session_modification_request;
 4162|    359|    int decoded = 0;
 4163|    359|    int size = 0;
 4164|       |
 4165|    359|    ogs_trace("[NAS] Decode PDU_SESSION_MODIFICATION_REQUEST\n");
  ------------------
  |  |   40|    359|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    359|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    359|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    359|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    359|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    359|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4166|       |
 4167|  12.5k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4167:12): [True: 12.2k, False: 236]
  ------------------
 4168|  12.2k|        uint8_t *buffer = pkbuf->data;
 4169|  12.2k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4169:24): [True: 3.79k, False: 8.48k]
  ------------------
 4170|       |
 4171|  12.2k|        size = sizeof(uint8_t);
 4172|  12.2k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4172:13): [True: 0, False: 12.2k]
  ------------------
 4173|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4174|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 4175|      0|        }
 4176|  12.2k|        decoded += size;
 4177|       |
 4178|  12.2k|        switch(type) {
 4179|    211|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAPABILITY_TYPE:
  ------------------
  |  | 1402|    211|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAPABILITY_TYPE 0x28
  ------------------
  |  Branch (4179:9): [True: 211, False: 12.0k]
  ------------------
 4180|    211|            size = ogs_nas_5gs_decode_5gsm_capability(&pdu_session_modification_request->gsm_capability, pkbuf);
 4181|    211|            if (size < 0) {
  ------------------
  |  Branch (4181:17): [True: 4, False: 207]
  ------------------
 4182|      4|               ogs_error("ogs_nas_5gs_decode_5gsm_capability() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4183|      4|               return size;
 4184|      4|            }
 4185|       |
 4186|    207|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAPABILITY_PRESENT;
  ------------------
  |  | 1385|    207|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAPABILITY_PRESENT ((uint64_t)1<<0)
  ------------------
 4187|    207|            decoded += size;
 4188|    207|            break;
 4189|    229|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAUSE_TYPE:
  ------------------
  |  | 1403|    229|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAUSE_TYPE 0x59
  ------------------
  |  Branch (4189:9): [True: 229, False: 12.0k]
  ------------------
 4190|    229|            size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_modification_request->gsm_cause, pkbuf);
 4191|    229|            if (size < 0) {
  ------------------
  |  Branch (4191:17): [True: 4, False: 225]
  ------------------
 4192|      4|               ogs_error("ogs_nas_5gs_decode_5gsm_cause() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4193|      4|               return size;
 4194|      4|            }
 4195|       |
 4196|    225|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAUSE_PRESENT;
  ------------------
  |  | 1386|    225|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAUSE_PRESENT ((uint64_t)1<<1)
  ------------------
 4197|    225|            decoded += size;
 4198|    225|            break;
 4199|    428|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_TYPE:
  ------------------
  |  | 1404|    428|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_TYPE 0x55
  ------------------
  |  Branch (4199:9): [True: 428, False: 11.8k]
  ------------------
 4200|    428|            size = ogs_nas_5gs_decode_maximum_number_of_supported_packet_filters(&pdu_session_modification_request->maximum_number_of_supported_packet_filters, pkbuf);
 4201|    428|            if (size < 0) {
  ------------------
  |  Branch (4201:17): [True: 5, False: 423]
  ------------------
 4202|      5|               ogs_error("ogs_nas_5gs_decode_maximum_number_of_supported_packet_filters() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4203|      5|               return size;
 4204|      5|            }
 4205|       |
 4206|    423|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_PRESENT;
  ------------------
  |  | 1387|    423|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_PRESENT ((uint64_t)1<<2)
  ------------------
 4207|    423|            decoded += size;
 4208|    423|            break;
 4209|    815|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_TYPE:
  ------------------
  |  | 1405|    815|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_TYPE 0xB0
  ------------------
  |  Branch (4209:9): [True: 815, False: 11.4k]
  ------------------
 4210|    815|            decoded--;
 4211|    815|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    815|    do { \
  |  |  114|    815|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    815|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 815, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    815|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|    815|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 815]
  |  |  ------------------
  ------------------
 4212|    815|            size = ogs_nas_5gs_decode_always_on_pdu_session_requested(&pdu_session_modification_request->always_on_pdu_session_requested, pkbuf);
 4213|    815|            if (size < 0) {
  ------------------
  |  Branch (4213:17): [True: 0, False: 815]
  ------------------
 4214|      0|               ogs_error("ogs_nas_5gs_decode_always_on_pdu_session_requested() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4215|      0|               return size;
 4216|      0|            }
 4217|       |
 4218|    815|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_PRESENT;
  ------------------
  |  | 1388|    815|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_PRESENT ((uint64_t)1<<3)
  ------------------
 4219|    815|            decoded += size;
 4220|    815|            break;
 4221|    207|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_INTEGRITY_PROTECTION_MAXIMUM_DATA_RATE_TYPE:
  ------------------
  |  | 1406|    207|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_INTEGRITY_PROTECTION_MAXIMUM_DATA_RATE_TYPE 0x13
  ------------------
  |  Branch (4221:9): [True: 207, False: 12.0k]
  ------------------
 4222|    207|            size = ogs_nas_5gs_decode_integrity_protection_maximum_data_rate(&pdu_session_modification_request->integrity_protection_maximum_data_rate, pkbuf);
 4223|    207|            if (size < 0) {
  ------------------
  |  Branch (4223:17): [True: 3, False: 204]
  ------------------
 4224|      3|               ogs_error("ogs_nas_5gs_decode_integrity_protection_maximum_data_rate() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4225|      3|               return size;
 4226|      3|            }
 4227|       |
 4228|    204|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_INTEGRITY_PROTECTION_MAXIMUM_DATA_RATE_PRESENT;
  ------------------
  |  | 1389|    204|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_INTEGRITY_PROTECTION_MAXIMUM_DATA_RATE_PRESENT ((uint64_t)1<<4)
  ------------------
 4229|    204|            decoded += size;
 4230|    204|            break;
 4231|    208|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_RULES_TYPE:
  ------------------
  |  | 1407|    208|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_RULES_TYPE 0x7A
  ------------------
  |  Branch (4231:9): [True: 208, False: 12.0k]
  ------------------
 4232|    208|            size = ogs_nas_5gs_decode_qos_rules(&pdu_session_modification_request->requested_qos_rules, pkbuf);
 4233|    208|            if (size < 0) {
  ------------------
  |  Branch (4233:17): [True: 2, False: 206]
  ------------------
 4234|      2|               ogs_error("ogs_nas_5gs_decode_qos_rules() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4235|      2|               return size;
 4236|      2|            }
 4237|       |
 4238|    206|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_RULES_PRESENT;
  ------------------
  |  | 1390|    206|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_RULES_PRESENT ((uint64_t)1<<5)
  ------------------
 4239|    206|            decoded += size;
 4240|    206|            break;
 4241|    341|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_FLOW_DESCRIPTIONS_TYPE:
  ------------------
  |  | 1408|    341|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_FLOW_DESCRIPTIONS_TYPE 0x79
  ------------------
  |  Branch (4241:9): [True: 341, False: 11.9k]
  ------------------
 4242|    341|            size = ogs_nas_5gs_decode_qos_flow_descriptions(&pdu_session_modification_request->requested_qos_flow_descriptions, pkbuf);
 4243|    341|            if (size < 0) {
  ------------------
  |  Branch (4243:17): [True: 17, False: 324]
  ------------------
 4244|     17|               ogs_error("ogs_nas_5gs_decode_qos_flow_descriptions() failed");
  ------------------
  |  |   36|     17|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     17|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     17|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     17|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     17|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     17|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4245|     17|               return size;
 4246|     17|            }
 4247|       |
 4248|    324|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_FLOW_DESCRIPTIONS_PRESENT;
  ------------------
  |  | 1391|    324|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_FLOW_DESCRIPTIONS_PRESENT ((uint64_t)1<<6)
  ------------------
 4249|    324|            decoded += size;
 4250|    324|            break;
 4251|    212|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAPPED_EPS_BEARER_CONTEXTS_TYPE:
  ------------------
  |  | 1409|    212|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAPPED_EPS_BEARER_CONTEXTS_TYPE 0x75
  ------------------
  |  Branch (4251:9): [True: 212, False: 12.0k]
  ------------------
 4252|    212|            size = ogs_nas_5gs_decode_mapped_eps_bearer_contexts(&pdu_session_modification_request->mapped_eps_bearer_contexts, pkbuf);
 4253|    212|            if (size < 0) {
  ------------------
  |  Branch (4253:17): [True: 3, False: 209]
  ------------------
 4254|      3|               ogs_error("ogs_nas_5gs_decode_mapped_eps_bearer_contexts() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4255|      3|               return size;
 4256|      3|            }
 4257|       |
 4258|    209|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAPPED_EPS_BEARER_CONTEXTS_PRESENT;
  ------------------
  |  | 1392|    209|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAPPED_EPS_BEARER_CONTEXTS_PRESENT ((uint64_t)1<<7)
  ------------------
 4259|    209|            decoded += size;
 4260|    209|            break;
 4261|    212|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1410|    212|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4261:9): [True: 212, False: 12.0k]
  ------------------
 4262|    212|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_modification_request->extended_protocol_configuration_options, pkbuf);
 4263|    212|            if (size < 0) {
  ------------------
  |  Branch (4263:17): [True: 5, False: 207]
  ------------------
 4264|      5|               ogs_error("ogs_nas_5gs_decode_extended_protocol_configuration_options() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4265|      5|               return size;
 4266|      5|            }
 4267|       |
 4268|    207|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1393|    207|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<8)
  ------------------
 4269|    207|            decoded += size;
 4270|    207|            break;
 4271|    217|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE:
  ------------------
  |  | 1411|    217|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE 0x74
  ------------------
  |  Branch (4271:9): [True: 217, False: 12.0k]
  ------------------
 4272|    217|            size = ogs_nas_5gs_decode_port_management_information_container(&pdu_session_modification_request->port_management_information_container, pkbuf);
 4273|    217|            if (size < 0) {
  ------------------
  |  Branch (4273:17): [True: 8, False: 209]
  ------------------
 4274|      8|               ogs_error("ogs_nas_5gs_decode_port_management_information_container() failed");
  ------------------
  |  |   36|      8|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      8|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      8|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      8|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      8|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      8|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4275|      8|               return size;
 4276|      8|            }
 4277|       |
 4278|    209|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT;
  ------------------
  |  | 1394|    209|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT ((uint64_t)1<<9)
  ------------------
 4279|    209|            decoded += size;
 4280|    209|            break;
 4281|    288|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1412|    288|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x66
  ------------------
  |  Branch (4281:9): [True: 288, False: 11.9k]
  ------------------
 4282|    288|            size = ogs_nas_5gs_decode_header_compression_configuration(&pdu_session_modification_request->ip_header_compression_configuration, pkbuf);
 4283|    288|            if (size < 0) {
  ------------------
  |  Branch (4283:17): [True: 12, False: 276]
  ------------------
 4284|     12|               ogs_error("ogs_nas_5gs_decode_header_compression_configuration() failed");
  ------------------
  |  |   36|     12|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     12|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     12|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     12|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     12|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     12|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4285|     12|               return size;
 4286|     12|            }
 4287|       |
 4288|    276|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1395|    276|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<10)
  ------------------
 4289|    276|            decoded += size;
 4290|    276|            break;
 4291|    370|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1413|    370|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x1F
  ------------------
  |  Branch (4291:9): [True: 370, False: 11.9k]
  ------------------
 4292|    370|            size = ogs_nas_5gs_decode_ethernet_header_compression_configuration(&pdu_session_modification_request->ethernet_header_compression_configuration, pkbuf);
 4293|    370|            if (size < 0) {
  ------------------
  |  Branch (4293:17): [True: 4, False: 366]
  ------------------
 4294|      4|               ogs_error("ogs_nas_5gs_decode_ethernet_header_compression_configuration() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4295|      4|               return size;
 4296|      4|            }
 4297|       |
 4298|    366|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1396|    366|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<11)
  ------------------
 4299|    366|            decoded += size;
 4300|    366|            break;
 4301|    243|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_MBS_CONTAINER_TYPE:
  ------------------
  |  | 1414|    243|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_MBS_CONTAINER_TYPE 0x70
  ------------------
  |  Branch (4301:9): [True: 243, False: 12.0k]
  ------------------
 4302|    243|            size = ogs_nas_5gs_decode_requested_mbs_container(&pdu_session_modification_request->requested_mbs_container, pkbuf);
 4303|    243|            if (size < 0) {
  ------------------
  |  Branch (4303:17): [True: 18, False: 225]
  ------------------
 4304|     18|               ogs_error("ogs_nas_5gs_decode_requested_mbs_container() failed");
  ------------------
  |  |   36|     18|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     18|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     18|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     18|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     18|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     18|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4305|     18|               return size;
 4306|     18|            }
 4307|       |
 4308|    225|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_MBS_CONTAINER_PRESENT;
  ------------------
  |  | 1397|    225|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_MBS_CONTAINER_PRESENT ((uint64_t)1<<12)
  ------------------
 4309|    225|            decoded += size;
 4310|    225|            break;
 4311|    210|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  | 1415|    210|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (4311:9): [True: 210, False: 12.0k]
  ------------------
 4312|    210|            size = ogs_nas_5gs_decode_service_level_aa_container(&pdu_session_modification_request->service_level_aa_container, pkbuf);
 4313|    210|            if (size < 0) {
  ------------------
  |  Branch (4313:17): [True: 2, False: 208]
  ------------------
 4314|      2|               ogs_error("ogs_nas_5gs_decode_service_level_aa_container() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4315|      2|               return size;
 4316|      2|            }
 4317|       |
 4318|    208|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  | 1398|    208|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<13)
  ------------------
 4319|    208|            decoded += size;
 4320|    208|            break;
 4321|    216|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DELAY_BUDGET_TYPE:
  ------------------
  |  | 1416|    216|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DELAY_BUDGET_TYPE 0x73
  ------------------
  |  Branch (4321:9): [True: 216, False: 12.0k]
  ------------------
 4322|    216|            size = ogs_nas_5gs_decode_non_3gpp_delay_budget(&pdu_session_modification_request->non_3gpp_delay_budget, pkbuf);
 4323|    216|            if (size < 0) {
  ------------------
  |  Branch (4323:17): [True: 11, False: 205]
  ------------------
 4324|     11|               ogs_error("ogs_nas_5gs_decode_non_3gpp_delay_budget() failed");
  ------------------
  |  |   36|     11|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     11|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     11|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     11|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     11|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     11|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4325|     11|               return size;
 4326|     11|            }
 4327|       |
 4328|    205|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DELAY_BUDGET_PRESENT;
  ------------------
  |  | 1399|    205|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DELAY_BUDGET_PRESENT ((uint64_t)1<<14)
  ------------------
 4329|    205|            decoded += size;
 4330|    205|            break;
 4331|    202|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_TYPE:
  ------------------
  |  | 1417|    202|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_TYPE 0x36
  ------------------
  |  Branch (4331:9): [True: 202, False: 12.0k]
  ------------------
 4332|    202|            size = ogs_nas_5gs_decode_ursp_rule_enforcement_reports(&pdu_session_modification_request->ursp_rule_enforcement_reports, pkbuf);
 4333|    202|            if (size < 0) {
  ------------------
  |  Branch (4333:17): [True: 3, False: 199]
  ------------------
 4334|      3|               ogs_error("ogs_nas_5gs_decode_ursp_rule_enforcement_reports() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4335|      3|               return size;
 4336|      3|            }
 4337|       |
 4338|    199|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_PRESENT;
  ------------------
  |  | 1400|    199|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_PRESENT ((uint64_t)1<<15)
  ------------------
 4339|    199|            decoded += size;
 4340|    199|            break;
 4341|    248|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DEVICE_INFORMATION_TYPE:
  ------------------
  |  | 1418|    248|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DEVICE_INFORMATION_TYPE 0x7C
  ------------------
  |  Branch (4341:9): [True: 248, False: 12.0k]
  ------------------
 4342|    248|            size = ogs_nas_5gs_decode_non_3gpp_device_information(&pdu_session_modification_request->non_3gpp_device_information, pkbuf);
 4343|    248|            if (size < 0) {
  ------------------
  |  Branch (4343:17): [True: 22, False: 226]
  ------------------
 4344|     22|               ogs_error("ogs_nas_5gs_decode_non_3gpp_device_information() failed");
  ------------------
  |  |   36|     22|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     22|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     22|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     22|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     22|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     22|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4345|     22|               return size;
 4346|     22|            }
 4347|       |
 4348|    226|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DEVICE_INFORMATION_PRESENT;
  ------------------
  |  | 1401|    226|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DEVICE_INFORMATION_PRESENT ((uint64_t)1<<16)
  ------------------
 4349|    226|            decoded += size;
 4350|    226|            break;
 4351|  7.42k|        default:
  ------------------
  |  Branch (4351:9): [True: 7.42k, False: 4.85k]
  ------------------
 4352|  7.42k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  7.42k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  7.42k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  7.42k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  7.42k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  7.42k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  7.42k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4353|  7.42k|            break;
 4354|  12.2k|        }
 4355|  12.2k|    }
 4356|       |
 4357|    236|    return decoded;
 4358|    359|}
ogs_nas_5gs_decode_pdu_session_modification_reject:
 4361|     83|{
 4362|     83|    ogs_nas_5gs_pdu_session_modification_reject_t *pdu_session_modification_reject = &message->gsm.pdu_session_modification_reject;
 4363|     83|    int decoded = 0;
 4364|     83|    int size = 0;
 4365|       |
 4366|     83|    ogs_trace("[NAS] Decode PDU_SESSION_MODIFICATION_REJECT\n");
  ------------------
  |  |   40|     83|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     83|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     83|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     83|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     83|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     83|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4367|       |
 4368|     83|    size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_modification_reject->gsm_cause, pkbuf);
 4369|     83|    if (size < 0) {
  ------------------
  |  Branch (4369:9): [True: 1, False: 82]
  ------------------
 4370|      1|        ogs_error("ogs_nas_5gs_decode_5gsm_cause() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4371|      1|        return size;
 4372|      1|    }
 4373|       |
 4374|     82|    decoded += size;
 4375|       |
 4376|  2.62k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4376:12): [True: 2.54k, False: 78]
  ------------------
 4377|  2.54k|        uint8_t *buffer = pkbuf->data;
 4378|  2.54k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4378:24): [True: 835, False: 1.70k]
  ------------------
 4379|       |
 4380|  2.54k|        size = sizeof(uint8_t);
 4381|  2.54k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4381:13): [True: 0, False: 2.54k]
  ------------------
 4382|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4383|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 4384|      0|        }
 4385|  2.54k|        decoded += size;
 4386|       |
 4387|  2.54k|        switch(type) {
 4388|    207|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_BACK_OFF_TIMER_VALUE_TYPE:
  ------------------
  |  | 1451|    207|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_BACK_OFF_TIMER_VALUE_TYPE 0x37
  ------------------
  |  Branch (4388:9): [True: 207, False: 2.33k]
  ------------------
 4389|    207|            size = ogs_nas_5gs_decode_gprs_timer_3(&pdu_session_modification_reject->back_off_timer_value, pkbuf);
 4390|    207|            if (size < 0) {
  ------------------
  |  Branch (4390:17): [True: 1, False: 206]
  ------------------
 4391|      1|               ogs_error("ogs_nas_5gs_decode_gprs_timer_3() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4392|      1|               return size;
 4393|      1|            }
 4394|       |
 4395|    206|            pdu_session_modification_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_BACK_OFF_TIMER_VALUE_PRESENT;
  ------------------
  |  | 1447|    206|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_BACK_OFF_TIMER_VALUE_PRESENT ((uint64_t)1<<0)
  ------------------
 4396|    206|            decoded += size;
 4397|    206|            break;
 4398|    196|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_TYPE:
  ------------------
  |  | 1452|    196|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_TYPE 0x61
  ------------------
  |  Branch (4398:9): [True: 196, False: 2.34k]
  ------------------
 4399|    196|            size = ogs_nas_5gs_decode_5gsm_congestion_re_attempt_indicator(&pdu_session_modification_reject->gsm_congestion_re_attempt_indicator, pkbuf);
 4400|    196|            if (size < 0) {
  ------------------
  |  Branch (4400:17): [True: 1, False: 195]
  ------------------
 4401|      1|               ogs_error("ogs_nas_5gs_decode_5gsm_congestion_re_attempt_indicator() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4402|      1|               return size;
 4403|      1|            }
 4404|       |
 4405|    195|            pdu_session_modification_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_PRESENT;
  ------------------
  |  | 1448|    195|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_PRESENT ((uint64_t)1<<1)
  ------------------
 4406|    195|            decoded += size;
 4407|    195|            break;
 4408|    217|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1453|    217|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4408:9): [True: 217, False: 2.32k]
  ------------------
 4409|    217|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_modification_reject->extended_protocol_configuration_options, pkbuf);
 4410|    217|            if (size < 0) {
  ------------------
  |  Branch (4410:17): [True: 1, False: 216]
  ------------------
 4411|      1|               ogs_error("ogs_nas_5gs_decode_extended_protocol_configuration_options() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4412|      1|               return size;
 4413|      1|            }
 4414|       |
 4415|    216|            pdu_session_modification_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1449|    216|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<2)
  ------------------
 4416|    216|            decoded += size;
 4417|    216|            break;
 4418|    196|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_RE_ATTEMPT_INDICATOR_TYPE:
  ------------------
  |  | 1454|    196|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_RE_ATTEMPT_INDICATOR_TYPE 0x1D
  ------------------
  |  Branch (4418:9): [True: 196, False: 2.34k]
  ------------------
 4419|    196|            size = ogs_nas_5gs_decode_re_attempt_indicator(&pdu_session_modification_reject->re_attempt_indicator, pkbuf);
 4420|    196|            if (size < 0) {
  ------------------
  |  Branch (4420:17): [True: 1, False: 195]
  ------------------
 4421|      1|               ogs_error("ogs_nas_5gs_decode_re_attempt_indicator() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4422|      1|               return size;
 4423|      1|            }
 4424|       |
 4425|    195|            pdu_session_modification_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_RE_ATTEMPT_INDICATOR_PRESENT;
  ------------------
  |  | 1450|    195|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_RE_ATTEMPT_INDICATOR_PRESENT ((uint64_t)1<<3)
  ------------------
 4426|    195|            decoded += size;
 4427|    195|            break;
 4428|  1.72k|        default:
  ------------------
  |  Branch (4428:9): [True: 1.72k, False: 816]
  ------------------
 4429|  1.72k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.72k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.72k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.72k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.72k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.72k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.72k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4430|  1.72k|            break;
 4431|  2.54k|        }
 4432|  2.54k|    }
 4433|       |
 4434|     78|    return decoded;
 4435|     82|}
ogs_nas_5gs_decode_pdu_session_modification_command:
 4438|    409|{
 4439|    409|    ogs_nas_5gs_pdu_session_modification_command_t *pdu_session_modification_command = &message->gsm.pdu_session_modification_command;
 4440|    409|    int decoded = 0;
 4441|    409|    int size = 0;
 4442|       |
 4443|    409|    ogs_trace("[NAS] Decode PDU_SESSION_MODIFICATION_COMMAND\n");
  ------------------
  |  |   40|    409|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    409|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    409|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    409|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    409|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    409|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4444|       |
 4445|  12.6k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4445:12): [True: 12.3k, False: 279]
  ------------------
 4446|  12.3k|        uint8_t *buffer = pkbuf->data;
 4447|  12.3k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4447:24): [True: 3.52k, False: 8.80k]
  ------------------
 4448|       |
 4449|  12.3k|        size = sizeof(uint8_t);
 4450|  12.3k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4450:13): [True: 0, False: 12.3k]
  ------------------
 4451|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4452|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 4453|      0|        }
 4454|  12.3k|        decoded += size;
 4455|       |
 4456|  12.3k|        switch(type) {
 4457|    219|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_5GSM_CAUSE_TYPE:
  ------------------
  |  | 1491|    219|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_5GSM_CAUSE_TYPE 0x59
  ------------------
  |  Branch (4457:9): [True: 219, False: 12.1k]
  ------------------
 4458|    219|            size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_modification_command->gsm_cause, pkbuf);
 4459|    219|            if (size < 0) {
  ------------------
  |  Branch (4459:17): [True: 1, False: 218]
  ------------------
 4460|      1|               ogs_error("ogs_nas_5gs_decode_5gsm_cause() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4461|      1|               return size;
 4462|      1|            }
 4463|       |
 4464|    218|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_5GSM_CAUSE_PRESENT;
  ------------------
  |  | 1472|    218|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_5GSM_CAUSE_PRESENT ((uint64_t)1<<0)
  ------------------
 4465|    218|            decoded += size;
 4466|    218|            break;
 4467|    221|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SESSION_AMBR_TYPE:
  ------------------
  |  | 1492|    221|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SESSION_AMBR_TYPE 0x2A
  ------------------
  |  Branch (4467:9): [True: 221, False: 12.1k]
  ------------------
 4468|    221|            size = ogs_nas_5gs_decode_session_ambr(&pdu_session_modification_command->session_ambr, pkbuf);
 4469|    221|            if (size < 0) {
  ------------------
  |  Branch (4469:17): [True: 6, False: 215]
  ------------------
 4470|      6|               ogs_error("ogs_nas_5gs_decode_session_ambr() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4471|      6|               return size;
 4472|      6|            }
 4473|       |
 4474|    215|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SESSION_AMBR_PRESENT;
  ------------------
  |  | 1473|    215|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SESSION_AMBR_PRESENT ((uint64_t)1<<1)
  ------------------
 4475|    215|            decoded += size;
 4476|    215|            break;
 4477|    204|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RQ_TIMER_VALUE_TYPE:
  ------------------
  |  | 1493|    204|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RQ_TIMER_VALUE_TYPE 0x56
  ------------------
  |  Branch (4477:9): [True: 204, False: 12.1k]
  ------------------
 4478|    204|            size = ogs_nas_5gs_decode_gprs_timer(&pdu_session_modification_command->rq_timer_value, pkbuf);
 4479|    204|            if (size < 0) {
  ------------------
  |  Branch (4479:17): [True: 2, False: 202]
  ------------------
 4480|      2|               ogs_error("ogs_nas_5gs_decode_gprs_timer() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4481|      2|               return size;
 4482|      2|            }
 4483|       |
 4484|    202|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RQ_TIMER_VALUE_PRESENT;
  ------------------
  |  | 1474|    202|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RQ_TIMER_VALUE_PRESENT ((uint64_t)1<<2)
  ------------------
 4485|    202|            decoded += size;
 4486|    202|            break;
 4487|    607|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALWAYS_ON_PDU_SESSION_INDICATION_TYPE:
  ------------------
  |  | 1494|    607|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALWAYS_ON_PDU_SESSION_INDICATION_TYPE 0x80
  ------------------
  |  Branch (4487:9): [True: 607, False: 11.7k]
  ------------------
 4488|    607|            decoded--;
 4489|    607|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    607|    do { \
  |  |  114|    607|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    607|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 607, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    607|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|    607|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 607]
  |  |  ------------------
  ------------------
 4490|    607|            size = ogs_nas_5gs_decode_always_on_pdu_session_indication(&pdu_session_modification_command->always_on_pdu_session_indication, pkbuf);
 4491|    607|            if (size < 0) {
  ------------------
  |  Branch (4491:17): [True: 0, False: 607]
  ------------------
 4492|      0|               ogs_error("ogs_nas_5gs_decode_always_on_pdu_session_indication() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4493|      0|               return size;
 4494|      0|            }
 4495|       |
 4496|    607|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALWAYS_ON_PDU_SESSION_INDICATION_PRESENT;
  ------------------
  |  | 1475|    607|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALWAYS_ON_PDU_SESSION_INDICATION_PRESENT ((uint64_t)1<<3)
  ------------------
 4497|    607|            decoded += size;
 4498|    607|            break;
 4499|    218|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_AUTHORIZED_QOS_RULES_TYPE:
  ------------------
  |  | 1495|    218|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_AUTHORIZED_QOS_RULES_TYPE 0x7A
  ------------------
  |  Branch (4499:9): [True: 218, False: 12.1k]
  ------------------
 4500|    218|            size = ogs_nas_5gs_decode_qos_rules(&pdu_session_modification_command->authorized_qos_rules, pkbuf);
 4501|    218|            if (size < 0) {
  ------------------
  |  Branch (4501:17): [True: 4, False: 214]
  ------------------
 4502|      4|               ogs_error("ogs_nas_5gs_decode_qos_rules() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4503|      4|               return size;
 4504|      4|            }
 4505|       |
 4506|    214|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_AUTHORIZED_QOS_RULES_PRESENT;
  ------------------
  |  | 1476|    214|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_AUTHORIZED_QOS_RULES_PRESENT ((uint64_t)1<<4)
  ------------------
 4507|    214|            decoded += size;
 4508|    214|            break;
 4509|    226|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_MAPPED_EPS_BEARER_CONTEXTS_TYPE:
  ------------------
  |  | 1496|    226|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_MAPPED_EPS_BEARER_CONTEXTS_TYPE 0x75
  ------------------
  |  Branch (4509:9): [True: 226, False: 12.0k]
  ------------------
 4510|    226|            size = ogs_nas_5gs_decode_mapped_eps_bearer_contexts(&pdu_session_modification_command->mapped_eps_bearer_contexts, pkbuf);
 4511|    226|            if (size < 0) {
  ------------------
  |  Branch (4511:17): [True: 6, False: 220]
  ------------------
 4512|      6|               ogs_error("ogs_nas_5gs_decode_mapped_eps_bearer_contexts() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4513|      6|               return size;
 4514|      6|            }
 4515|       |
 4516|    220|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_MAPPED_EPS_BEARER_CONTEXTS_PRESENT;
  ------------------
  |  | 1477|    220|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_MAPPED_EPS_BEARER_CONTEXTS_PRESENT ((uint64_t)1<<5)
  ------------------
 4517|    220|            decoded += size;
 4518|    220|            break;
 4519|    233|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_AUTHORIZED_QOS_FLOW_DESCRIPTIONS_TYPE:
  ------------------
  |  | 1497|    233|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_AUTHORIZED_QOS_FLOW_DESCRIPTIONS_TYPE 0x79
  ------------------
  |  Branch (4519:9): [True: 233, False: 12.0k]
  ------------------
 4520|    233|            size = ogs_nas_5gs_decode_qos_flow_descriptions(&pdu_session_modification_command->authorized_qos_flow_descriptions, pkbuf);
 4521|    233|            if (size < 0) {
  ------------------
  |  Branch (4521:17): [True: 9, False: 224]
  ------------------
 4522|      9|               ogs_error("ogs_nas_5gs_decode_qos_flow_descriptions() failed");
  ------------------
  |  |   36|      9|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      9|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      9|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      9|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      9|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      9|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4523|      9|               return size;
 4524|      9|            }
 4525|       |
 4526|    224|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_AUTHORIZED_QOS_FLOW_DESCRIPTIONS_PRESENT;
  ------------------
  |  | 1478|    224|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_AUTHORIZED_QOS_FLOW_DESCRIPTIONS_PRESENT ((uint64_t)1<<6)
  ------------------
 4527|    224|            decoded += size;
 4528|    224|            break;
 4529|    203|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1498|    203|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4529:9): [True: 203, False: 12.1k]
  ------------------
 4530|    203|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_modification_command->extended_protocol_configuration_options, pkbuf);
 4531|    203|            if (size < 0) {
  ------------------
  |  Branch (4531:17): [True: 2, False: 201]
  ------------------
 4532|      2|               ogs_error("ogs_nas_5gs_decode_extended_protocol_configuration_options() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4533|      2|               return size;
 4534|      2|            }
 4535|       |
 4536|    201|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1479|    201|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<7)
  ------------------
 4537|    201|            decoded += size;
 4538|    201|            break;
 4539|    227|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ATSSS_CONTAINER_TYPE:
  ------------------
  |  | 1499|    227|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ATSSS_CONTAINER_TYPE 0x77
  ------------------
  |  Branch (4539:9): [True: 227, False: 12.0k]
  ------------------
 4540|    227|            size = ogs_nas_5gs_decode_atsss_container(&pdu_session_modification_command->atsss_container, pkbuf);
 4541|    227|            if (size < 0) {
  ------------------
  |  Branch (4541:17): [True: 19, False: 208]
  ------------------
 4542|     19|               ogs_error("ogs_nas_5gs_decode_atsss_container() failed");
  ------------------
  |  |   36|     19|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     19|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     19|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     19|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     19|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     19|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4543|     19|               return size;
 4544|     19|            }
 4545|       |
 4546|    208|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ATSSS_CONTAINER_PRESENT;
  ------------------
  |  | 1480|    208|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ATSSS_CONTAINER_PRESENT ((uint64_t)1<<8)
  ------------------
 4547|    208|            decoded += size;
 4548|    208|            break;
 4549|    204|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1500|    204|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x66
  ------------------
  |  Branch (4549:9): [True: 204, False: 12.1k]
  ------------------
 4550|    204|            size = ogs_nas_5gs_decode_ip_header_compression_configuration(&pdu_session_modification_command->ip_header_compression_configuration, pkbuf);
 4551|    204|            if (size < 0) {
  ------------------
  |  Branch (4551:17): [True: 4, False: 200]
  ------------------
 4552|      4|               ogs_error("ogs_nas_5gs_decode_ip_header_compression_configuration() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4553|      4|               return size;
 4554|      4|            }
 4555|       |
 4556|    200|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1481|    200|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<9)
  ------------------
 4557|    200|            decoded += size;
 4558|    200|            break;
 4559|    239|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE:
  ------------------
  |  | 1501|    239|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE 0x74
  ------------------
  |  Branch (4559:9): [True: 239, False: 12.0k]
  ------------------
 4560|    239|            size = ogs_nas_5gs_decode_port_management_information_container(&pdu_session_modification_command->port_management_information_container, pkbuf);
 4561|    239|            if (size < 0) {
  ------------------
  |  Branch (4561:17): [True: 6, False: 233]
  ------------------
 4562|      6|               ogs_error("ogs_nas_5gs_decode_port_management_information_container() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4563|      6|               return size;
 4564|      6|            }
 4565|       |
 4566|    233|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT;
  ------------------
  |  | 1482|    233|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT ((uint64_t)1<<10)
  ------------------
 4567|    233|            decoded += size;
 4568|    233|            break;
 4569|    223|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVING_PLMN_RATE_CONTROL_TYPE:
  ------------------
  |  | 1502|    223|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVING_PLMN_RATE_CONTROL_TYPE 0x1E
  ------------------
  |  Branch (4569:9): [True: 223, False: 12.0k]
  ------------------
 4570|    223|            size = ogs_nas_5gs_decode_serving_plmn_rate_control(&pdu_session_modification_command->serving_plmn_rate_control, pkbuf);
 4571|    223|            if (size < 0) {
  ------------------
  |  Branch (4571:17): [True: 6, False: 217]
  ------------------
 4572|      6|               ogs_error("ogs_nas_5gs_decode_serving_plmn_rate_control() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4573|      6|               return size;
 4574|      6|            }
 4575|       |
 4576|    217|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVING_PLMN_RATE_CONTROL_PRESENT;
  ------------------
  |  | 1483|    217|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVING_PLMN_RATE_CONTROL_PRESENT ((uint64_t)1<<11)
  ------------------
 4577|    217|            decoded += size;
 4578|    217|            break;
 4579|    208|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1503|    208|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x1F
  ------------------
  |  Branch (4579:9): [True: 208, False: 12.1k]
  ------------------
 4580|    208|            size = ogs_nas_5gs_decode_ethernet_header_compression_configuration(&pdu_session_modification_command->ethernet_header_compression_configuration, pkbuf);
 4581|    208|            if (size < 0) {
  ------------------
  |  Branch (4581:17): [True: 3, False: 205]
  ------------------
 4582|      3|               ogs_error("ogs_nas_5gs_decode_ethernet_header_compression_configuration() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4583|      3|               return size;
 4584|      3|            }
 4585|       |
 4586|    205|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1484|    205|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<12)
  ------------------
 4587|    205|            decoded += size;
 4588|    205|            break;
 4589|    377|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RECEIVED_MBS_CONTAINER_TYPE:
  ------------------
  |  | 1504|    377|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RECEIVED_MBS_CONTAINER_TYPE 0x71
  ------------------
  |  Branch (4589:9): [True: 377, False: 11.9k]
  ------------------
 4590|    377|            size = ogs_nas_5gs_decode_received_mbs_container(&pdu_session_modification_command->received_mbs_container, pkbuf);
 4591|    377|            if (size < 0) {
  ------------------
  |  Branch (4591:17): [True: 20, False: 357]
  ------------------
 4592|     20|               ogs_error("ogs_nas_5gs_decode_received_mbs_container() failed");
  ------------------
  |  |   36|     20|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     20|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     20|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     20|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     20|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     20|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4593|     20|               return size;
 4594|     20|            }
 4595|       |
 4596|    357|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RECEIVED_MBS_CONTAINER_PRESENT;
  ------------------
  |  | 1485|    357|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RECEIVED_MBS_CONTAINER_PRESENT ((uint64_t)1<<13)
  ------------------
 4597|    357|            decoded += size;
 4598|    357|            break;
 4599|    203|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  | 1505|    203|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (4599:9): [True: 203, False: 12.1k]
  ------------------
 4600|    203|            size = ogs_nas_5gs_decode_service_level_aa_container(&pdu_session_modification_command->service_level_aa_container, pkbuf);
 4601|    203|            if (size < 0) {
  ------------------
  |  Branch (4601:17): [True: 3, False: 200]
  ------------------
 4602|      3|               ogs_error("ogs_nas_5gs_decode_service_level_aa_container() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4603|      3|               return size;
 4604|      3|            }
 4605|       |
 4606|    200|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  | 1486|    200|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<14)
  ------------------
 4607|    200|            decoded += size;
 4608|    200|            break;
 4609|    205|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALTERNATIVE_S_NSSAI_TYPE:
  ------------------
  |  | 1506|    205|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALTERNATIVE_S_NSSAI_TYPE 0x5A
  ------------------
  |  Branch (4609:9): [True: 205, False: 12.1k]
  ------------------
 4610|    205|            size = ogs_nas_5gs_decode_s_nssai(&pdu_session_modification_command->alternative_s_nssai, pkbuf);
 4611|    205|            if (size < 0) {
  ------------------
  |  Branch (4611:17): [True: 3, False: 202]
  ------------------
 4612|      3|               ogs_error("ogs_nas_5gs_decode_s_nssai() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4613|      3|               return size;
 4614|      3|            }
 4615|       |
 4616|    202|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALTERNATIVE_S_NSSAI_PRESENT;
  ------------------
  |  | 1487|    202|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALTERNATIVE_S_NSSAI_PRESENT ((uint64_t)1<<15)
  ------------------
 4617|    202|            decoded += size;
 4618|    202|            break;
 4619|    244|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_N3QAI_TYPE:
  ------------------
  |  | 1507|    244|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_N3QAI_TYPE 0x70
  ------------------
  |  Branch (4619:9): [True: 244, False: 12.0k]
  ------------------
 4620|    244|            size = ogs_nas_5gs_decode_n3qai(&pdu_session_modification_command->n3qai, pkbuf);
 4621|    244|            if (size < 0) {
  ------------------
  |  Branch (4621:17): [True: 18, False: 226]
  ------------------
 4622|     18|               ogs_error("ogs_nas_5gs_decode_n3qai() failed");
  ------------------
  |  |   36|     18|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     18|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     18|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     18|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     18|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     18|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4623|     18|               return size;
 4624|     18|            }
 4625|       |
 4626|    226|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_N3QAI_PRESENT;
  ------------------
  |  | 1488|    226|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_N3QAI_PRESENT ((uint64_t)1<<16)
  ------------------
 4627|    226|            decoded += size;
 4628|    226|            break;
 4629|    239|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PROTOCOL_DESCRIPTION_TYPE:
  ------------------
  |  | 1508|    239|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PROTOCOL_DESCRIPTION_TYPE 0x73
  ------------------
  |  Branch (4629:9): [True: 239, False: 12.0k]
  ------------------
 4630|    239|            size = ogs_nas_5gs_decode_protocol_description(&pdu_session_modification_command->protocol_description, pkbuf);
 4631|    239|            if (size < 0) {
  ------------------
  |  Branch (4631:17): [True: 15, False: 224]
  ------------------
 4632|     15|               ogs_error("ogs_nas_5gs_decode_protocol_description() failed");
  ------------------
  |  |   36|     15|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     15|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     15|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     15|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     15|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     15|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4633|     15|               return size;
 4634|     15|            }
 4635|       |
 4636|    224|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PROTOCOL_DESCRIPTION_PRESENT;
  ------------------
  |  | 1489|    224|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PROTOCOL_DESCRIPTION_PRESENT ((uint64_t)1<<17)
  ------------------
 4637|    224|            decoded += size;
 4638|    224|            break;
 4639|    208|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ECN_MARKING_FOR_L4S_INDICATION_TYPE:
  ------------------
  |  | 1509|    208|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ECN_MARKING_FOR_L4S_INDICATION_TYPE 0x38
  ------------------
  |  Branch (4639:9): [True: 208, False: 12.1k]
  ------------------
 4640|    208|            size = ogs_nas_5gs_decode_ecn_marking_for_l4s_indication(&pdu_session_modification_command->ecn_marking_for_l4s_indication, pkbuf);
 4641|    208|            if (size < 0) {
  ------------------
  |  Branch (4641:17): [True: 3, False: 205]
  ------------------
 4642|      3|               ogs_error("ogs_nas_5gs_decode_ecn_marking_for_l4s_indication() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4643|      3|               return size;
 4644|      3|            }
 4645|       |
 4646|    205|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ECN_MARKING_FOR_L4S_INDICATION_PRESENT;
  ------------------
  |  | 1490|    205|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ECN_MARKING_FOR_L4S_INDICATION_PRESENT ((uint64_t)1<<18)
  ------------------
 4647|    205|            decoded += size;
 4648|    205|            break;
 4649|  7.61k|        default:
  ------------------
  |  Branch (4649:9): [True: 7.61k, False: 4.70k]
  ------------------
 4650|  7.61k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  7.61k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  7.61k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  7.61k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  7.61k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  7.61k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  7.61k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4651|  7.61k|            break;
 4652|  12.3k|        }
 4653|  12.3k|    }
 4654|       |
 4655|    279|    return decoded;
 4656|    409|}
ogs_nas_5gs_decode_pdu_session_modification_complete:
 4659|     83|{
 4660|     83|    ogs_nas_5gs_pdu_session_modification_complete_t *pdu_session_modification_complete = &message->gsm.pdu_session_modification_complete;
 4661|     83|    int decoded = 0;
 4662|     83|    int size = 0;
 4663|       |
 4664|     83|    ogs_trace("[NAS] Decode PDU_SESSION_MODIFICATION_COMPLETE\n");
  ------------------
  |  |   40|     83|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     83|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     83|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     83|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     83|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     83|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4665|       |
 4666|  2.57k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4666:12): [True: 2.51k, False: 61]
  ------------------
 4667|  2.51k|        uint8_t *buffer = pkbuf->data;
 4668|  2.51k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4668:24): [True: 681, False: 1.83k]
  ------------------
 4669|       |
 4670|  2.51k|        size = sizeof(uint8_t);
 4671|  2.51k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4671:13): [True: 0, False: 2.51k]
  ------------------
 4672|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4673|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 4674|      0|        }
 4675|  2.51k|        decoded += size;
 4676|       |
 4677|  2.51k|        switch(type) {
 4678|    219|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1542|    219|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4678:9): [True: 219, False: 2.29k]
  ------------------
 4679|    219|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_modification_complete->extended_protocol_configuration_options, pkbuf);
 4680|    219|            if (size < 0) {
  ------------------
  |  Branch (4680:17): [True: 7, False: 212]
  ------------------
 4681|      7|               ogs_error("ogs_nas_5gs_decode_extended_protocol_configuration_options() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4682|      7|               return size;
 4683|      7|            }
 4684|       |
 4685|    212|            pdu_session_modification_complete->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1540|    212|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<0)
  ------------------
 4686|    212|            decoded += size;
 4687|    212|            break;
 4688|    230|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE:
  ------------------
  |  | 1543|    230|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE 0x74
  ------------------
  |  Branch (4688:9): [True: 230, False: 2.28k]
  ------------------
 4689|    230|            size = ogs_nas_5gs_decode_port_management_information_container(&pdu_session_modification_complete->port_management_information_container, pkbuf);
 4690|    230|            if (size < 0) {
  ------------------
  |  Branch (4690:17): [True: 15, False: 215]
  ------------------
 4691|     15|               ogs_error("ogs_nas_5gs_decode_port_management_information_container() failed");
  ------------------
  |  |   36|     15|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     15|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     15|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     15|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     15|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     15|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4692|     15|               return size;
 4693|     15|            }
 4694|       |
 4695|    215|            pdu_session_modification_complete->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT;
  ------------------
  |  | 1541|    215|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT ((uint64_t)1<<1)
  ------------------
 4696|    215|            decoded += size;
 4697|    215|            break;
 4698|  2.06k|        default:
  ------------------
  |  Branch (4698:9): [True: 2.06k, False: 449]
  ------------------
 4699|  2.06k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.06k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.06k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.06k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.06k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.06k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.06k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4700|  2.06k|            break;
 4701|  2.51k|        }
 4702|  2.51k|    }
 4703|       |
 4704|     61|    return decoded;
 4705|     83|}
ogs_nas_5gs_decode_pdu_session_modification_command_reject:
 4708|     51|{
 4709|     51|    ogs_nas_5gs_pdu_session_modification_command_reject_t *pdu_session_modification_command_reject = &message->gsm.pdu_session_modification_command_reject;
 4710|     51|    int decoded = 0;
 4711|     51|    int size = 0;
 4712|       |
 4713|     51|    ogs_trace("[NAS] Decode PDU_SESSION_MODIFICATION_COMMAND_REJECT\n");
  ------------------
  |  |   40|     51|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     51|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     51|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     51|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     51|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     51|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4714|       |
 4715|     51|    size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_modification_command_reject->gsm_cause, pkbuf);
 4716|     51|    if (size < 0) {
  ------------------
  |  Branch (4716:9): [True: 1, False: 50]
  ------------------
 4717|      1|        ogs_error("ogs_nas_5gs_decode_5gsm_cause() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4718|      1|        return size;
 4719|      1|    }
 4720|       |
 4721|     50|    decoded += size;
 4722|       |
 4723|  2.21k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4723:12): [True: 2.16k, False: 49]
  ------------------
 4724|  2.16k|        uint8_t *buffer = pkbuf->data;
 4725|  2.16k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4725:24): [True: 1.03k, False: 1.13k]
  ------------------
 4726|       |
 4727|  2.16k|        size = sizeof(uint8_t);
 4728|  2.16k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4728:13): [True: 0, False: 2.16k]
  ------------------
 4729|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4730|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 4731|      0|        }
 4732|  2.16k|        decoded += size;
 4733|       |
 4734|  2.16k|        switch(type) {
 4735|    204|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1558|    204|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4735:9): [True: 204, False: 1.96k]
  ------------------
 4736|    204|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_modification_command_reject->extended_protocol_configuration_options, pkbuf);
 4737|    204|            if (size < 0) {
  ------------------
  |  Branch (4737:17): [True: 1, False: 203]
  ------------------
 4738|      1|               ogs_error("ogs_nas_5gs_decode_extended_protocol_configuration_options() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4739|      1|               return size;
 4740|      1|            }
 4741|       |
 4742|    203|            pdu_session_modification_command_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1557|    203|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<0)
  ------------------
 4743|    203|            decoded += size;
 4744|    203|            break;
 4745|  1.96k|        default:
  ------------------
  |  Branch (4745:9): [True: 1.96k, False: 204]
  ------------------
 4746|  1.96k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.96k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.96k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.96k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.96k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.96k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.96k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4747|  1.96k|            break;
 4748|  2.16k|        }
 4749|  2.16k|    }
 4750|       |
 4751|     49|    return decoded;
 4752|     50|}
ogs_nas_5gs_decode_pdu_session_release_request:
 4755|     56|{
 4756|     56|    ogs_nas_5gs_pdu_session_release_request_t *pdu_session_release_request = &message->gsm.pdu_session_release_request;
 4757|     56|    int decoded = 0;
 4758|     56|    int size = 0;
 4759|       |
 4760|     56|    ogs_trace("[NAS] Decode PDU_SESSION_RELEASE_REQUEST\n");
  ------------------
  |  |   40|     56|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     56|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     56|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     56|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     56|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     56|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4761|       |
 4762|  1.97k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4762:12): [True: 1.92k, False: 49]
  ------------------
 4763|  1.92k|        uint8_t *buffer = pkbuf->data;
 4764|  1.92k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4764:24): [True: 674, False: 1.25k]
  ------------------
 4765|       |
 4766|  1.92k|        size = sizeof(uint8_t);
 4767|  1.92k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4767:13): [True: 0, False: 1.92k]
  ------------------
 4768|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4769|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 4770|      0|        }
 4771|  1.92k|        decoded += size;
 4772|       |
 4773|  1.92k|        switch(type) {
 4774|    196|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_5GSM_CAUSE_TYPE:
  ------------------
  |  | 1575|    196|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_5GSM_CAUSE_TYPE 0x59
  ------------------
  |  Branch (4774:9): [True: 196, False: 1.73k]
  ------------------
 4775|    196|            size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_release_request->gsm_cause, pkbuf);
 4776|    196|            if (size < 0) {
  ------------------
  |  Branch (4776:17): [True: 1, False: 195]
  ------------------
 4777|      1|               ogs_error("ogs_nas_5gs_decode_5gsm_cause() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4778|      1|               return size;
 4779|      1|            }
 4780|       |
 4781|    195|            pdu_session_release_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_5GSM_CAUSE_PRESENT;
  ------------------
  |  | 1573|    195|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_5GSM_CAUSE_PRESENT ((uint64_t)1<<0)
  ------------------
 4782|    195|            decoded += size;
 4783|    195|            break;
 4784|    209|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1576|    209|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4784:9): [True: 209, False: 1.71k]
  ------------------
 4785|    209|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_release_request->extended_protocol_configuration_options, pkbuf);
 4786|    209|            if (size < 0) {
  ------------------
  |  Branch (4786:17): [True: 6, False: 203]
  ------------------
 4787|      6|               ogs_error("ogs_nas_5gs_decode_extended_protocol_configuration_options() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4788|      6|               return size;
 4789|      6|            }
 4790|       |
 4791|    203|            pdu_session_release_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1574|    203|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<1)
  ------------------
 4792|    203|            decoded += size;
 4793|    203|            break;
 4794|  1.52k|        default:
  ------------------
  |  Branch (4794:9): [True: 1.52k, False: 405]
  ------------------
 4795|  1.52k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.52k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.52k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.52k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.52k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.52k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.52k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4796|  1.52k|            break;
 4797|  1.92k|        }
 4798|  1.92k|    }
 4799|       |
 4800|     49|    return decoded;
 4801|     56|}
ogs_nas_5gs_decode_pdu_session_release_reject:
 4804|     59|{
 4805|     59|    ogs_nas_5gs_pdu_session_release_reject_t *pdu_session_release_reject = &message->gsm.pdu_session_release_reject;
 4806|     59|    int decoded = 0;
 4807|     59|    int size = 0;
 4808|       |
 4809|     59|    ogs_trace("[NAS] Decode PDU_SESSION_RELEASE_REJECT\n");
  ------------------
  |  |   40|     59|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     59|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     59|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     59|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     59|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     59|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4810|       |
 4811|     59|    size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_release_reject->gsm_cause, pkbuf);
 4812|     59|    if (size < 0) {
  ------------------
  |  Branch (4812:9): [True: 1, False: 58]
  ------------------
 4813|      1|        ogs_error("ogs_nas_5gs_decode_5gsm_cause() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4814|      1|        return size;
 4815|      1|    }
 4816|       |
 4817|     58|    decoded += size;
 4818|       |
 4819|  2.93k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4819:12): [True: 2.87k, False: 57]
  ------------------
 4820|  2.87k|        uint8_t *buffer = pkbuf->data;
 4821|  2.87k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4821:24): [True: 832, False: 2.04k]
  ------------------
 4822|       |
 4823|  2.87k|        size = sizeof(uint8_t);
 4824|  2.87k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4824:13): [True: 0, False: 2.87k]
  ------------------
 4825|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4826|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 4827|      0|        }
 4828|  2.87k|        decoded += size;
 4829|       |
 4830|  2.87k|        switch(type) {
 4831|    340|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1591|    340|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4831:9): [True: 340, False: 2.53k]
  ------------------
 4832|    340|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_release_reject->extended_protocol_configuration_options, pkbuf);
 4833|    340|            if (size < 0) {
  ------------------
  |  Branch (4833:17): [True: 1, False: 339]
  ------------------
 4834|      1|               ogs_error("ogs_nas_5gs_decode_extended_protocol_configuration_options() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4835|      1|               return size;
 4836|      1|            }
 4837|       |
 4838|    339|            pdu_session_release_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1590|    339|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<0)
  ------------------
 4839|    339|            decoded += size;
 4840|    339|            break;
 4841|  2.53k|        default:
  ------------------
  |  Branch (4841:9): [True: 2.53k, False: 340]
  ------------------
 4842|  2.53k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.53k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.53k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.53k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.53k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.53k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.53k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4843|  2.53k|            break;
 4844|  2.87k|        }
 4845|  2.87k|    }
 4846|       |
 4847|     57|    return decoded;
 4848|     58|}
ogs_nas_5gs_decode_pdu_session_release_command:
 4851|    117|{
 4852|    117|    ogs_nas_5gs_pdu_session_release_command_t *pdu_session_release_command = &message->gsm.pdu_session_release_command;
 4853|    117|    int decoded = 0;
 4854|    117|    int size = 0;
 4855|       |
 4856|    117|    ogs_trace("[NAS] Decode PDU_SESSION_RELEASE_COMMAND\n");
  ------------------
  |  |   40|    117|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    117|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    117|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    117|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    117|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    117|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4857|       |
 4858|    117|    size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_release_command->gsm_cause, pkbuf);
 4859|    117|    if (size < 0) {
  ------------------
  |  Branch (4859:9): [True: 1, False: 116]
  ------------------
 4860|      1|        ogs_error("ogs_nas_5gs_decode_5gsm_cause() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4861|      1|        return size;
 4862|      1|    }
 4863|       |
 4864|    116|    decoded += size;
 4865|       |
 4866|  5.89k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4866:12): [True: 5.79k, False: 104]
  ------------------
 4867|  5.79k|        uint8_t *buffer = pkbuf->data;
 4868|  5.79k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4868:24): [True: 1.81k, False: 3.98k]
  ------------------
 4869|       |
 4870|  5.79k|        size = sizeof(uint8_t);
 4871|  5.79k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4871:13): [True: 0, False: 5.79k]
  ------------------
 4872|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4873|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 4874|      0|        }
 4875|  5.79k|        decoded += size;
 4876|       |
 4877|  5.79k|        switch(type) {
 4878|    195|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_BACK_OFF_TIMER_VALUE_TYPE:
  ------------------
  |  | 1613|    195|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_BACK_OFF_TIMER_VALUE_TYPE 0x37
  ------------------
  |  Branch (4878:9): [True: 195, False: 5.59k]
  ------------------
 4879|    195|            size = ogs_nas_5gs_decode_gprs_timer_3(&pdu_session_release_command->back_off_timer_value, pkbuf);
 4880|    195|            if (size < 0) {
  ------------------
  |  Branch (4880:17): [True: 1, False: 194]
  ------------------
 4881|      1|               ogs_error("ogs_nas_5gs_decode_gprs_timer_3() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4882|      1|               return size;
 4883|      1|            }
 4884|       |
 4885|    194|            pdu_session_release_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_BACK_OFF_TIMER_VALUE_PRESENT;
  ------------------
  |  | 1606|    194|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_BACK_OFF_TIMER_VALUE_PRESENT ((uint64_t)1<<0)
  ------------------
 4886|    194|            decoded += size;
 4887|    194|            break;
 4888|    214|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EAP_MESSAGE_TYPE:
  ------------------
  |  | 1614|    214|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (4888:9): [True: 214, False: 5.57k]
  ------------------
 4889|    214|            size = ogs_nas_5gs_decode_eap_message(&pdu_session_release_command->eap_message, pkbuf);
 4890|    214|            if (size < 0) {
  ------------------
  |  Branch (4890:17): [True: 1, False: 213]
  ------------------
 4891|      1|               ogs_error("ogs_nas_5gs_decode_eap_message() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4892|      1|               return size;
 4893|      1|            }
 4894|       |
 4895|    213|            pdu_session_release_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EAP_MESSAGE_PRESENT;
  ------------------
  |  | 1607|    213|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EAP_MESSAGE_PRESENT ((uint64_t)1<<1)
  ------------------
 4896|    213|            decoded += size;
 4897|    213|            break;
 4898|    209|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_TYPE:
  ------------------
  |  | 1615|    209|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_TYPE 0x61
  ------------------
  |  Branch (4898:9): [True: 209, False: 5.58k]
  ------------------
 4899|    209|            size = ogs_nas_5gs_decode_5gsm_congestion_re_attempt_indicator(&pdu_session_release_command->gsm_congestion_re_attempt_indicator, pkbuf);
 4900|    209|            if (size < 0) {
  ------------------
  |  Branch (4900:17): [True: 4, False: 205]
  ------------------
 4901|      4|               ogs_error("ogs_nas_5gs_decode_5gsm_congestion_re_attempt_indicator() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4902|      4|               return size;
 4903|      4|            }
 4904|       |
 4905|    205|            pdu_session_release_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_PRESENT;
  ------------------
  |  | 1608|    205|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_PRESENT ((uint64_t)1<<2)
  ------------------
 4906|    205|            decoded += size;
 4907|    205|            break;
 4908|    195|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1616|    195|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4908:9): [True: 195, False: 5.59k]
  ------------------
 4909|    195|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_release_command->extended_protocol_configuration_options, pkbuf);
 4910|    195|            if (size < 0) {
  ------------------
  |  Branch (4910:17): [True: 1, False: 194]
  ------------------
 4911|      1|               ogs_error("ogs_nas_5gs_decode_extended_protocol_configuration_options() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4912|      1|               return size;
 4913|      1|            }
 4914|       |
 4915|    194|            pdu_session_release_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1609|    194|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<3)
  ------------------
 4916|    194|            decoded += size;
 4917|    194|            break;
 4918|    510|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ACCESS_TYPE_TYPE:
  ------------------
  |  | 1617|    510|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ACCESS_TYPE_TYPE 0xD0
  ------------------
  |  Branch (4918:9): [True: 510, False: 5.28k]
  ------------------
 4919|    510|            decoded--;
 4920|    510|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    510|    do { \
  |  |  114|    510|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    510|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 510, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    510|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|    510|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 510]
  |  |  ------------------
  ------------------
 4921|    510|            size = ogs_nas_5gs_decode_access_type(&pdu_session_release_command->access_type, pkbuf);
 4922|    510|            if (size < 0) {
  ------------------
  |  Branch (4922:17): [True: 0, False: 510]
  ------------------
 4923|      0|               ogs_error("ogs_nas_5gs_decode_access_type() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4924|      0|               return size;
 4925|      0|            }
 4926|       |
 4927|    510|            pdu_session_release_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ACCESS_TYPE_PRESENT;
  ------------------
  |  | 1610|    510|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ACCESS_TYPE_PRESENT ((uint64_t)1<<4)
  ------------------
 4928|    510|            decoded += size;
 4929|    510|            break;
 4930|    198|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  | 1618|    198|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (4930:9): [True: 198, False: 5.59k]
  ------------------
 4931|    198|            size = ogs_nas_5gs_decode_service_level_aa_container(&pdu_session_release_command->service_level_aa_container, pkbuf);
 4932|    198|            if (size < 0) {
  ------------------
  |  Branch (4932:17): [True: 3, False: 195]
  ------------------
 4933|      3|               ogs_error("ogs_nas_5gs_decode_service_level_aa_container() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4934|      3|               return size;
 4935|      3|            }
 4936|       |
 4937|    195|            pdu_session_release_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  | 1611|    195|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<5)
  ------------------
 4938|    195|            decoded += size;
 4939|    195|            break;
 4940|    225|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ALTERNATIVE_S_NSSAI_TYPE:
  ------------------
  |  | 1619|    225|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ALTERNATIVE_S_NSSAI_TYPE 0x5A
  ------------------
  |  Branch (4940:9): [True: 225, False: 5.56k]
  ------------------
 4941|    225|            size = ogs_nas_5gs_decode_s_nssai(&pdu_session_release_command->alternative_s_nssai, pkbuf);
 4942|    225|            if (size < 0) {
  ------------------
  |  Branch (4942:17): [True: 2, False: 223]
  ------------------
 4943|      2|               ogs_error("ogs_nas_5gs_decode_s_nssai() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4944|      2|               return size;
 4945|      2|            }
 4946|       |
 4947|    223|            pdu_session_release_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ALTERNATIVE_S_NSSAI_PRESENT;
  ------------------
  |  | 1612|    223|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ALTERNATIVE_S_NSSAI_PRESENT ((uint64_t)1<<6)
  ------------------
 4948|    223|            decoded += size;
 4949|    223|            break;
 4950|  4.04k|        default:
  ------------------
  |  Branch (4950:9): [True: 4.04k, False: 1.74k]
  ------------------
 4951|  4.04k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  4.04k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  4.04k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  4.04k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  4.04k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  4.04k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  4.04k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4952|  4.04k|            break;
 4953|  5.79k|        }
 4954|  5.79k|    }
 4955|       |
 4956|    104|    return decoded;
 4957|    116|}
ogs_nas_5gs_decode_pdu_session_release_complete:
 4960|     60|{
 4961|     60|    ogs_nas_5gs_pdu_session_release_complete_t *pdu_session_release_complete = &message->gsm.pdu_session_release_complete;
 4962|     60|    int decoded = 0;
 4963|     60|    int size = 0;
 4964|       |
 4965|     60|    ogs_trace("[NAS] Decode PDU_SESSION_RELEASE_COMPLETE\n");
  ------------------
  |  |   40|     60|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     60|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     60|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     60|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     60|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     60|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4966|       |
 4967|  2.40k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4967:12): [True: 2.34k, False: 54]
  ------------------
 4968|  2.34k|        uint8_t *buffer = pkbuf->data;
 4969|  2.34k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4969:24): [True: 823, False: 1.52k]
  ------------------
 4970|       |
 4971|  2.34k|        size = sizeof(uint8_t);
 4972|  2.34k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4972:13): [True: 0, False: 2.34k]
  ------------------
 4973|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4974|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 4975|      0|        }
 4976|  2.34k|        decoded += size;
 4977|       |
 4978|  2.34k|        switch(type) {
 4979|    200|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_5GSM_CAUSE_TYPE:
  ------------------
  |  | 1642|    200|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_5GSM_CAUSE_TYPE 0x59
  ------------------
  |  Branch (4979:9): [True: 200, False: 2.14k]
  ------------------
 4980|    200|            size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_release_complete->gsm_cause, pkbuf);
 4981|    200|            if (size < 0) {
  ------------------
  |  Branch (4981:17): [True: 2, False: 198]
  ------------------
 4982|      2|               ogs_error("ogs_nas_5gs_decode_5gsm_cause() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4983|      2|               return size;
 4984|      2|            }
 4985|       |
 4986|    198|            pdu_session_release_complete->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_5GSM_CAUSE_PRESENT;
  ------------------
  |  | 1640|    198|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_5GSM_CAUSE_PRESENT ((uint64_t)1<<0)
  ------------------
 4987|    198|            decoded += size;
 4988|    198|            break;
 4989|    206|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1643|    206|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4989:9): [True: 206, False: 2.14k]
  ------------------
 4990|    206|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_release_complete->extended_protocol_configuration_options, pkbuf);
 4991|    206|            if (size < 0) {
  ------------------
  |  Branch (4991:17): [True: 4, False: 202]
  ------------------
 4992|      4|               ogs_error("ogs_nas_5gs_decode_extended_protocol_configuration_options() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4993|      4|               return size;
 4994|      4|            }
 4995|       |
 4996|    202|            pdu_session_release_complete->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1641|    202|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<1)
  ------------------
 4997|    202|            decoded += size;
 4998|    202|            break;
 4999|  1.94k|        default:
  ------------------
  |  Branch (4999:9): [True: 1.94k, False: 406]
  ------------------
 5000|  1.94k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.94k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.94k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.94k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.94k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.94k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.94k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5001|  1.94k|            break;
 5002|  2.34k|        }
 5003|  2.34k|    }
 5004|       |
 5005|     54|    return decoded;
 5006|     60|}
ogs_nas_5gs_decode_5gsm_status:
 5009|      2|{
 5010|      2|    ogs_nas_5gs_5gsm_status_t *gsm_status = &message->gsm.gsm_status;
 5011|      2|    int decoded = 0;
 5012|      2|    int size = 0;
 5013|       |
 5014|      2|    ogs_trace("[NAS] Decode 5GSM_STATUS\n");
  ------------------
  |  |   40|      2|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5015|       |
 5016|      2|    size = ogs_nas_5gs_decode_5gsm_cause(&gsm_status->gsm_cause, pkbuf);
 5017|      2|    if (size < 0) {
  ------------------
  |  Branch (5017:9): [True: 1, False: 1]
  ------------------
 5018|      1|        ogs_error("ogs_nas_5gs_decode_5gsm_cause() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5019|      1|        return size;
 5020|      1|    }
 5021|       |
 5022|      1|    decoded += size;
 5023|       |
 5024|      1|    return decoded;
 5025|      2|}
ogs_nas_5gmm_decode:
 5028|  4.70k|{
 5029|  4.70k|    int size = 0;
 5030|  4.70k|    int decoded = 0;
 5031|       |
 5032|  4.70k|    ogs_assert(pkbuf);
  ------------------
  |  |  113|  4.70k|    do { \
  |  |  114|  4.70k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  4.70k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 4.70k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  4.70k|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|  4.70k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 4.70k]
  |  |  ------------------
  ------------------
 5033|  4.70k|    ogs_assert(pkbuf->data);
  ------------------
  |  |  113|  4.70k|    do { \
  |  |  114|  4.70k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  4.70k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 4.70k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  4.70k|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|  4.70k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 4.70k]
  |  |  ------------------
  ------------------
 5034|       |
 5035|  4.70k|    size = sizeof(ogs_nas_5gmm_header_t);
 5036|  4.70k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5036:9): [True: 0, False: 4.70k]
  ------------------
 5037|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5038|      0|       return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 5039|      0|    }
 5040|       |
 5041|  4.70k|    memset(message, 0, sizeof(ogs_nas_5gs_message_t));
 5042|  4.70k|    memcpy(&message->gmm.h, pkbuf->data - size, size);
 5043|  4.70k|    decoded += size;
 5044|       |
 5045|  4.70k|    switch(message->gmm.h.message_type) {
 5046|    616|    case OGS_NAS_5GS_REGISTRATION_REQUEST:
  ------------------
  |  |   71|    616|#define OGS_NAS_5GS_REGISTRATION_REQUEST 65
  ------------------
  |  Branch (5046:5): [True: 616, False: 4.09k]
  ------------------
 5047|    616|        size = ogs_nas_5gs_decode_registration_request(message, pkbuf);
 5048|    616|        if (size < 0) {
  ------------------
  |  Branch (5048:13): [True: 137, False: 479]
  ------------------
 5049|    137|           ogs_error("ogs_nas_5gs_decode_registration_request() failed");
  ------------------
  |  |   36|    137|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    137|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    137|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    137|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    137|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    137|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5050|    137|           return OGS_ERROR;
  ------------------
  |  |   78|    137|#define OGS_ERROR       -1
  ------------------
 5051|    137|        }
 5052|       |
 5053|    479|        decoded += size;
 5054|    479|        break;
 5055|    988|    case OGS_NAS_5GS_REGISTRATION_ACCEPT:
  ------------------
  |  |   72|    988|#define OGS_NAS_5GS_REGISTRATION_ACCEPT 66
  ------------------
  |  Branch (5055:5): [True: 988, False: 3.71k]
  ------------------
 5056|    988|        size = ogs_nas_5gs_decode_registration_accept(message, pkbuf);
 5057|    988|        if (size < 0) {
  ------------------
  |  Branch (5057:13): [True: 266, False: 722]
  ------------------
 5058|    266|           ogs_error("ogs_nas_5gs_decode_registration_accept() failed");
  ------------------
  |  |   36|    266|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    266|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    266|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    266|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    266|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    266|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5059|    266|           return OGS_ERROR;
  ------------------
  |  |   78|    266|#define OGS_ERROR       -1
  ------------------
 5060|    266|        }
 5061|       |
 5062|    722|        decoded += size;
 5063|    722|        break;
 5064|     72|    case OGS_NAS_5GS_REGISTRATION_COMPLETE:
  ------------------
  |  |   73|     72|#define OGS_NAS_5GS_REGISTRATION_COMPLETE 67
  ------------------
  |  Branch (5064:5): [True: 72, False: 4.63k]
  ------------------
 5065|     72|        size = ogs_nas_5gs_decode_registration_complete(message, pkbuf);
 5066|     72|        if (size < 0) {
  ------------------
  |  Branch (5066:13): [True: 21, False: 51]
  ------------------
 5067|     21|           ogs_error("ogs_nas_5gs_decode_registration_complete() failed");
  ------------------
  |  |   36|     21|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     21|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     21|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     21|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     21|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     21|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5068|     21|           return OGS_ERROR;
  ------------------
  |  |   78|     21|#define OGS_ERROR       -1
  ------------------
 5069|     21|        }
 5070|       |
 5071|     51|        decoded += size;
 5072|     51|        break;
 5073|    221|    case OGS_NAS_5GS_REGISTRATION_REJECT:
  ------------------
  |  |   74|    221|#define OGS_NAS_5GS_REGISTRATION_REJECT 68
  ------------------
  |  Branch (5073:5): [True: 221, False: 4.48k]
  ------------------
 5074|    221|        size = ogs_nas_5gs_decode_registration_reject(message, pkbuf);
 5075|    221|        if (size < 0) {
  ------------------
  |  Branch (5075:13): [True: 52, False: 169]
  ------------------
 5076|     52|           ogs_error("ogs_nas_5gs_decode_registration_reject() failed");
  ------------------
  |  |   36|     52|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     52|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     52|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     52|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     52|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     52|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5077|     52|           return OGS_ERROR;
  ------------------
  |  |   78|     52|#define OGS_ERROR       -1
  ------------------
 5078|     52|        }
 5079|       |
 5080|    169|        decoded += size;
 5081|    169|        break;
 5082|     61|    case OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE:
  ------------------
  |  |   75|     61|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE 69
  ------------------
  |  Branch (5082:5): [True: 61, False: 4.64k]
  ------------------
 5083|     61|        size = ogs_nas_5gs_decode_deregistration_request_from_ue(message, pkbuf);
 5084|     61|        if (size < 0) {
  ------------------
  |  Branch (5084:13): [True: 5, False: 56]
  ------------------
 5085|      5|           ogs_error("ogs_nas_5gs_decode_deregistration_request_from_ue() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5086|      5|           return OGS_ERROR;
  ------------------
  |  |   78|      5|#define OGS_ERROR       -1
  ------------------
 5087|      5|        }
 5088|       |
 5089|     56|        decoded += size;
 5090|     56|        break;
 5091|      1|    case OGS_NAS_5GS_DEREGISTRATION_ACCEPT_FROM_UE:
  ------------------
  |  |   76|      1|#define OGS_NAS_5GS_DEREGISTRATION_ACCEPT_FROM_UE 70
  ------------------
  |  Branch (5091:5): [True: 1, False: 4.70k]
  ------------------
 5092|      1|        break;
 5093|    171|    case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE:
  ------------------
  |  |   77|    171|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE 71
  ------------------
  |  Branch (5093:5): [True: 171, False: 4.53k]
  ------------------
 5094|    171|        size = ogs_nas_5gs_decode_deregistration_request_to_ue(message, pkbuf);
 5095|    171|        if (size < 0) {
  ------------------
  |  Branch (5095:13): [True: 30, False: 141]
  ------------------
 5096|     30|           ogs_error("ogs_nas_5gs_decode_deregistration_request_to_ue() failed");
  ------------------
  |  |   36|     30|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     30|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     30|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     30|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     30|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     30|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5097|     30|           return OGS_ERROR;
  ------------------
  |  |   78|     30|#define OGS_ERROR       -1
  ------------------
 5098|     30|        }
 5099|       |
 5100|    141|        decoded += size;
 5101|    141|        break;
 5102|      1|    case OGS_NAS_5GS_DEREGISTRATION_ACCEPT_TO_UE:
  ------------------
  |  |   78|      1|#define OGS_NAS_5GS_DEREGISTRATION_ACCEPT_TO_UE 72
  ------------------
  |  Branch (5102:5): [True: 1, False: 4.70k]
  ------------------
 5103|      1|        break;
 5104|    124|    case OGS_NAS_5GS_SERVICE_REQUEST:
  ------------------
  |  |   79|    124|#define OGS_NAS_5GS_SERVICE_REQUEST 76
  ------------------
  |  Branch (5104:5): [True: 124, False: 4.58k]
  ------------------
 5105|    124|        size = ogs_nas_5gs_decode_service_request(message, pkbuf);
 5106|    124|        if (size < 0) {
  ------------------
  |  Branch (5106:13): [True: 23, False: 101]
  ------------------
 5107|     23|           ogs_error("ogs_nas_5gs_decode_service_request() failed");
  ------------------
  |  |   36|     23|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     23|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     23|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     23|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     23|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     23|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5108|     23|           return OGS_ERROR;
  ------------------
  |  |   78|     23|#define OGS_ERROR       -1
  ------------------
 5109|     23|        }
 5110|       |
 5111|    101|        decoded += size;
 5112|    101|        break;
 5113|    164|    case OGS_NAS_5GS_SERVICE_REJECT:
  ------------------
  |  |   80|    164|#define OGS_NAS_5GS_SERVICE_REJECT 77
  ------------------
  |  Branch (5113:5): [True: 164, False: 4.54k]
  ------------------
 5114|    164|        size = ogs_nas_5gs_decode_service_reject(message, pkbuf);
 5115|    164|        if (size < 0) {
  ------------------
  |  Branch (5115:13): [True: 21, False: 143]
  ------------------
 5116|     21|           ogs_error("ogs_nas_5gs_decode_service_reject() failed");
  ------------------
  |  |   36|     21|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     21|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     21|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     21|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     21|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     21|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5117|     21|           return OGS_ERROR;
  ------------------
  |  |   78|     21|#define OGS_ERROR       -1
  ------------------
 5118|     21|        }
 5119|       |
 5120|    143|        decoded += size;
 5121|    143|        break;
 5122|    184|    case OGS_NAS_5GS_SERVICE_ACCEPT:
  ------------------
  |  |   81|    184|#define OGS_NAS_5GS_SERVICE_ACCEPT 78
  ------------------
  |  Branch (5122:5): [True: 184, False: 4.52k]
  ------------------
 5123|    184|        size = ogs_nas_5gs_decode_service_accept(message, pkbuf);
 5124|    184|        if (size < 0) {
  ------------------
  |  Branch (5124:13): [True: 49, False: 135]
  ------------------
 5125|     49|           ogs_error("ogs_nas_5gs_decode_service_accept() failed");
  ------------------
  |  |   36|     49|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     49|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     49|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     49|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     49|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     49|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5126|     49|           return OGS_ERROR;
  ------------------
  |  |   78|     49|#define OGS_ERROR       -1
  ------------------
 5127|     49|        }
 5128|       |
 5129|    135|        decoded += size;
 5130|    135|        break;
 5131|  1.00k|    case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND:
  ------------------
  |  |   82|  1.00k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND 84
  ------------------
  |  Branch (5131:5): [True: 1.00k, False: 3.70k]
  ------------------
 5132|  1.00k|        size = ogs_nas_5gs_decode_configuration_update_command(message, pkbuf);
 5133|  1.00k|        if (size < 0) {
  ------------------
  |  Branch (5133:13): [True: 271, False: 731]
  ------------------
 5134|    271|           ogs_error("ogs_nas_5gs_decode_configuration_update_command() failed");
  ------------------
  |  |   36|    271|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    271|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    271|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    271|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    271|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    271|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5135|    271|           return OGS_ERROR;
  ------------------
  |  |   78|    271|#define OGS_ERROR       -1
  ------------------
 5136|    271|        }
 5137|       |
 5138|    731|        decoded += size;
 5139|    731|        break;
 5140|      1|    case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE:
  ------------------
  |  |   83|      1|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMPLETE 85
  ------------------
  |  Branch (5140:5): [True: 1, False: 4.70k]
  ------------------
 5141|      1|        break;
 5142|    107|    case OGS_NAS_5GS_AUTHENTICATION_REQUEST:
  ------------------
  |  |   84|    107|#define OGS_NAS_5GS_AUTHENTICATION_REQUEST 86
  ------------------
  |  Branch (5142:5): [True: 107, False: 4.60k]
  ------------------
 5143|    107|        size = ogs_nas_5gs_decode_authentication_request(message, pkbuf);
 5144|    107|        if (size < 0) {
  ------------------
  |  Branch (5144:13): [True: 24, False: 83]
  ------------------
 5145|     24|           ogs_error("ogs_nas_5gs_decode_authentication_request() failed");
  ------------------
  |  |   36|     24|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     24|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     24|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     24|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     24|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     24|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5146|     24|           return OGS_ERROR;
  ------------------
  |  |   78|     24|#define OGS_ERROR       -1
  ------------------
 5147|     24|        }
 5148|       |
 5149|     83|        decoded += size;
 5150|     83|        break;
 5151|     72|    case OGS_NAS_5GS_AUTHENTICATION_RESPONSE:
  ------------------
  |  |   85|     72|#define OGS_NAS_5GS_AUTHENTICATION_RESPONSE 87
  ------------------
  |  Branch (5151:5): [True: 72, False: 4.63k]
  ------------------
 5152|     72|        size = ogs_nas_5gs_decode_authentication_response(message, pkbuf);
 5153|     72|        if (size < 0) {
  ------------------
  |  Branch (5153:13): [True: 5, False: 67]
  ------------------
 5154|      5|           ogs_error("ogs_nas_5gs_decode_authentication_response() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5155|      5|           return OGS_ERROR;
  ------------------
  |  |   78|      5|#define OGS_ERROR       -1
  ------------------
 5156|      5|        }
 5157|       |
 5158|     67|        decoded += size;
 5159|     67|        break;
 5160|     60|    case OGS_NAS_5GS_AUTHENTICATION_REJECT:
  ------------------
  |  |   86|     60|#define OGS_NAS_5GS_AUTHENTICATION_REJECT 88
  ------------------
  |  Branch (5160:5): [True: 60, False: 4.64k]
  ------------------
 5161|     60|        size = ogs_nas_5gs_decode_authentication_reject(message, pkbuf);
 5162|     60|        if (size < 0) {
  ------------------
  |  Branch (5162:13): [True: 3, False: 57]
  ------------------
 5163|      3|           ogs_error("ogs_nas_5gs_decode_authentication_reject() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5164|      3|           return OGS_ERROR;
  ------------------
  |  |   78|      3|#define OGS_ERROR       -1
  ------------------
 5165|      3|        }
 5166|       |
 5167|     57|        decoded += size;
 5168|     57|        break;
 5169|     61|    case OGS_NAS_5GS_AUTHENTICATION_FAILURE:
  ------------------
  |  |   87|     61|#define OGS_NAS_5GS_AUTHENTICATION_FAILURE 89
  ------------------
  |  Branch (5169:5): [True: 61, False: 4.64k]
  ------------------
 5170|     61|        size = ogs_nas_5gs_decode_authentication_failure(message, pkbuf);
 5171|     61|        if (size < 0) {
  ------------------
  |  Branch (5171:13): [True: 6, False: 55]
  ------------------
 5172|      6|           ogs_error("ogs_nas_5gs_decode_authentication_failure() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5173|      6|           return OGS_ERROR;
  ------------------
  |  |   78|      6|#define OGS_ERROR       -1
  ------------------
 5174|      6|        }
 5175|       |
 5176|     55|        decoded += size;
 5177|     55|        break;
 5178|     68|    case OGS_NAS_5GS_AUTHENTICATION_RESULT:
  ------------------
  |  |   88|     68|#define OGS_NAS_5GS_AUTHENTICATION_RESULT 90
  ------------------
  |  Branch (5178:5): [True: 68, False: 4.63k]
  ------------------
 5179|     68|        size = ogs_nas_5gs_decode_authentication_result(message, pkbuf);
 5180|     68|        if (size < 0) {
  ------------------
  |  Branch (5180:13): [True: 16, False: 52]
  ------------------
 5181|     16|           ogs_error("ogs_nas_5gs_decode_authentication_result() failed");
  ------------------
  |  |   36|     16|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     16|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     16|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     16|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     16|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     16|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5182|     16|           return OGS_ERROR;
  ------------------
  |  |   78|     16|#define OGS_ERROR       -1
  ------------------
 5183|     16|        }
 5184|       |
 5185|     52|        decoded += size;
 5186|     52|        break;
 5187|      1|    case OGS_NAS_5GS_IDENTITY_REQUEST:
  ------------------
  |  |   89|      1|#define OGS_NAS_5GS_IDENTITY_REQUEST 91
  ------------------
  |  Branch (5187:5): [True: 1, False: 4.70k]
  ------------------
 5188|      1|        size = ogs_nas_5gs_decode_identity_request(message, pkbuf);
 5189|      1|        if (size < 0) {
  ------------------
  |  Branch (5189:13): [True: 0, False: 1]
  ------------------
 5190|      0|           ogs_error("ogs_nas_5gs_decode_identity_request() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5191|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 5192|      0|        }
 5193|       |
 5194|      1|        decoded += size;
 5195|      1|        break;
 5196|     22|    case OGS_NAS_5GS_IDENTITY_RESPONSE:
  ------------------
  |  |   90|     22|#define OGS_NAS_5GS_IDENTITY_RESPONSE 92
  ------------------
  |  Branch (5196:5): [True: 22, False: 4.68k]
  ------------------
 5197|     22|        size = ogs_nas_5gs_decode_identity_response(message, pkbuf);
 5198|     22|        if (size < 0) {
  ------------------
  |  Branch (5198:13): [True: 15, False: 7]
  ------------------
 5199|     15|           ogs_error("ogs_nas_5gs_decode_identity_response() failed");
  ------------------
  |  |   36|     15|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     15|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     15|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     15|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     15|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     15|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5200|     15|           return OGS_ERROR;
  ------------------
  |  |   78|     15|#define OGS_ERROR       -1
  ------------------
 5201|     15|        }
 5202|       |
 5203|      7|        decoded += size;
 5204|      7|        break;
 5205|    143|    case OGS_NAS_5GS_SECURITY_MODE_COMMAND:
  ------------------
  |  |   91|    143|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND 93
  ------------------
  |  Branch (5205:5): [True: 143, False: 4.56k]
  ------------------
 5206|    143|        size = ogs_nas_5gs_decode_security_mode_command(message, pkbuf);
 5207|    143|        if (size < 0) {
  ------------------
  |  Branch (5207:13): [True: 30, False: 113]
  ------------------
 5208|     30|           ogs_error("ogs_nas_5gs_decode_security_mode_command() failed");
  ------------------
  |  |   36|     30|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     30|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     30|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     30|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     30|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     30|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5209|     30|           return OGS_ERROR;
  ------------------
  |  |   78|     30|#define OGS_ERROR       -1
  ------------------
 5210|     30|        }
 5211|       |
 5212|    113|        decoded += size;
 5213|    113|        break;
 5214|    100|    case OGS_NAS_5GS_SECURITY_MODE_COMPLETE:
  ------------------
  |  |   92|    100|#define OGS_NAS_5GS_SECURITY_MODE_COMPLETE 94
  ------------------
  |  Branch (5214:5): [True: 100, False: 4.60k]
  ------------------
 5215|    100|        size = ogs_nas_5gs_decode_security_mode_complete(message, pkbuf);
 5216|    100|        if (size < 0) {
  ------------------
  |  Branch (5216:13): [True: 27, False: 73]
  ------------------
 5217|     27|           ogs_error("ogs_nas_5gs_decode_security_mode_complete() failed");
  ------------------
  |  |   36|     27|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     27|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     27|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     27|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     27|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     27|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5218|     27|           return OGS_ERROR;
  ------------------
  |  |   78|     27|#define OGS_ERROR       -1
  ------------------
 5219|     27|        }
 5220|       |
 5221|     73|        decoded += size;
 5222|     73|        break;
 5223|      1|    case OGS_NAS_5GS_SECURITY_MODE_REJECT:
  ------------------
  |  |   93|      1|#define OGS_NAS_5GS_SECURITY_MODE_REJECT 95
  ------------------
  |  Branch (5223:5): [True: 1, False: 4.70k]
  ------------------
 5224|      1|        size = ogs_nas_5gs_decode_security_mode_reject(message, pkbuf);
 5225|      1|        if (size < 0) {
  ------------------
  |  Branch (5225:13): [True: 0, False: 1]
  ------------------
 5226|      0|           ogs_error("ogs_nas_5gs_decode_security_mode_reject() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5227|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 5228|      0|        }
 5229|       |
 5230|      1|        decoded += size;
 5231|      1|        break;
 5232|      1|    case OGS_NAS_5GS_5GMM_STATUS:
  ------------------
  |  |   94|      1|#define OGS_NAS_5GS_5GMM_STATUS 100
  ------------------
  |  Branch (5232:5): [True: 1, False: 4.70k]
  ------------------
 5233|      1|        size = ogs_nas_5gs_decode_5gmm_status(message, pkbuf);
 5234|      1|        if (size < 0) {
  ------------------
  |  Branch (5234:13): [True: 0, False: 1]
  ------------------
 5235|      0|           ogs_error("ogs_nas_5gs_decode_5gmm_status() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5236|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 5237|      0|        }
 5238|       |
 5239|      1|        decoded += size;
 5240|      1|        break;
 5241|      1|    case OGS_NAS_5GS_NOTIFICATION:
  ------------------
  |  |   95|      1|#define OGS_NAS_5GS_NOTIFICATION 101
  ------------------
  |  Branch (5241:5): [True: 1, False: 4.70k]
  ------------------
 5242|      1|        size = ogs_nas_5gs_decode_notification(message, pkbuf);
 5243|      1|        if (size < 0) {
  ------------------
  |  Branch (5243:13): [True: 0, False: 1]
  ------------------
 5244|      0|           ogs_error("ogs_nas_5gs_decode_notification() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5245|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 5246|      0|        }
 5247|       |
 5248|      1|        decoded += size;
 5249|      1|        break;
 5250|     63|    case OGS_NAS_5GS_NOTIFICATION_RESPONSE:
  ------------------
  |  |   96|     63|#define OGS_NAS_5GS_NOTIFICATION_RESPONSE 102
  ------------------
  |  Branch (5250:5): [True: 63, False: 4.64k]
  ------------------
 5251|     63|        size = ogs_nas_5gs_decode_notification_response(message, pkbuf);
 5252|     63|        if (size < 0) {
  ------------------
  |  Branch (5252:13): [True: 7, False: 56]
  ------------------
 5253|      7|           ogs_error("ogs_nas_5gs_decode_notification_response() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5254|      7|           return OGS_ERROR;
  ------------------
  |  |   78|      7|#define OGS_ERROR       -1
  ------------------
 5255|      7|        }
 5256|       |
 5257|     56|        decoded += size;
 5258|     56|        break;
 5259|    299|    case OGS_NAS_5GS_UL_NAS_TRANSPORT:
  ------------------
  |  |   97|    299|#define OGS_NAS_5GS_UL_NAS_TRANSPORT 103
  ------------------
  |  Branch (5259:5): [True: 299, False: 4.40k]
  ------------------
 5260|    299|        size = ogs_nas_5gs_decode_ul_nas_transport(message, pkbuf);
 5261|    299|        if (size < 0) {
  ------------------
  |  Branch (5261:13): [True: 34, False: 265]
  ------------------
 5262|     34|           ogs_error("ogs_nas_5gs_decode_ul_nas_transport() failed");
  ------------------
  |  |   36|     34|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     34|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     34|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     34|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     34|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     34|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5263|     34|           return OGS_ERROR;
  ------------------
  |  |   78|     34|#define OGS_ERROR       -1
  ------------------
 5264|     34|        }
 5265|       |
 5266|    265|        decoded += size;
 5267|    265|        break;
 5268|    101|    case OGS_NAS_5GS_DL_NAS_TRANSPORT:
  ------------------
  |  |   98|    101|#define OGS_NAS_5GS_DL_NAS_TRANSPORT 104
  ------------------
  |  Branch (5268:5): [True: 101, False: 4.60k]
  ------------------
 5269|    101|        size = ogs_nas_5gs_decode_dl_nas_transport(message, pkbuf);
 5270|    101|        if (size < 0) {
  ------------------
  |  Branch (5270:13): [True: 19, False: 82]
  ------------------
 5271|     19|           ogs_error("ogs_nas_5gs_decode_dl_nas_transport() failed");
  ------------------
  |  |   36|     19|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     19|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     19|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     19|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     19|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     19|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5272|     19|           return OGS_ERROR;
  ------------------
  |  |   78|     19|#define OGS_ERROR       -1
  ------------------
 5273|     19|        }
 5274|       |
 5275|     82|        decoded += size;
 5276|     82|        break;
 5277|      1|    default:
  ------------------
  |  Branch (5277:5): [True: 1, False: 4.70k]
  ------------------
 5278|      1|        ogs_error("Unknown message type (0x%x) or not implemented", 
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5279|      1|                message->gmm.h.message_type);
 5280|      1|        break;
 5281|  4.70k|    }
 5282|       |
 5283|  3.64k|    ogs_assert(ogs_pkbuf_push(pkbuf, decoded));
  ------------------
  |  |  113|  3.64k|    do { \
  |  |  114|  3.64k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  3.64k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 3.64k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  3.64k|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|  3.64k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 3.64k]
  |  |  ------------------
  ------------------
 5284|       |
 5285|  3.64k|    return OGS_OK;
  ------------------
  |  |   77|  3.64k|#define OGS_OK           0
  ------------------
 5286|  3.64k|}
ogs_nas_5gsm_decode:
 5288|  2.26k|{
 5289|  2.26k|    int size = 0;
 5290|  2.26k|    int decoded = 0;
 5291|       |
 5292|  2.26k|    ogs_assert(pkbuf);
  ------------------
  |  |  113|  2.26k|    do { \
  |  |  114|  2.26k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  2.26k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 2.26k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  2.26k|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|  2.26k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 2.26k]
  |  |  ------------------
  ------------------
 5293|  2.26k|    ogs_assert(pkbuf->data);
  ------------------
  |  |  113|  2.26k|    do { \
  |  |  114|  2.26k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  2.26k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 2.26k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  2.26k|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|  2.26k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 2.26k]
  |  |  ------------------
  ------------------
 5294|       |
 5295|  2.26k|    size = sizeof(ogs_nas_5gsm_header_t);
 5296|  2.26k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5296:9): [True: 0, False: 2.26k]
  ------------------
 5297|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5298|      0|       return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 5299|      0|    }
 5300|       |
 5301|  2.26k|    memset(message, 0, sizeof(ogs_nas_5gs_message_t));
 5302|  2.26k|    memcpy(&message->gsm.h, pkbuf->data - size, size);
 5303|  2.26k|    decoded += size;
 5304|       |
 5305|  2.26k|    switch(message->gsm.h.message_type) {
 5306|    305|    case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST:
  ------------------
  |  |   99|    305|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST 193
  ------------------
  |  Branch (5306:5): [True: 305, False: 1.96k]
  ------------------
 5307|    305|        size = ogs_nas_5gs_decode_pdu_session_establishment_request(message, pkbuf);
 5308|    305|        if (size < 0) {
  ------------------
  |  Branch (5308:13): [True: 66, False: 239]
  ------------------
 5309|     66|           ogs_error("ogs_nas_5gs_decode_pdu_session_establishment_request() failed");
  ------------------
  |  |   36|     66|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     66|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     66|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     66|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     66|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     66|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5310|     66|           return OGS_ERROR;
  ------------------
  |  |   78|     66|#define OGS_ERROR       -1
  ------------------
 5311|     66|        }
 5312|       |
 5313|    239|        decoded += size;
 5314|    239|        break;
 5315|    368|    case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT:
  ------------------
  |  |  100|    368|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT 194
  ------------------
  |  Branch (5315:5): [True: 368, False: 1.90k]
  ------------------
 5316|    368|        size = ogs_nas_5gs_decode_pdu_session_establishment_accept(message, pkbuf);
 5317|    368|        if (size < 0) {
  ------------------
  |  Branch (5317:13): [True: 79, False: 289]
  ------------------
 5318|     79|           ogs_error("ogs_nas_5gs_decode_pdu_session_establishment_accept() failed");
  ------------------
  |  |   36|     79|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     79|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     79|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     79|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     79|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     79|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5319|     79|           return OGS_ERROR;
  ------------------
  |  |   78|     79|#define OGS_ERROR       -1
  ------------------
 5320|     79|        }
 5321|       |
 5322|    289|        decoded += size;
 5323|    289|        break;
 5324|    132|    case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT:
  ------------------
  |  |  101|    132|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT 195
  ------------------
  |  Branch (5324:5): [True: 132, False: 2.13k]
  ------------------
 5325|    132|        size = ogs_nas_5gs_decode_pdu_session_establishment_reject(message, pkbuf);
 5326|    132|        if (size < 0) {
  ------------------
  |  Branch (5326:13): [True: 19, False: 113]
  ------------------
 5327|     19|           ogs_error("ogs_nas_5gs_decode_pdu_session_establishment_reject() failed");
  ------------------
  |  |   36|     19|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     19|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     19|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     19|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     19|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     19|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5328|     19|           return OGS_ERROR;
  ------------------
  |  |   78|     19|#define OGS_ERROR       -1
  ------------------
 5329|     19|        }
 5330|       |
 5331|    113|        decoded += size;
 5332|    113|        break;
 5333|     58|    case OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMMAND:
  ------------------
  |  |  102|     58|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMMAND 197
  ------------------
  |  Branch (5333:5): [True: 58, False: 2.21k]
  ------------------
 5334|     58|        size = ogs_nas_5gs_decode_pdu_session_authentication_command(message, pkbuf);
 5335|     58|        if (size < 0) {
  ------------------
  |  Branch (5335:13): [True: 12, False: 46]
  ------------------
 5336|     12|           ogs_error("ogs_nas_5gs_decode_pdu_session_authentication_command() failed");
  ------------------
  |  |   36|     12|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     12|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     12|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     12|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     12|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     12|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5337|     12|           return OGS_ERROR;
  ------------------
  |  |   78|     12|#define OGS_ERROR       -1
  ------------------
 5338|     12|        }
 5339|       |
 5340|     46|        decoded += size;
 5341|     46|        break;
 5342|     67|    case OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMPLETE:
  ------------------
  |  |  103|     67|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMPLETE 198
  ------------------
  |  Branch (5342:5): [True: 67, False: 2.20k]
  ------------------
 5343|     67|        size = ogs_nas_5gs_decode_pdu_session_authentication_complete(message, pkbuf);
 5344|     67|        if (size < 0) {
  ------------------
  |  Branch (5344:13): [True: 7, False: 60]
  ------------------
 5345|      7|           ogs_error("ogs_nas_5gs_decode_pdu_session_authentication_complete() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5346|      7|           return OGS_ERROR;
  ------------------
  |  |   78|      7|#define OGS_ERROR       -1
  ------------------
 5347|      7|        }
 5348|       |
 5349|     60|        decoded += size;
 5350|     60|        break;
 5351|     59|    case OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT:
  ------------------
  |  |  104|     59|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT 199
  ------------------
  |  Branch (5351:5): [True: 59, False: 2.21k]
  ------------------
 5352|     59|        size = ogs_nas_5gs_decode_pdu_session_authentication_result(message, pkbuf);
 5353|     59|        if (size < 0) {
  ------------------
  |  Branch (5353:13): [True: 8, False: 51]
  ------------------
 5354|      8|           ogs_error("ogs_nas_5gs_decode_pdu_session_authentication_result() failed");
  ------------------
  |  |   36|      8|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      8|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      8|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      8|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      8|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      8|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5355|      8|           return OGS_ERROR;
  ------------------
  |  |   78|      8|#define OGS_ERROR       -1
  ------------------
 5356|      8|        }
 5357|       |
 5358|     51|        decoded += size;
 5359|     51|        break;
 5360|    359|    case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST:
  ------------------
  |  |  105|    359|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST 201
  ------------------
  |  Branch (5360:5): [True: 359, False: 1.91k]
  ------------------
 5361|    359|        size = ogs_nas_5gs_decode_pdu_session_modification_request(message, pkbuf);
 5362|    359|        if (size < 0) {
  ------------------
  |  Branch (5362:13): [True: 123, False: 236]
  ------------------
 5363|    123|           ogs_error("ogs_nas_5gs_decode_pdu_session_modification_request() failed");
  ------------------
  |  |   36|    123|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    123|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    123|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    123|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    123|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    123|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5364|    123|           return OGS_ERROR;
  ------------------
  |  |   78|    123|#define OGS_ERROR       -1
  ------------------
 5365|    123|        }
 5366|       |
 5367|    236|        decoded += size;
 5368|    236|        break;
 5369|     83|    case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT:
  ------------------
  |  |  106|     83|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT 202
  ------------------
  |  Branch (5369:5): [True: 83, False: 2.18k]
  ------------------
 5370|     83|        size = ogs_nas_5gs_decode_pdu_session_modification_reject(message, pkbuf);
 5371|     83|        if (size < 0) {
  ------------------
  |  Branch (5371:13): [True: 5, False: 78]
  ------------------
 5372|      5|           ogs_error("ogs_nas_5gs_decode_pdu_session_modification_reject() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5373|      5|           return OGS_ERROR;
  ------------------
  |  |   78|      5|#define OGS_ERROR       -1
  ------------------
 5374|      5|        }
 5375|       |
 5376|     78|        decoded += size;
 5377|     78|        break;
 5378|    409|    case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND:
  ------------------
  |  |  107|    409|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND 203
  ------------------
  |  Branch (5378:5): [True: 409, False: 1.86k]
  ------------------
 5379|    409|        size = ogs_nas_5gs_decode_pdu_session_modification_command(message, pkbuf);
 5380|    409|        if (size < 0) {
  ------------------
  |  Branch (5380:13): [True: 130, False: 279]
  ------------------
 5381|    130|           ogs_error("ogs_nas_5gs_decode_pdu_session_modification_command() failed");
  ------------------
  |  |   36|    130|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    130|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    130|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    130|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    130|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    130|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5382|    130|           return OGS_ERROR;
  ------------------
  |  |   78|    130|#define OGS_ERROR       -1
  ------------------
 5383|    130|        }
 5384|       |
 5385|    279|        decoded += size;
 5386|    279|        break;
 5387|     83|    case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE:
  ------------------
  |  |  108|     83|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE 204
  ------------------
  |  Branch (5387:5): [True: 83, False: 2.18k]
  ------------------
 5388|     83|        size = ogs_nas_5gs_decode_pdu_session_modification_complete(message, pkbuf);
 5389|     83|        if (size < 0) {
  ------------------
  |  Branch (5389:13): [True: 22, False: 61]
  ------------------
 5390|     22|           ogs_error("ogs_nas_5gs_decode_pdu_session_modification_complete() failed");
  ------------------
  |  |   36|     22|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     22|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     22|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     22|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     22|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     22|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5391|     22|           return OGS_ERROR;
  ------------------
  |  |   78|     22|#define OGS_ERROR       -1
  ------------------
 5392|     22|        }
 5393|       |
 5394|     61|        decoded += size;
 5395|     61|        break;
 5396|     51|    case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_REJECT:
  ------------------
  |  |  109|     51|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_REJECT 205
  ------------------
  |  Branch (5396:5): [True: 51, False: 2.21k]
  ------------------
 5397|     51|        size = ogs_nas_5gs_decode_pdu_session_modification_command_reject(message, pkbuf);
 5398|     51|        if (size < 0) {
  ------------------
  |  Branch (5398:13): [True: 2, False: 49]
  ------------------
 5399|      2|           ogs_error("ogs_nas_5gs_decode_pdu_session_modification_command_reject() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5400|      2|           return OGS_ERROR;
  ------------------
  |  |   78|      2|#define OGS_ERROR       -1
  ------------------
 5401|      2|        }
 5402|       |
 5403|     49|        decoded += size;
 5404|     49|        break;
 5405|     56|    case OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST:
  ------------------
  |  |  110|     56|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST 209
  ------------------
  |  Branch (5405:5): [True: 56, False: 2.21k]
  ------------------
 5406|     56|        size = ogs_nas_5gs_decode_pdu_session_release_request(message, pkbuf);
 5407|     56|        if (size < 0) {
  ------------------
  |  Branch (5407:13): [True: 7, False: 49]
  ------------------
 5408|      7|           ogs_error("ogs_nas_5gs_decode_pdu_session_release_request() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5409|      7|           return OGS_ERROR;
  ------------------
  |  |   78|      7|#define OGS_ERROR       -1
  ------------------
 5410|      7|        }
 5411|       |
 5412|     49|        decoded += size;
 5413|     49|        break;
 5414|     59|    case OGS_NAS_5GS_PDU_SESSION_RELEASE_REJECT:
  ------------------
  |  |  111|     59|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REJECT 210
  ------------------
  |  Branch (5414:5): [True: 59, False: 2.21k]
  ------------------
 5415|     59|        size = ogs_nas_5gs_decode_pdu_session_release_reject(message, pkbuf);
 5416|     59|        if (size < 0) {
  ------------------
  |  Branch (5416:13): [True: 2, False: 57]
  ------------------
 5417|      2|           ogs_error("ogs_nas_5gs_decode_pdu_session_release_reject() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5418|      2|           return OGS_ERROR;
  ------------------
  |  |   78|      2|#define OGS_ERROR       -1
  ------------------
 5419|      2|        }
 5420|       |
 5421|     57|        decoded += size;
 5422|     57|        break;
 5423|    117|    case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND:
  ------------------
  |  |  112|    117|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND 211
  ------------------
  |  Branch (5423:5): [True: 117, False: 2.15k]
  ------------------
 5424|    117|        size = ogs_nas_5gs_decode_pdu_session_release_command(message, pkbuf);
 5425|    117|        if (size < 0) {
  ------------------
  |  Branch (5425:13): [True: 13, False: 104]
  ------------------
 5426|     13|           ogs_error("ogs_nas_5gs_decode_pdu_session_release_command() failed");
  ------------------
  |  |   36|     13|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     13|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     13|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     13|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     13|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     13|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5427|     13|           return OGS_ERROR;
  ------------------
  |  |   78|     13|#define OGS_ERROR       -1
  ------------------
 5428|     13|        }
 5429|       |
 5430|    104|        decoded += size;
 5431|    104|        break;
 5432|     60|    case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE:
  ------------------
  |  |  113|     60|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE 212
  ------------------
  |  Branch (5432:5): [True: 60, False: 2.20k]
  ------------------
 5433|     60|        size = ogs_nas_5gs_decode_pdu_session_release_complete(message, pkbuf);
 5434|     60|        if (size < 0) {
  ------------------
  |  Branch (5434:13): [True: 6, False: 54]
  ------------------
 5435|      6|           ogs_error("ogs_nas_5gs_decode_pdu_session_release_complete() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5436|      6|           return OGS_ERROR;
  ------------------
  |  |   78|      6|#define OGS_ERROR       -1
  ------------------
 5437|      6|        }
 5438|       |
 5439|     54|        decoded += size;
 5440|     54|        break;
 5441|      2|    case OGS_NAS_5GS_5GSM_STATUS:
  ------------------
  |  |  114|      2|#define OGS_NAS_5GS_5GSM_STATUS 214
  ------------------
  |  Branch (5441:5): [True: 2, False: 2.26k]
  ------------------
 5442|      2|        size = ogs_nas_5gs_decode_5gsm_status(message, pkbuf);
 5443|      2|        if (size < 0) {
  ------------------
  |  Branch (5443:13): [True: 1, False: 1]
  ------------------
 5444|      1|           ogs_error("ogs_nas_5gs_decode_5gsm_status() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5445|      1|           return OGS_ERROR;
  ------------------
  |  |   78|      1|#define OGS_ERROR       -1
  ------------------
 5446|      1|        }
 5447|       |
 5448|      1|        decoded += size;
 5449|      1|        break;
 5450|      1|    default:
  ------------------
  |  Branch (5450:5): [True: 1, False: 2.26k]
  ------------------
 5451|      1|        ogs_error("Unknown message type (0x%x) or not implemented", 
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5452|      1|                message->gsm.h.message_type);
 5453|      1|        break;
 5454|  2.26k|    }
 5455|       |
 5456|  1.76k|    ogs_assert(ogs_pkbuf_push(pkbuf, decoded));
  ------------------
  |  |  113|  1.76k|    do { \
  |  |  114|  1.76k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.76k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.76k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.76k|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|  1.76k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.76k]
  |  |  ------------------
  ------------------
 5457|       |
 5458|  1.76k|    return OGS_OK;
  ------------------
  |  |   77|  1.76k|#define OGS_OK           0
  ------------------
 5459|  1.76k|}

ogs_nas_5gs_decode_additional_information:
   49|    462|{
   50|    462|    int size = 0;
   51|    462|    ogs_nas_additional_information_t *source = NULL;
   52|       |
   53|    462|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (53:9): [True: 5, False: 457]
  ------------------
   54|      5|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
   55|      5|       return -1;
   56|      5|    }
   57|       |
   58|    457|    source = (ogs_nas_additional_information_t *)pkbuf->data;
   59|       |
   60|    457|    additional_information->length = source->length;
   61|    457|    size = additional_information->length + sizeof(additional_information->length);
   62|       |
   63|    457|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (63:9): [True: 2, False: 455]
  ------------------
   64|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
   65|      2|       return -1;
   66|      2|    }
   67|       |
   68|    455|    if (sizeof(*additional_information) < size) return -1;
  ------------------
  |  Branch (68:9): [True: 0, False: 455]
  ------------------
   69|    455|    memcpy(additional_information, pkbuf->data - size, size);
   70|       |
   71|    455|    ogs_trace("  ADDITIONAL_INFORMATION - ");
  ------------------
  |  |   40|    455|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    455|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    455|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    455|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    455|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    455|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
   72|    455|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    455|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    455|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
   73|       |
   74|    455|    return size;
   75|    455|}
ogs_nas_5gs_decode_service_level_aa_container:
   95|  1.88k|{
   96|  1.88k|    int size = 0;
   97|  1.88k|    ogs_nas_service_level_aa_container_t *source = NULL;
   98|       |
   99|  1.88k|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (99:9): [True: 12, False: 1.87k]
  ------------------
  100|     12|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|     12|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     12|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     12|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     12|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     12|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     12|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  101|     12|       return -1;
  102|     12|    }
  103|       |
  104|  1.87k|    source = (ogs_nas_service_level_aa_container_t *)pkbuf->data;
  105|       |
  106|  1.87k|    service_level_aa_container->length = be16toh(source->length);
  107|  1.87k|    size = service_level_aa_container->length + sizeof(service_level_aa_container->length);
  108|       |
  109|  1.87k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (109:9): [True: 23, False: 1.85k]
  ------------------
  110|     23|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     23|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     23|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     23|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     23|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     23|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     23|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  111|     23|       return -1;
  112|     23|    }
  113|       |
  114|  1.85k|    service_level_aa_container->buffer = pkbuf->data - size + sizeof(service_level_aa_container->length);
  115|       |
  116|  1.85k|    ogs_trace("  SERVICE_LEVEL_AA_CONTAINER - ");
  ------------------
  |  |   40|  1.85k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.85k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.85k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.85k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.85k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.85k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  117|  1.85k|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)service_level_aa_container->buffer, service_level_aa_container->length);
  ------------------
  |  |   53|  1.85k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.85k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  118|       |
  119|  1.85k|    return size;
  120|  1.87k|}
ogs_nas_5gs_decode_access_type:
  148|    511|{
  149|    511|    int size = sizeof(ogs_nas_access_type_t);
  150|       |
  151|    511|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (151:9): [True: 0, False: 511]
  ------------------
  152|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  153|      0|       return -1;
  154|      0|    }
  155|       |
  156|    511|    memcpy(access_type, pkbuf->data - size, size);
  157|       |
  158|    511|    ogs_trace("  ACCESS_TYPE - ");
  ------------------
  |  |   40|    511|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    511|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    511|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    511|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    511|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    511|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  159|    511|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    511|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    511|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  160|       |
  161|    511|    return size;
  162|    511|}
ogs_nas_5gs_decode_dnn:
  182|  1.60k|{
  183|  1.60k|    int size = 0;
  184|  1.60k|    ogs_nas_dnn_t *source = NULL;
  185|       |
  186|  1.60k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (186:9): [True: 2, False: 1.60k]
  ------------------
  187|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  188|      2|       return -1;
  189|      2|    }
  190|       |
  191|  1.60k|    source = (ogs_nas_dnn_t *)pkbuf->data;
  192|       |
  193|  1.60k|    dnn->length = source->length;
  194|  1.60k|    size = dnn->length + sizeof(dnn->length);
  195|       |
  196|  1.60k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (196:9): [True: 5, False: 1.59k]
  ------------------
  197|      5|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  198|      5|       return -1;
  199|      5|    }
  200|       |
  201|  1.59k|    if (sizeof(*dnn) < size) return -1;
  ------------------
  |  Branch (201:9): [True: 1, False: 1.59k]
  ------------------
  202|  1.59k|    memcpy(dnn, pkbuf->data - size, size);
  203|       |
  204|  1.59k|    {
  205|  1.59k|        char data_network_name[OGS_MAX_DNN_LEN+1];
  206|  1.59k|        int parsed = ogs_fqdn_parse(data_network_name, dnn->value, ogs_min(dnn->length, OGS_MAX_DNN_LEN));
  ------------------
  |  |  179|  1.59k|#define ogs_min(x , y)  (((x) < (y)) ? (x) : (y))
  |  |  ------------------
  |  |  |  Branch (179:26): [True: 1.56k, False: 30]
  |  |  ------------------
  ------------------
  207|  1.59k|        if (parsed > 0) {
  ------------------
  |  Branch (207:13): [True: 549, False: 1.04k]
  ------------------
  208|    549|            dnn->length = parsed;
  209|    549|            ogs_cpystrn(dnn->value, data_network_name, ogs_min(dnn->length, OGS_MAX_DNN_LEN)+1);
  ------------------
  |  |  179|    549|#define ogs_min(x , y)  (((x) < (y)) ? (x) : (y))
  |  |  ------------------
  |  |  |  Branch (179:26): [True: 549, False: 0]
  |  |  ------------------
  ------------------
  210|  1.04k|        } else {
  211|  1.04k|            ogs_error("UE not APN setting");
  ------------------
  |  |   36|  1.04k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.04k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.04k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.04k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.04k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.04k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  212|  1.04k|        }
  213|  1.59k|    }
  214|       |
  215|  1.59k|    ogs_trace("  DNN - ");
  ------------------
  |  |   40|  1.59k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.59k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.59k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.59k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.59k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.59k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  216|  1.59k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.59k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.59k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  217|       |
  218|  1.59k|    return size;
  219|  1.59k|}
ogs_nas_5gs_decode_eap_message:
  242|  2.77k|{
  243|  2.77k|    int size = 0;
  244|  2.77k|    ogs_nas_eap_message_t *source = NULL;
  245|       |
  246|  2.77k|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (246:9): [True: 18, False: 2.75k]
  ------------------
  247|     18|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|     18|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     18|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     18|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     18|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     18|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     18|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  248|     18|       return -1;
  249|     18|    }
  250|       |
  251|  2.75k|    source = (ogs_nas_eap_message_t *)pkbuf->data;
  252|       |
  253|  2.75k|    eap_message->length = be16toh(source->length);
  254|  2.75k|    size = eap_message->length + sizeof(eap_message->length);
  255|       |
  256|  2.75k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (256:9): [True: 25, False: 2.72k]
  ------------------
  257|     25|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     25|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     25|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     25|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     25|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     25|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     25|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  258|     25|       return -1;
  259|     25|    }
  260|       |
  261|  2.72k|    eap_message->buffer = pkbuf->data - size + sizeof(eap_message->length);
  262|       |
  263|  2.72k|    ogs_trace("  EAP_MESSAGE - ");
  ------------------
  |  |   40|  2.72k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.72k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.72k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.72k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.72k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.72k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  264|  2.72k|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)eap_message->buffer, eap_message->length);
  ------------------
  |  |   53|  2.72k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  2.72k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  265|       |
  266|  2.72k|    return size;
  267|  2.75k|}
ogs_nas_5gs_decode_unavailability_information:
  295|    401|{
  296|    401|    int size = 0;
  297|    401|    ogs_nas_unavailability_information_t *source = NULL;
  298|       |
  299|    401|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (299:9): [True: 2, False: 399]
  ------------------
  300|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  301|      2|       return -1;
  302|      2|    }
  303|       |
  304|    399|    source = (ogs_nas_unavailability_information_t *)pkbuf->data;
  305|       |
  306|    399|    unavailability_information->length = source->length;
  307|    399|    size = unavailability_information->length + sizeof(unavailability_information->length);
  308|       |
  309|    399|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (309:9): [True: 1, False: 398]
  ------------------
  310|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  311|      1|       return -1;
  312|      1|    }
  313|       |
  314|    398|    if (sizeof(*unavailability_information) < size) return -1;
  ------------------
  |  Branch (314:9): [True: 1, False: 397]
  ------------------
  315|    397|    memcpy(unavailability_information, pkbuf->data - size, size);
  316|       |
  317|    397|    ogs_trace("  UNAVAILABILITY_INFORMATION - ");
  ------------------
  |  |   40|    397|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    397|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    397|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    397|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    397|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    397|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  318|    397|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    397|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    397|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  319|       |
  320|    397|    return size;
  321|    398|}
ogs_nas_5gs_decode_unavailability_configuration:
  341|    207|{
  342|    207|    int size = 0;
  343|    207|    ogs_nas_unavailability_configuration_t *source = NULL;
  344|       |
  345|    207|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (345:9): [True: 4, False: 203]
  ------------------
  346|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  347|      4|       return -1;
  348|      4|    }
  349|       |
  350|    203|    source = (ogs_nas_unavailability_configuration_t *)pkbuf->data;
  351|       |
  352|    203|    unavailability_configuration->length = source->length;
  353|    203|    size = unavailability_configuration->length + sizeof(unavailability_configuration->length);
  354|       |
  355|    203|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (355:9): [True: 1, False: 202]
  ------------------
  356|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  357|      1|       return -1;
  358|      1|    }
  359|       |
  360|    202|    if (sizeof(*unavailability_configuration) < size) return -1;
  ------------------
  |  Branch (360:9): [True: 1, False: 201]
  ------------------
  361|    201|    memcpy(unavailability_configuration, pkbuf->data - size, size);
  362|       |
  363|    201|    ogs_trace("  UNAVAILABILITY_CONFIGURATION - ");
  ------------------
  |  |   40|    201|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    201|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    201|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    201|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    201|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    201|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  364|    201|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    201|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    201|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  365|       |
  366|    201|    return size;
  367|    202|}
ogs_nas_5gs_decode_gprs_timer:
  387|    400|{
  388|    400|    int size = sizeof(ogs_nas_gprs_timer_t);
  389|       |
  390|    400|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (390:9): [True: 3, False: 397]
  ------------------
  391|      3|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  392|      3|       return -1;
  393|      3|    }
  394|       |
  395|    397|    memcpy(gprs_timer, pkbuf->data - size, size);
  396|       |
  397|    397|    ogs_trace("  GPRS_TIMER - ");
  ------------------
  |  |   40|    397|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    397|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    397|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    397|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    397|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    397|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  398|    397|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    397|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    397|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  399|       |
  400|    397|    return size;
  401|    400|}
ogs_nas_5gs_decode_gprs_timer_2:
  421|  1.90k|{
  422|  1.90k|    int size = 0;
  423|  1.90k|    ogs_nas_gprs_timer_2_t *source = NULL;
  424|       |
  425|  1.90k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (425:9): [True: 10, False: 1.89k]
  ------------------
  426|     10|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|     10|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     10|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     10|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     10|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     10|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     10|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  427|     10|       return -1;
  428|     10|    }
  429|       |
  430|  1.89k|    source = (ogs_nas_gprs_timer_2_t *)pkbuf->data;
  431|       |
  432|  1.89k|    gprs_timer_2->length = source->length;
  433|  1.89k|    size = gprs_timer_2->length + sizeof(gprs_timer_2->length);
  434|       |
  435|  1.89k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (435:9): [True: 3, False: 1.89k]
  ------------------
  436|      3|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  437|      3|       return -1;
  438|      3|    }
  439|       |
  440|  1.89k|    if (sizeof(*gprs_timer_2) < size) return -1;
  ------------------
  |  Branch (440:9): [True: 2, False: 1.89k]
  ------------------
  441|  1.89k|    memcpy(gprs_timer_2, pkbuf->data - size, size);
  442|       |
  443|  1.89k|    ogs_trace("  GPRS_TIMER_2 - ");
  ------------------
  |  |   40|  1.89k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.89k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.89k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.89k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.89k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.89k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  444|  1.89k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.89k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.89k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  445|       |
  446|  1.89k|    return size;
  447|  1.89k|}
ogs_nas_5gs_decode_gprs_timer_3:
  467|  3.28k|{
  468|  3.28k|    int size = 0;
  469|  3.28k|    ogs_nas_gprs_timer_3_t *source = NULL;
  470|       |
  471|  3.28k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (471:9): [True: 13, False: 3.26k]
  ------------------
  472|     13|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|     13|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     13|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     13|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     13|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     13|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     13|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  473|     13|       return -1;
  474|     13|    }
  475|       |
  476|  3.26k|    source = (ogs_nas_gprs_timer_3_t *)pkbuf->data;
  477|       |
  478|  3.26k|    gprs_timer_3->length = source->length;
  479|  3.26k|    size = gprs_timer_3->length + sizeof(gprs_timer_3->length);
  480|       |
  481|  3.26k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (481:9): [True: 12, False: 3.25k]
  ------------------
  482|     12|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     12|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     12|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     12|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     12|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     12|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     12|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  483|     12|       return -1;
  484|     12|    }
  485|       |
  486|  3.25k|    if (sizeof(*gprs_timer_3) < size) return -1;
  ------------------
  |  Branch (486:9): [True: 1, False: 3.25k]
  ------------------
  487|  3.25k|    memcpy(gprs_timer_3, pkbuf->data - size, size);
  488|       |
  489|  3.25k|    ogs_trace("  GPRS_TIMER_3 - ");
  ------------------
  |  |   40|  3.25k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  3.25k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  3.25k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  3.25k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  3.25k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  3.25k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  490|  3.25k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  3.25k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  3.25k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  491|       |
  492|  3.25k|    return size;
  493|  3.25k|}
ogs_nas_5gs_decode_s_nssai:
  513|  1.12k|{
  514|  1.12k|    int size = 0;
  515|  1.12k|    ogs_nas_s_nssai_t *source = NULL;
  516|       |
  517|  1.12k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (517:9): [True: 5, False: 1.12k]
  ------------------
  518|      5|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  519|      5|       return -1;
  520|      5|    }
  521|       |
  522|  1.12k|    source = (ogs_nas_s_nssai_t *)pkbuf->data;
  523|       |
  524|  1.12k|    s_nssai->length = source->length;
  525|  1.12k|    size = s_nssai->length + sizeof(s_nssai->length);
  526|       |
  527|  1.12k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (527:9): [True: 2, False: 1.11k]
  ------------------
  528|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  529|      2|       return -1;
  530|      2|    }
  531|       |
  532|  1.11k|    if (sizeof(*s_nssai) < size) return -1;
  ------------------
  |  Branch (532:9): [True: 2, False: 1.11k]
  ------------------
  533|  1.11k|    memcpy(s_nssai, pkbuf->data - size, size);
  534|       |
  535|  1.11k|    ogs_trace("  S_NSSAI - ");
  ------------------
  |  |   40|  1.11k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.11k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.11k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.11k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.11k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.11k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  536|  1.11k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.11k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.11k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  537|       |
  538|  1.11k|    return size;
  539|  1.11k|}
ogs_nas_5gs_decode_5gmm_capability:
  559|    330|{
  560|    330|    int size = 0;
  561|    330|    ogs_nas_5gmm_capability_t *source = NULL;
  562|       |
  563|    330|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (563:9): [True: 1, False: 329]
  ------------------
  564|      1|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  565|      1|       return -1;
  566|      1|    }
  567|       |
  568|    329|    source = (ogs_nas_5gmm_capability_t *)pkbuf->data;
  569|       |
  570|    329|    gmm_capability->length = source->length;
  571|    329|    size = gmm_capability->length + sizeof(gmm_capability->length);
  572|       |
  573|    329|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (573:9): [True: 5, False: 324]
  ------------------
  574|      5|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  575|      5|       return -1;
  576|      5|    }
  577|       |
  578|    324|    if (sizeof(*gmm_capability) < size) return -1;
  ------------------
  |  Branch (578:9): [True: 1, False: 323]
  ------------------
  579|    323|    memcpy(gmm_capability, pkbuf->data - size, size);
  580|       |
  581|    323|    ogs_trace("  5GMM_CAPABILITY - ");
  ------------------
  |  |   40|    323|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    323|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    323|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    323|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    323|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    323|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  582|    323|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    323|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    323|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  583|       |
  584|    323|    return size;
  585|    324|}
ogs_nas_5gs_decode_abba:
  605|    535|{
  606|    535|    int size = 0;
  607|    535|    ogs_nas_abba_t *source = NULL;
  608|       |
  609|    535|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (609:9): [True: 3, False: 532]
  ------------------
  610|      3|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  611|      3|       return -1;
  612|      3|    }
  613|       |
  614|    532|    source = (ogs_nas_abba_t *)pkbuf->data;
  615|       |
  616|    532|    abba->length = source->length;
  617|    532|    size = abba->length + sizeof(abba->length);
  618|       |
  619|    532|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (619:9): [True: 7, False: 525]
  ------------------
  620|      7|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  621|      7|       return -1;
  622|      7|    }
  623|       |
  624|    525|    if (sizeof(*abba) < size) return -1;
  ------------------
  |  Branch (624:9): [True: 0, False: 525]
  ------------------
  625|    525|    memcpy(abba, pkbuf->data - size, size);
  626|       |
  627|    525|    ogs_trace("  ABBA - ");
  ------------------
  |  |   40|    525|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    525|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    525|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    525|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    525|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    525|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  628|    525|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    525|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    525|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  629|       |
  630|    525|    return size;
  631|    525|}
ogs_nas_5gs_decode_s_nssai_location_validity_information:
  651|    254|{
  652|    254|    int size = 0;
  653|    254|    ogs_nas_s_nssai_location_validity_information_t *source = NULL;
  654|       |
  655|    254|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (655:9): [True: 2, False: 252]
  ------------------
  656|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  657|      2|       return -1;
  658|      2|    }
  659|       |
  660|    252|    source = (ogs_nas_s_nssai_location_validity_information_t *)pkbuf->data;
  661|       |
  662|    252|    s_nssai_location_validity_information->length = be16toh(source->length);
  663|    252|    size = s_nssai_location_validity_information->length + sizeof(s_nssai_location_validity_information->length);
  664|       |
  665|    252|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (665:9): [True: 22, False: 230]
  ------------------
  666|     22|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     22|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     22|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     22|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     22|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     22|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     22|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  667|     22|       return -1;
  668|     22|    }
  669|       |
  670|    230|    s_nssai_location_validity_information->buffer = pkbuf->data - size + sizeof(s_nssai_location_validity_information->length);
  671|       |
  672|    230|    ogs_trace("  S_NSSAI_LOCATION_VALIDITY_INFORMATION - ");
  ------------------
  |  |   40|    230|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    230|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    230|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    230|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    230|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    230|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  673|    230|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)s_nssai_location_validity_information->buffer, s_nssai_location_validity_information->length);
  ------------------
  |  |   53|    230|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    230|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  674|       |
  675|    230|    return size;
  676|    252|}
ogs_nas_5gs_decode_s_nssai_time_validity_information:
  704|    442|{
  705|    442|    int size = 0;
  706|    442|    ogs_nas_s_nssai_time_validity_information_t *source = NULL;
  707|       |
  708|    442|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (708:9): [True: 2, False: 440]
  ------------------
  709|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  710|      2|       return -1;
  711|      2|    }
  712|       |
  713|    440|    source = (ogs_nas_s_nssai_time_validity_information_t *)pkbuf->data;
  714|       |
  715|    440|    s_nssai_time_validity_information->length = source->length;
  716|    440|    size = s_nssai_time_validity_information->length + sizeof(s_nssai_time_validity_information->length);
  717|       |
  718|    440|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (718:9): [True: 3, False: 437]
  ------------------
  719|      3|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  720|      3|       return -1;
  721|      3|    }
  722|       |
  723|    437|    if (sizeof(*s_nssai_time_validity_information) < size) return -1;
  ------------------
  |  Branch (723:9): [True: 1, False: 436]
  ------------------
  724|    436|    memcpy(s_nssai_time_validity_information, pkbuf->data - size, size);
  725|       |
  726|    436|    ogs_trace("  S_NSSAI_TIME_VALIDITY_INFORMATION - ");
  ------------------
  |  |   40|    436|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    436|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    436|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    436|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    436|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    436|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  727|    436|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    436|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    436|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  728|       |
  729|    436|    return size;
  730|    437|}
ogs_nas_5gs_decode_non_3gpp_path_switching_information:
  750|    221|{
  751|    221|    int size = 0;
  752|    221|    ogs_nas_non_3gpp_path_switching_information_t *source = NULL;
  753|       |
  754|    221|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (754:9): [True: 1, False: 220]
  ------------------
  755|      1|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  756|      1|       return -1;
  757|      1|    }
  758|       |
  759|    220|    source = (ogs_nas_non_3gpp_path_switching_information_t *)pkbuf->data;
  760|       |
  761|    220|    non_3gpp_path_switching_information->length = source->length;
  762|    220|    size = non_3gpp_path_switching_information->length + sizeof(non_3gpp_path_switching_information->length);
  763|       |
  764|    220|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (764:9): [True: 2, False: 218]
  ------------------
  765|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  766|      2|       return -1;
  767|      2|    }
  768|       |
  769|    218|    if (sizeof(*non_3gpp_path_switching_information) < size) return -1;
  ------------------
  |  Branch (769:9): [True: 1, False: 217]
  ------------------
  770|    217|    memcpy(non_3gpp_path_switching_information, pkbuf->data - size, size);
  771|       |
  772|    217|    ogs_trace("  NON_3GPP_PATH_SWITCHING_INFORMATION - ");
  ------------------
  |  |   40|    217|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    217|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    217|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    217|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    217|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    217|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  773|    217|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    217|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    217|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  774|       |
  775|    217|    return size;
  776|    218|}
ogs_nas_5gs_decode_partial_nssai:
  796|    512|{
  797|    512|    int size = 0;
  798|    512|    ogs_nas_partial_nssai_t *source = NULL;
  799|       |
  800|    512|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (800:9): [True: 4, False: 508]
  ------------------
  801|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  802|      4|       return -1;
  803|      4|    }
  804|       |
  805|    508|    source = (ogs_nas_partial_nssai_t *)pkbuf->data;
  806|       |
  807|    508|    partial_nssai->length = be16toh(source->length);
  808|    508|    size = partial_nssai->length + sizeof(partial_nssai->length);
  809|       |
  810|    508|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (810:9): [True: 18, False: 490]
  ------------------
  811|     18|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     18|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     18|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     18|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     18|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     18|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     18|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  812|     18|       return -1;
  813|     18|    }
  814|       |
  815|    490|    partial_nssai->buffer = pkbuf->data - size + sizeof(partial_nssai->length);
  816|       |
  817|    490|    ogs_trace("  PARTIAL_NSSAI - ");
  ------------------
  |  |   40|    490|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    490|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    490|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    490|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    490|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    490|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  818|    490|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)partial_nssai->buffer, partial_nssai->length);
  ------------------
  |  |   53|    490|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    490|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  819|       |
  820|    490|    return size;
  821|    508|}
ogs_nas_5gs_decode_aun3_indication:
  849|    210|{
  850|    210|    int size = 0;
  851|    210|    ogs_nas_aun3_indication_t *source = NULL;
  852|       |
  853|    210|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (853:9): [True: 3, False: 207]
  ------------------
  854|      3|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  855|      3|       return -1;
  856|      3|    }
  857|       |
  858|    207|    source = (ogs_nas_aun3_indication_t *)pkbuf->data;
  859|       |
  860|    207|    aun3_indication->length = source->length;
  861|    207|    size = aun3_indication->length + sizeof(aun3_indication->length);
  862|       |
  863|    207|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (863:9): [True: 1, False: 206]
  ------------------
  864|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  865|      1|       return -1;
  866|      1|    }
  867|       |
  868|    206|    if (sizeof(*aun3_indication) < size) return -1;
  ------------------
  |  Branch (868:9): [True: 1, False: 205]
  ------------------
  869|    205|    memcpy(aun3_indication, pkbuf->data - size, size);
  870|       |
  871|    205|    ogs_trace("  AUN3_INDICATION - ");
  ------------------
  |  |   40|    205|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    205|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    205|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    205|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    205|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    205|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  872|    205|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    205|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    205|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  873|       |
  874|    205|    return size;
  875|    206|}
ogs_nas_5gs_decode_feature_authorization_indication:
  895|    445|{
  896|    445|    int size = 0;
  897|    445|    ogs_nas_feature_authorization_indication_t *source = NULL;
  898|       |
  899|    445|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (899:9): [True: 4, False: 441]
  ------------------
  900|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  901|      4|       return -1;
  902|      4|    }
  903|       |
  904|    441|    source = (ogs_nas_feature_authorization_indication_t *)pkbuf->data;
  905|       |
  906|    441|    feature_authorization_indication->length = source->length;
  907|    441|    size = feature_authorization_indication->length + sizeof(feature_authorization_indication->length);
  908|       |
  909|    441|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (909:9): [True: 4, False: 437]
  ------------------
  910|      4|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  911|      4|       return -1;
  912|      4|    }
  913|       |
  914|    437|    if (sizeof(*feature_authorization_indication) < size) return -1;
  ------------------
  |  Branch (914:9): [True: 2, False: 435]
  ------------------
  915|    435|    memcpy(feature_authorization_indication, pkbuf->data - size, size);
  916|       |
  917|    435|    ogs_trace("  FEATURE_AUTHORIZATION_INDICATION - ");
  ------------------
  |  |   40|    435|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    435|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    435|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    435|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    435|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    435|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  918|    435|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    435|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    435|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  919|       |
  920|    435|    return size;
  921|    437|}
ogs_nas_5gs_decode_payload_container_information:
  941|    861|{
  942|    861|    int size = sizeof(ogs_nas_payload_container_information_t);
  943|       |
  944|    861|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (944:9): [True: 0, False: 861]
  ------------------
  945|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  946|      0|       return -1;
  947|      0|    }
  948|       |
  949|    861|    memcpy(payload_container_information, pkbuf->data - size, size);
  950|       |
  951|    861|    ogs_trace("  PAYLOAD_CONTAINER_INFORMATION - ");
  ------------------
  |  |   40|    861|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    861|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    861|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    861|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    861|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    861|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  952|    861|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    861|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    861|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  953|       |
  954|    861|    return size;
  955|    861|}
ogs_nas_5gs_decode_aun3_device_security_key:
  973|    440|{
  974|    440|    int size = 0;
  975|    440|    ogs_nas_aun3_device_security_key_t *source = NULL;
  976|       |
  977|    440|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (977:9): [True: 5, False: 435]
  ------------------
  978|      5|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  979|      5|       return -1;
  980|      5|    }
  981|       |
  982|    435|    source = (ogs_nas_aun3_device_security_key_t *)pkbuf->data;
  983|       |
  984|    435|    aun3_device_security_key->length = source->length;
  985|    435|    size = aun3_device_security_key->length + sizeof(aun3_device_security_key->length);
  986|       |
  987|    435|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (987:9): [True: 1, False: 434]
  ------------------
  988|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  989|      1|       return -1;
  990|      1|    }
  991|       |
  992|    434|    if (sizeof(*aun3_device_security_key) < size) return -1;
  ------------------
  |  Branch (992:9): [True: 2, False: 432]
  ------------------
  993|    432|    memcpy(aun3_device_security_key, pkbuf->data - size, size);
  994|       |
  995|    432|    ogs_trace("  AUN3_DEVICE_SECURITY_KEY - ");
  ------------------
  |  |   40|    432|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    432|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    432|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    432|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    432|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    432|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  996|    432|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    432|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    432|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  997|       |
  998|    432|    return size;
  999|    434|}
ogs_nas_5gs_decode_on_demand_nssai:
 1019|    593|{
 1020|    593|    int size = 0;
 1021|    593|    ogs_nas_on_demand_nssai_t *source = NULL;
 1022|       |
 1023|    593|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1023:9): [True: 2, False: 591]
  ------------------
 1024|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1025|      2|       return -1;
 1026|      2|    }
 1027|       |
 1028|    591|    source = (ogs_nas_on_demand_nssai_t *)pkbuf->data;
 1029|       |
 1030|    591|    on_demand_nssai->length = source->length;
 1031|    591|    size = on_demand_nssai->length + sizeof(on_demand_nssai->length);
 1032|       |
 1033|    591|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1033:9): [True: 5, False: 586]
  ------------------
 1034|      5|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1035|      5|       return -1;
 1036|      5|    }
 1037|       |
 1038|    586|    if (sizeof(*on_demand_nssai) < size) return -1;
  ------------------
  |  Branch (1038:9): [True: 2, False: 584]
  ------------------
 1039|    584|    memcpy(on_demand_nssai, pkbuf->data - size, size);
 1040|       |
 1041|    584|    ogs_trace("  ON_DEMAND_NSSAI - ");
  ------------------
  |  |   40|    584|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    584|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    584|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    584|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    584|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    584|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1042|    584|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    584|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    584|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1043|       |
 1044|    584|    return size;
 1045|    586|}
ogs_nas_5gs_decode_extended_5gmm_cause:
 1065|    210|{
 1066|    210|    int size = 0;
 1067|    210|    ogs_nas_extended_5gmm_cause_t *source = NULL;
 1068|       |
 1069|    210|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1069:9): [True: 3, False: 207]
  ------------------
 1070|      3|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1071|      3|       return -1;
 1072|      3|    }
 1073|       |
 1074|    207|    source = (ogs_nas_extended_5gmm_cause_t *)pkbuf->data;
 1075|       |
 1076|    207|    extended_gmm_cause->length = source->length;
 1077|    207|    size = extended_gmm_cause->length + sizeof(extended_gmm_cause->length);
 1078|       |
 1079|    207|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1079:9): [True: 4, False: 203]
  ------------------
 1080|      4|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1081|      4|       return -1;
 1082|      4|    }
 1083|       |
 1084|    203|    if (sizeof(*extended_gmm_cause) < size) return -1;
  ------------------
  |  Branch (1084:9): [True: 1, False: 202]
  ------------------
 1085|    202|    memcpy(extended_gmm_cause, pkbuf->data - size, size);
 1086|       |
 1087|    202|    ogs_trace("  EXTENDED_5GMM_CAUSE - ");
  ------------------
  |  |   40|    202|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    202|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    202|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    202|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    202|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    202|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1088|    202|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    202|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    202|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1089|       |
 1090|    202|    return size;
 1091|    203|}
ogs_nas_5gs_decode_access_technology_utilization_control:
 1111|  1.09k|{
 1112|  1.09k|    int size = 0;
 1113|  1.09k|    ogs_nas_access_technology_utilization_control_t *source = NULL;
 1114|       |
 1115|  1.09k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1115:9): [True: 5, False: 1.09k]
  ------------------
 1116|      5|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1117|      5|       return -1;
 1118|      5|    }
 1119|       |
 1120|  1.09k|    source = (ogs_nas_access_technology_utilization_control_t *)pkbuf->data;
 1121|       |
 1122|  1.09k|    access_technology_utilization_control->length = source->length;
 1123|  1.09k|    size = access_technology_utilization_control->length + sizeof(access_technology_utilization_control->length);
 1124|       |
 1125|  1.09k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1125:9): [True: 7, False: 1.08k]
  ------------------
 1126|      7|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1127|      7|       return -1;
 1128|      7|    }
 1129|       |
 1130|  1.08k|    if (sizeof(*access_technology_utilization_control) < size) return -1;
  ------------------
  |  Branch (1130:9): [True: 1, False: 1.08k]
  ------------------
 1131|  1.08k|    memcpy(access_technology_utilization_control, pkbuf->data - size, size);
 1132|       |
 1133|  1.08k|    ogs_trace("  ACCESS_TECHNOLOGY_UTILIZATION_CONTROL - ");
  ------------------
  |  |   40|  1.08k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.08k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.08k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.08k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.08k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.08k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1134|  1.08k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.08k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.08k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1135|       |
 1136|  1.08k|    return size;
 1137|  1.08k|}
ogs_nas_5gs_decode_lp_wusps_assistance_information:
 1157|    733|{
 1158|    733|    int size = 0;
 1159|    733|    ogs_nas_lp_wusps_assistance_information_t *source = NULL;
 1160|       |
 1161|    733|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1161:9): [True: 3, False: 730]
  ------------------
 1162|      3|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1163|      3|       return -1;
 1164|      3|    }
 1165|       |
 1166|    730|    source = (ogs_nas_lp_wusps_assistance_information_t *)pkbuf->data;
 1167|       |
 1168|    730|    lp_wusps_assistance_information->length = source->length;
 1169|    730|    size = lp_wusps_assistance_information->length + sizeof(lp_wusps_assistance_information->length);
 1170|       |
 1171|    730|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1171:9): [True: 4, False: 726]
  ------------------
 1172|      4|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1173|      4|       return -1;
 1174|      4|    }
 1175|       |
 1176|    726|    if (sizeof(*lp_wusps_assistance_information) < size) return -1;
  ------------------
  |  Branch (1176:9): [True: 1, False: 725]
  ------------------
 1177|    725|    memcpy(lp_wusps_assistance_information, pkbuf->data - size, size);
 1178|       |
 1179|    725|    ogs_trace("  LP_WUSPS_ASSISTANCE_INFORMATION - ");
  ------------------
  |  |   40|    725|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    725|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    725|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    725|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    725|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    725|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1180|    725|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    725|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    725|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1181|       |
 1182|    725|    return size;
 1183|    726|}
ogs_nas_5gs_decode_lp_wus_status:
 1203|  2.00k|{
 1204|  2.00k|    int size = sizeof(ogs_nas_lp_wus_status_t);
 1205|       |
 1206|  2.00k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1206:9): [True: 0, False: 2.00k]
  ------------------
 1207|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1208|      0|       return -1;
 1209|      0|    }
 1210|       |
 1211|  2.00k|    memcpy(lp_wus_status, pkbuf->data - size, size);
 1212|       |
 1213|  2.00k|    ogs_trace("  LP_WUS_STATUS - ");
  ------------------
  |  |   40|  2.00k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.00k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.00k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.00k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.00k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.00k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1214|  2.00k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  2.00k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  2.00k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1215|       |
 1216|  2.00k|    return size;
 1217|  2.00k|}
ogs_nas_5gs_decode_additional_5g_security_information:
 1235|    264|{
 1236|    264|    int size = 0;
 1237|    264|    ogs_nas_additional_5g_security_information_t *source = NULL;
 1238|       |
 1239|    264|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1239:9): [True: 2, False: 262]
  ------------------
 1240|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1241|      2|       return -1;
 1242|      2|    }
 1243|       |
 1244|    262|    source = (ogs_nas_additional_5g_security_information_t *)pkbuf->data;
 1245|       |
 1246|    262|    additional_security_information->length = source->length;
 1247|    262|    size = additional_security_information->length + sizeof(additional_security_information->length);
 1248|       |
 1249|    262|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1249:9): [True: 1, False: 261]
  ------------------
 1250|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1251|      1|       return -1;
 1252|      1|    }
 1253|       |
 1254|    261|    if (sizeof(*additional_security_information) < size) return -1;
  ------------------
  |  Branch (1254:9): [True: 2, False: 259]
  ------------------
 1255|    259|    memcpy(additional_security_information, pkbuf->data - size, size);
 1256|       |
 1257|    259|    ogs_trace("  ADDITIONAL_5G_SECURITY_INFORMATION - ");
  ------------------
  |  |   40|    259|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    259|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    259|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    259|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    259|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    259|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1258|    259|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    259|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    259|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1259|       |
 1260|    259|    return size;
 1261|    261|}
ogs_nas_5gs_decode_additional_information_requested:
 1281|    208|{
 1282|    208|    int size = 0;
 1283|    208|    ogs_nas_additional_information_requested_t *source = NULL;
 1284|       |
 1285|    208|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1285:9): [True: 3, False: 205]
  ------------------
 1286|      3|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1287|      3|       return -1;
 1288|      3|    }
 1289|       |
 1290|    205|    source = (ogs_nas_additional_information_requested_t *)pkbuf->data;
 1291|       |
 1292|    205|    additional_information_requested->length = source->length;
 1293|    205|    size = additional_information_requested->length + sizeof(additional_information_requested->length);
 1294|       |
 1295|    205|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1295:9): [True: 1, False: 204]
  ------------------
 1296|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1297|      1|       return -1;
 1298|      1|    }
 1299|       |
 1300|    204|    if (sizeof(*additional_information_requested) < size) return -1;
  ------------------
  |  Branch (1300:9): [True: 1, False: 203]
  ------------------
 1301|    203|    memcpy(additional_information_requested, pkbuf->data - size, size);
 1302|       |
 1303|    203|    ogs_trace("  ADDITIONAL_INFORMATION_REQUESTED - ");
  ------------------
  |  |   40|    203|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    203|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    203|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    203|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    203|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    203|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1304|    203|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    203|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    203|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1305|       |
 1306|    203|    return size;
 1307|    204|}
ogs_nas_5gs_decode_allowed_pdu_session_status:
 1327|    453|{
 1328|    453|    int size = 0;
 1329|    453|    ogs_nas_allowed_pdu_session_status_t *source = NULL;
 1330|       |
 1331|    453|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1331:9): [True: 3, False: 450]
  ------------------
 1332|      3|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1333|      3|       return -1;
 1334|      3|    }
 1335|       |
 1336|    450|    source = (ogs_nas_allowed_pdu_session_status_t *)pkbuf->data;
 1337|       |
 1338|    450|    allowed_pdu_session_status->length = source->length;
 1339|    450|    size = allowed_pdu_session_status->length + sizeof(allowed_pdu_session_status->length);
 1340|       |
 1341|    450|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1341:9): [True: 1, False: 449]
  ------------------
 1342|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1343|      1|       return -1;
 1344|      1|    }
 1345|       |
 1346|    449|    if (sizeof(*allowed_pdu_session_status) < size) return -1;
  ------------------
  |  Branch (1346:9): [True: 1, False: 448]
  ------------------
 1347|    448|    memcpy(allowed_pdu_session_status, pkbuf->data - size, size);
 1348|       |
 1349|    448|    allowed_pdu_session_status->psi = be16toh(allowed_pdu_session_status->psi);
 1350|       |
 1351|    448|    ogs_trace("  ALLOWED_PDU_SESSION_STATUS - ");
  ------------------
  |  |   40|    448|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    448|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    448|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    448|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    448|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    448|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1352|    448|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    448|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    448|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1353|       |
 1354|    448|    return size;
 1355|    449|}
ogs_nas_5gs_decode_authentication_failure_parameter:
 1377|    218|{
 1378|    218|    int size = 0;
 1379|    218|    ogs_nas_authentication_failure_parameter_t *source = NULL;
 1380|       |
 1381|    218|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1381:9): [True: 2, False: 216]
  ------------------
 1382|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1383|      2|       return -1;
 1384|      2|    }
 1385|       |
 1386|    216|    source = (ogs_nas_authentication_failure_parameter_t *)pkbuf->data;
 1387|       |
 1388|    216|    authentication_failure_parameter->length = source->length;
 1389|    216|    size = authentication_failure_parameter->length + sizeof(authentication_failure_parameter->length);
 1390|       |
 1391|    216|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1391:9): [True: 2, False: 214]
  ------------------
 1392|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1393|      2|       return -1;
 1394|      2|    }
 1395|       |
 1396|    214|    if (sizeof(*authentication_failure_parameter) < size) return -1;
  ------------------
  |  Branch (1396:9): [True: 2, False: 212]
  ------------------
 1397|    212|    memcpy(authentication_failure_parameter, pkbuf->data - size, size);
 1398|       |
 1399|    212|    ogs_trace("  AUTHENTICATION_FAILURE_PARAMETER - ");
  ------------------
  |  |   40|    212|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    212|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    212|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    212|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    212|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    212|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1400|    212|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    212|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    212|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1401|       |
 1402|    212|    return size;
 1403|    214|}
ogs_nas_5gs_decode_authentication_parameter_autn:
 1423|    215|{
 1424|    215|    int size = 0;
 1425|    215|    ogs_nas_authentication_parameter_autn_t *source = NULL;
 1426|       |
 1427|    215|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1427:9): [True: 1, False: 214]
  ------------------
 1428|      1|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1429|      1|       return -1;
 1430|      1|    }
 1431|       |
 1432|    214|    source = (ogs_nas_authentication_parameter_autn_t *)pkbuf->data;
 1433|       |
 1434|    214|    authentication_parameter_autn->length = source->length;
 1435|    214|    size = authentication_parameter_autn->length + sizeof(authentication_parameter_autn->length);
 1436|       |
 1437|    214|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1437:9): [True: 1, False: 213]
  ------------------
 1438|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1439|      1|       return -1;
 1440|      1|    }
 1441|       |
 1442|    213|    if (sizeof(*authentication_parameter_autn) < size) return -1;
  ------------------
  |  Branch (1442:9): [True: 1, False: 212]
  ------------------
 1443|    212|    memcpy(authentication_parameter_autn, pkbuf->data - size, size);
 1444|       |
 1445|    212|    ogs_trace("  AUTHENTICATION_PARAMETER_AUTN - ");
  ------------------
  |  |   40|    212|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    212|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    212|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    212|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    212|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    212|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1446|    212|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    212|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    212|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1447|       |
 1448|    212|    return size;
 1449|    213|}
ogs_nas_5gs_decode_authentication_parameter_rand:
 1469|    190|{
 1470|    190|    int size = sizeof(ogs_nas_authentication_parameter_rand_t);
 1471|       |
 1472|    190|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1472:9): [True: 12, False: 178]
  ------------------
 1473|     12|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     12|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     12|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     12|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     12|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     12|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     12|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1474|     12|       return -1;
 1475|     12|    }
 1476|       |
 1477|    178|    memcpy(authentication_parameter_rand, pkbuf->data - size, size);
 1478|       |
 1479|    178|    ogs_trace("  AUTHENTICATION_PARAMETER_RAND - ");
  ------------------
  |  |   40|    178|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    178|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    178|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    178|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    178|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    178|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1480|    178|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    178|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    178|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1481|       |
 1482|    178|    return size;
 1483|    190|}
ogs_nas_5gs_decode_authentication_response_parameter:
 1503|    258|{
 1504|    258|    int size = 0;
 1505|    258|    ogs_nas_authentication_response_parameter_t *source = NULL;
 1506|       |
 1507|    258|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1507:9): [True: 1, False: 257]
  ------------------
 1508|      1|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1509|      1|       return -1;
 1510|      1|    }
 1511|       |
 1512|    257|    source = (ogs_nas_authentication_response_parameter_t *)pkbuf->data;
 1513|       |
 1514|    257|    authentication_response_parameter->length = source->length;
 1515|    257|    size = authentication_response_parameter->length + sizeof(authentication_response_parameter->length);
 1516|       |
 1517|    257|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1517:9): [True: 2, False: 255]
  ------------------
 1518|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1519|      2|       return -1;
 1520|      2|    }
 1521|       |
 1522|    255|    if (sizeof(*authentication_response_parameter) < size) return -1;
  ------------------
  |  Branch (1522:9): [True: 1, False: 254]
  ------------------
 1523|    254|    memcpy(authentication_response_parameter, pkbuf->data - size, size);
 1524|       |
 1525|    254|    ogs_trace("  AUTHENTICATION_RESPONSE_PARAMETER - ");
  ------------------
  |  |   40|    254|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    254|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    254|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    254|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    254|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    254|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1526|    254|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    254|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    254|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1527|       |
 1528|    254|    return size;
 1529|    255|}
ogs_nas_5gs_decode_configuration_update_indication:
 1549|  1.05k|{
 1550|  1.05k|    int size = sizeof(ogs_nas_configuration_update_indication_t);
 1551|       |
 1552|  1.05k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1552:9): [True: 0, False: 1.05k]
  ------------------
 1553|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1554|      0|       return -1;
 1555|      0|    }
 1556|       |
 1557|  1.05k|    memcpy(configuration_update_indication, pkbuf->data - size, size);
 1558|       |
 1559|  1.05k|    ogs_trace("  CONFIGURATION_UPDATE_INDICATION - ");
  ------------------
  |  |   40|  1.05k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.05k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.05k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.05k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.05k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.05k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1560|  1.05k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.05k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.05k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1561|       |
 1562|  1.05k|    return size;
 1563|  1.05k|}
ogs_nas_5gs_decode_cag_information_list:
 1581|  1.10k|{
 1582|  1.10k|    int size = 0;
 1583|  1.10k|    ogs_nas_cag_information_list_t *source = NULL;
 1584|       |
 1585|  1.10k|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (1585:9): [True: 9, False: 1.09k]
  ------------------
 1586|      9|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      9|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      9|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      9|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      9|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      9|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      9|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1587|      9|       return -1;
 1588|      9|    }
 1589|       |
 1590|  1.09k|    source = (ogs_nas_cag_information_list_t *)pkbuf->data;
 1591|       |
 1592|  1.09k|    cag_information_list->length = be16toh(source->length);
 1593|  1.09k|    size = cag_information_list->length + sizeof(cag_information_list->length);
 1594|       |
 1595|  1.09k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1595:9): [True: 22, False: 1.07k]
  ------------------
 1596|     22|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     22|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     22|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     22|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     22|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     22|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     22|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1597|     22|       return -1;
 1598|     22|    }
 1599|       |
 1600|  1.07k|    cag_information_list->buffer = pkbuf->data - size + sizeof(cag_information_list->length);
 1601|       |
 1602|  1.07k|    ogs_trace("  CAG_INFORMATION_LIST - ");
  ------------------
  |  |   40|  1.07k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.07k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.07k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.07k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.07k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.07k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1603|  1.07k|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)cag_information_list->buffer, cag_information_list->length);
  ------------------
  |  |   53|  1.07k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.07k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1604|       |
 1605|  1.07k|    return size;
 1606|  1.09k|}
ogs_nas_5gs_decode_ciphering_key_data:
 1634|    307|{
 1635|    307|    int size = 0;
 1636|    307|    ogs_nas_ciphering_key_data_t *source = NULL;
 1637|       |
 1638|    307|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (1638:9): [True: 4, False: 303]
  ------------------
 1639|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1640|      4|       return -1;
 1641|      4|    }
 1642|       |
 1643|    303|    source = (ogs_nas_ciphering_key_data_t *)pkbuf->data;
 1644|       |
 1645|    303|    ciphering_key_data->length = be16toh(source->length);
 1646|    303|    size = ciphering_key_data->length + sizeof(ciphering_key_data->length);
 1647|       |
 1648|    303|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1648:9): [True: 27, False: 276]
  ------------------
 1649|     27|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     27|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     27|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     27|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     27|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     27|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     27|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1650|     27|       return -1;
 1651|     27|    }
 1652|       |
 1653|    276|    ciphering_key_data->buffer = pkbuf->data - size + sizeof(ciphering_key_data->length);
 1654|       |
 1655|    276|    ogs_trace("  CIPHERING_KEY_DATA - ");
  ------------------
  |  |   40|    276|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    276|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    276|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    276|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    276|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    276|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1656|    276|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)ciphering_key_data->buffer, ciphering_key_data->length);
  ------------------
  |  |   53|    276|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    276|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1657|       |
 1658|    276|    return size;
 1659|    303|}
ogs_nas_5gs_decode_daylight_saving_time:
 1687|    248|{
 1688|    248|    int size = 0;
 1689|    248|    ogs_nas_daylight_saving_time_t *source = NULL;
 1690|       |
 1691|    248|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1691:9): [True: 4, False: 244]
  ------------------
 1692|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1693|      4|       return -1;
 1694|      4|    }
 1695|       |
 1696|    244|    source = (ogs_nas_daylight_saving_time_t *)pkbuf->data;
 1697|       |
 1698|    244|    daylight_saving_time->length = source->length;
 1699|    244|    size = daylight_saving_time->length + sizeof(daylight_saving_time->length);
 1700|       |
 1701|    244|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1701:9): [True: 3, False: 241]
  ------------------
 1702|      3|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1703|      3|       return -1;
 1704|      3|    }
 1705|       |
 1706|    241|    if (sizeof(*daylight_saving_time) < size) return -1;
  ------------------
  |  Branch (1706:9): [True: 1, False: 240]
  ------------------
 1707|    240|    memcpy(daylight_saving_time, pkbuf->data - size, size);
 1708|       |
 1709|    240|    ogs_trace("  DAYLIGHT_SAVING_TIME - ");
  ------------------
  |  |   40|    240|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    240|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    240|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    240|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    240|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    240|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1710|    240|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    240|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    240|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1711|       |
 1712|    240|    return size;
 1713|    241|}
ogs_nas_5gs_decode_5gmm_cause:
 1733|    862|{
 1734|    862|    int size = sizeof(ogs_nas_5gmm_cause_t);
 1735|       |
 1736|    862|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1736:9): [True: 5, False: 857]
  ------------------
 1737|      5|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1738|      5|       return -1;
 1739|      5|    }
 1740|       |
 1741|    857|    memcpy(gmm_cause, pkbuf->data - size, size);
 1742|       |
 1743|    857|    ogs_trace("  5GMM_CAUSE - ");
  ------------------
  |  |   40|    857|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    857|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    857|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    857|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    857|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    857|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1744|    857|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    857|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    857|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1745|       |
 1746|    857|    return size;
 1747|    862|}
ogs_nas_5gs_decode_de_registration_type:
 1767|    232|{
 1768|    232|    int size = sizeof(ogs_nas_de_registration_type_t);
 1769|       |
 1770|    232|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1770:9): [True: 0, False: 232]
  ------------------
 1771|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1772|      0|       return -1;
 1773|      0|    }
 1774|       |
 1775|    232|    memcpy(de_registration_type, pkbuf->data - size, size);
 1776|       |
 1777|    232|    ogs_trace("  DE_REGISTRATION_TYPE - ");
  ------------------
  |  |   40|    232|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    232|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    232|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    232|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    232|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    232|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1778|    232|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    232|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    232|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1779|       |
 1780|    232|    return size;
 1781|    232|}
ogs_nas_5gs_decode_emergency_number_list:
 1801|    233|{
 1802|    233|    int size = 0;
 1803|    233|    ogs_nas_emergency_number_list_t *source = NULL;
 1804|       |
 1805|    233|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1805:9): [True: 2, False: 231]
  ------------------
 1806|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1807|      2|       return -1;
 1808|      2|    }
 1809|       |
 1810|    231|    source = (ogs_nas_emergency_number_list_t *)pkbuf->data;
 1811|       |
 1812|    231|    emergency_number_list->length = source->length;
 1813|    231|    size = emergency_number_list->length + sizeof(emergency_number_list->length);
 1814|       |
 1815|    231|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1815:9): [True: 1, False: 230]
  ------------------
 1816|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1817|      1|       return -1;
 1818|      1|    }
 1819|       |
 1820|    230|    if (sizeof(*emergency_number_list) < size) return -1;
  ------------------
  |  Branch (1820:9): [True: 1, False: 229]
  ------------------
 1821|    229|    memcpy(emergency_number_list, pkbuf->data - size, size);
 1822|       |
 1823|    229|    ogs_trace("  EMERGENCY_NUMBER_LIST - ");
  ------------------
  |  |   40|    229|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    229|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    229|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    229|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    229|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    229|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1824|    229|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    229|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    229|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1825|       |
 1826|    229|    return size;
 1827|    230|}
ogs_nas_5gs_decode_eps_bearer_context_status:
 1847|    417|{
 1848|    417|    int size = 0;
 1849|    417|    ogs_nas_eps_bearer_context_status_t *source = NULL;
 1850|       |
 1851|    417|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1851:9): [True: 4, False: 413]
  ------------------
 1852|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1853|      4|       return -1;
 1854|      4|    }
 1855|       |
 1856|    413|    source = (ogs_nas_eps_bearer_context_status_t *)pkbuf->data;
 1857|       |
 1858|    413|    eps_bearer_context_status->length = source->length;
 1859|    413|    size = eps_bearer_context_status->length + sizeof(eps_bearer_context_status->length);
 1860|       |
 1861|    413|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1861:9): [True: 2, False: 411]
  ------------------
 1862|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1863|      2|       return -1;
 1864|      2|    }
 1865|       |
 1866|    411|    if (sizeof(*eps_bearer_context_status) < size) return -1;
  ------------------
  |  Branch (1866:9): [True: 1, False: 410]
  ------------------
 1867|    410|    memcpy(eps_bearer_context_status, pkbuf->data - size, size);
 1868|       |
 1869|    410|    ogs_trace("  EPS_BEARER_CONTEXT_STATUS - ");
  ------------------
  |  |   40|    410|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    410|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    410|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    410|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    410|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    410|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1870|    410|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    410|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    410|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1871|       |
 1872|    410|    return size;
 1873|    411|}
ogs_nas_5gs_decode_eps_nas_message_container:
 1893|    263|{
 1894|    263|    int size = 0;
 1895|    263|    ogs_nas_eps_nas_message_container_t *source = NULL;
 1896|       |
 1897|    263|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (1897:9): [True: 3, False: 260]
  ------------------
 1898|      3|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1899|      3|       return -1;
 1900|      3|    }
 1901|       |
 1902|    260|    source = (ogs_nas_eps_nas_message_container_t *)pkbuf->data;
 1903|       |
 1904|    260|    eps_nas_message_container->length = be16toh(source->length);
 1905|    260|    size = eps_nas_message_container->length + sizeof(eps_nas_message_container->length);
 1906|       |
 1907|    260|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1907:9): [True: 22, False: 238]
  ------------------
 1908|     22|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     22|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     22|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     22|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     22|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     22|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     22|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1909|     22|       return -1;
 1910|     22|    }
 1911|       |
 1912|    238|    eps_nas_message_container->buffer = pkbuf->data - size + sizeof(eps_nas_message_container->length);
 1913|       |
 1914|    238|    ogs_trace("  EPS_NAS_MESSAGE_CONTAINER - ");
  ------------------
  |  |   40|    238|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    238|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    238|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    238|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    238|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    238|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1915|    238|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)eps_nas_message_container->buffer, eps_nas_message_container->length);
  ------------------
  |  |   53|    238|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    238|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1916|       |
 1917|    238|    return size;
 1918|    260|}
ogs_nas_5gs_decode_eps_nas_security_algorithms:
 1946|    210|{
 1947|    210|    int size = sizeof(ogs_nas_eps_nas_security_algorithms_t);
 1948|       |
 1949|    210|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1949:9): [True: 4, False: 206]
  ------------------
 1950|      4|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1951|      4|       return -1;
 1952|      4|    }
 1953|       |
 1954|    206|    memcpy(eps_nas_security_algorithms, pkbuf->data - size, size);
 1955|       |
 1956|    206|    ogs_trace("  EPS_NAS_SECURITY_ALGORITHMS - ");
  ------------------
  |  |   40|    206|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    206|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    206|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    206|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    206|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    206|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1957|    206|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    206|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    206|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1958|       |
 1959|    206|    return size;
 1960|    210|}
ogs_nas_5gs_decode_extended_emergency_number_list:
 1980|    226|{
 1981|    226|    int size = 0;
 1982|    226|    ogs_nas_extended_emergency_number_list_t *source = NULL;
 1983|       |
 1984|    226|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (1984:9): [True: 3, False: 223]
  ------------------
 1985|      3|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1986|      3|       return -1;
 1987|      3|    }
 1988|       |
 1989|    223|    source = (ogs_nas_extended_emergency_number_list_t *)pkbuf->data;
 1990|       |
 1991|    223|    extended_emergency_number_list->length = be16toh(source->length);
 1992|    223|    size = extended_emergency_number_list->length + sizeof(extended_emergency_number_list->length);
 1993|       |
 1994|    223|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1994:9): [True: 13, False: 210]
  ------------------
 1995|     13|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     13|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     13|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     13|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     13|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     13|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     13|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1996|     13|       return -1;
 1997|     13|    }
 1998|       |
 1999|    210|    extended_emergency_number_list->buffer = pkbuf->data - size + sizeof(extended_emergency_number_list->length);
 2000|       |
 2001|    210|    ogs_trace("  EXTENDED_EMERGENCY_NUMBER_LIST - ");
  ------------------
  |  |   40|    210|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    210|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    210|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    210|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    210|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    210|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2002|    210|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)extended_emergency_number_list->buffer, extended_emergency_number_list->length);
  ------------------
  |  |   53|    210|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    210|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2003|       |
 2004|    210|    return size;
 2005|    223|}
ogs_nas_5gs_decode_extended_drx_parameters:
 2033|    424|{
 2034|    424|    int size = 0;
 2035|    424|    ogs_nas_extended_drx_parameters_t *source = NULL;
 2036|       |
 2037|    424|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (2037:9): [True: 3, False: 421]
  ------------------
 2038|      3|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2039|      3|       return -1;
 2040|      3|    }
 2041|       |
 2042|    421|    source = (ogs_nas_extended_drx_parameters_t *)pkbuf->data;
 2043|       |
 2044|    421|    extended_drx_parameters->length = source->length;
 2045|    421|    size = extended_drx_parameters->length + sizeof(extended_drx_parameters->length);
 2046|       |
 2047|    421|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2047:9): [True: 2, False: 419]
  ------------------
 2048|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2049|      2|       return -1;
 2050|      2|    }
 2051|       |
 2052|    419|    if (sizeof(*extended_drx_parameters) < size) return -1;
  ------------------
  |  Branch (2052:9): [True: 2, False: 417]
  ------------------
 2053|    417|    memcpy(extended_drx_parameters, pkbuf->data - size, size);
 2054|       |
 2055|    417|    ogs_trace("  EXTENDED_DRX_PARAMETERS - ");
  ------------------
  |  |   40|    417|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    417|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    417|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    417|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    417|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    417|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2056|    417|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    417|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    417|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2057|       |
 2058|    417|    return size;
 2059|    419|}
ogs_nas_5gs_decode_imeisv_request:
 2079|    914|{
 2080|    914|    int size = sizeof(ogs_nas_imeisv_request_t);
 2081|       |
 2082|    914|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2082:9): [True: 0, False: 914]
  ------------------
 2083|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2084|      0|       return -1;
 2085|      0|    }
 2086|       |
 2087|    914|    memcpy(imeisv_request, pkbuf->data - size, size);
 2088|       |
 2089|    914|    ogs_trace("  IMEISV_REQUEST - ");
  ------------------
  |  |   40|    914|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    914|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    914|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    914|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    914|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    914|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2090|    914|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    914|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    914|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2091|       |
 2092|    914|    return size;
 2093|    914|}
ogs_nas_5gs_decode_ladn_indication:
 2111|    219|{
 2112|    219|    int size = 0;
 2113|    219|    ogs_nas_ladn_indication_t *source = NULL;
 2114|       |
 2115|    219|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (2115:9): [True: 2, False: 217]
  ------------------
 2116|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2117|      2|       return -1;
 2118|      2|    }
 2119|       |
 2120|    217|    source = (ogs_nas_ladn_indication_t *)pkbuf->data;
 2121|       |
 2122|    217|    ladn_indication->length = be16toh(source->length);
 2123|    217|    size = ladn_indication->length + sizeof(ladn_indication->length);
 2124|       |
 2125|    217|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2125:9): [True: 10, False: 207]
  ------------------
 2126|     10|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     10|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     10|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     10|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     10|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     10|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     10|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2127|     10|       return -1;
 2128|     10|    }
 2129|       |
 2130|    207|    ladn_indication->buffer = pkbuf->data - size + sizeof(ladn_indication->length);
 2131|       |
 2132|    207|    ogs_trace("  LADN_INDICATION - ");
  ------------------
  |  |   40|    207|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    207|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    207|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    207|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    207|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    207|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2133|    207|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)ladn_indication->buffer, ladn_indication->length);
  ------------------
  |  |   53|    207|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    207|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2134|       |
 2135|    207|    return size;
 2136|    217|}
ogs_nas_5gs_decode_5gs_drx_parameters:
 2164|    411|{
 2165|    411|    int size = 0;
 2166|    411|    ogs_nas_5gs_drx_parameters_t *source = NULL;
 2167|       |
 2168|    411|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (2168:9): [True: 4, False: 407]
  ------------------
 2169|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2170|      4|       return -1;
 2171|      4|    }
 2172|       |
 2173|    407|    source = (ogs_nas_5gs_drx_parameters_t *)pkbuf->data;
 2174|       |
 2175|    407|    drx_parameters->length = source->length;
 2176|    407|    size = drx_parameters->length + sizeof(drx_parameters->length);
 2177|       |
 2178|    407|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2178:9): [True: 2, False: 405]
  ------------------
 2179|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2180|      2|       return -1;
 2181|      2|    }
 2182|       |
 2183|    405|    if (sizeof(*drx_parameters) < size) return -1;
  ------------------
  |  Branch (2183:9): [True: 3, False: 402]
  ------------------
 2184|    402|    memcpy(drx_parameters, pkbuf->data - size, size);
 2185|       |
 2186|    402|    ogs_trace("  5GS_DRX_PARAMETERS - ");
  ------------------
  |  |   40|    402|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    402|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    402|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    402|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    402|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    402|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2187|    402|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    402|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    402|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2188|       |
 2189|    402|    return size;
 2190|    405|}
ogs_nas_5gs_decode_5gs_identity_type:
 2210|      1|{
 2211|      1|    int size = sizeof(ogs_nas_5gs_identity_type_t);
 2212|       |
 2213|      1|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2213:9): [True: 0, False: 1]
  ------------------
 2214|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2215|      0|       return -1;
 2216|      0|    }
 2217|       |
 2218|      1|    memcpy(identity_type, pkbuf->data - size, size);
 2219|       |
 2220|      1|    ogs_trace("  5GS_IDENTITY_TYPE - ");
  ------------------
  |  |   40|      1|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2221|      1|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|      1|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2222|       |
 2223|      1|    return size;
 2224|      1|}
ogs_nas_5gs_decode_ladn_information:
 2244|    487|{
 2245|    487|    int size = 0;
 2246|    487|    ogs_nas_ladn_information_t *source = NULL;
 2247|       |
 2248|    487|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (2248:9): [True: 4, False: 483]
  ------------------
 2249|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2250|      4|       return -1;
 2251|      4|    }
 2252|       |
 2253|    483|    source = (ogs_nas_ladn_information_t *)pkbuf->data;
 2254|       |
 2255|    483|    ladn_information->length = be16toh(source->length);
 2256|    483|    size = ladn_information->length + sizeof(ladn_information->length);
 2257|       |
 2258|    483|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2258:9): [True: 24, False: 459]
  ------------------
 2259|     24|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     24|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     24|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     24|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     24|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     24|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     24|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2260|     24|       return -1;
 2261|     24|    }
 2262|       |
 2263|    459|    ladn_information->buffer = pkbuf->data - size + sizeof(ladn_information->length);
 2264|       |
 2265|    459|    ogs_trace("  LADN_INFORMATION - ");
  ------------------
  |  |   40|    459|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    459|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    459|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    459|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    459|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    459|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2266|    459|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)ladn_information->buffer, ladn_information->length);
  ------------------
  |  |   53|    459|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    459|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2267|       |
 2268|    459|    return size;
 2269|    483|}
ogs_nas_5gs_decode_mico_indication:
 2297|  2.87k|{
 2298|  2.87k|    int size = sizeof(ogs_nas_mico_indication_t);
 2299|       |
 2300|  2.87k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2300:9): [True: 0, False: 2.87k]
  ------------------
 2301|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2302|      0|       return -1;
 2303|      0|    }
 2304|       |
 2305|  2.87k|    memcpy(mico_indication, pkbuf->data - size, size);
 2306|       |
 2307|  2.87k|    ogs_trace("  MICO_INDICATION - ");
  ------------------
  |  |   40|  2.87k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.87k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.87k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.87k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.87k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.87k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2308|  2.87k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  2.87k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  2.87k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2309|       |
 2310|  2.87k|    return size;
 2311|  2.87k|}
ogs_nas_5gs_decode_ma_pdu_session_information:
 2329|    954|{
 2330|    954|    int size = sizeof(ogs_nas_ma_pdu_session_information_t);
 2331|       |
 2332|    954|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2332:9): [True: 0, False: 954]
  ------------------
 2333|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2334|      0|       return -1;
 2335|      0|    }
 2336|       |
 2337|    954|    memcpy(ma_pdu_session_information, pkbuf->data - size, size);
 2338|       |
 2339|    954|    ogs_trace("  MA_PDU_SESSION_INFORMATION - ");
  ------------------
  |  |   40|    954|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    954|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    954|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    954|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    954|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    954|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2340|    954|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    954|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    954|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2341|       |
 2342|    954|    return size;
 2343|    954|}
ogs_nas_5gs_decode_mapped_nssai:
 2361|    200|{
 2362|    200|    int size = 0;
 2363|    200|    ogs_nas_mapped_nssai_t *source = NULL;
 2364|       |
 2365|    200|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (2365:9): [True: 1, False: 199]
  ------------------
 2366|      1|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2367|      1|       return -1;
 2368|      1|    }
 2369|       |
 2370|    199|    source = (ogs_nas_mapped_nssai_t *)pkbuf->data;
 2371|       |
 2372|    199|    mapped_nssai->length = source->length;
 2373|    199|    size = mapped_nssai->length + sizeof(mapped_nssai->length);
 2374|       |
 2375|    199|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2375:9): [True: 1, False: 198]
  ------------------
 2376|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2377|      1|       return -1;
 2378|      1|    }
 2379|       |
 2380|    198|    if (sizeof(*mapped_nssai) < size) return -1;
  ------------------
  |  Branch (2380:9): [True: 1, False: 197]
  ------------------
 2381|    197|    memcpy(mapped_nssai, pkbuf->data - size, size);
 2382|       |
 2383|    197|    ogs_trace("  MAPPED_NSSAI - ");
  ------------------
  |  |   40|    197|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    197|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    197|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    197|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    197|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    197|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2384|    197|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    197|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    197|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2385|       |
 2386|    197|    return size;
 2387|    198|}
ogs_nas_5gs_decode_mobile_station_classmark_2:
 2407|    217|{
 2408|    217|    int size = 0;
 2409|    217|    ogs_nas_mobile_station_classmark_2_t *source = NULL;
 2410|       |
 2411|    217|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (2411:9): [True: 2, False: 215]
  ------------------
 2412|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2413|      2|       return -1;
 2414|      2|    }
 2415|       |
 2416|    215|    source = (ogs_nas_mobile_station_classmark_2_t *)pkbuf->data;
 2417|       |
 2418|    215|    mobile_station_classmark_2->length = source->length;
 2419|    215|    size = mobile_station_classmark_2->length + sizeof(mobile_station_classmark_2->length);
 2420|       |
 2421|    215|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2421:9): [True: 1, False: 214]
  ------------------
 2422|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2423|      1|       return -1;
 2424|      1|    }
 2425|       |
 2426|    214|    if (sizeof(*mobile_station_classmark_2) < size) return -1;
  ------------------
  |  Branch (2426:9): [True: 2, False: 212]
  ------------------
 2427|    212|    memcpy(mobile_station_classmark_2, pkbuf->data - size, size);
 2428|       |
 2429|    212|    ogs_trace("  MOBILE_STATION_CLASSMARK_2 - ");
  ------------------
  |  |   40|    212|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    212|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    212|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    212|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    212|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    212|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2430|    212|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    212|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    212|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2431|       |
 2432|    212|    return size;
 2433|    214|}
ogs_nas_5gs_decode_key_set_identifier:
 2453|  1.44k|{
 2454|  1.44k|    int size = sizeof(ogs_nas_key_set_identifier_t);
 2455|       |
 2456|  1.44k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2456:9): [True: 1, False: 1.44k]
  ------------------
 2457|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2458|      1|       return -1;
 2459|      1|    }
 2460|       |
 2461|  1.44k|    memcpy(key_set_identifier, pkbuf->data - size, size);
 2462|       |
 2463|  1.44k|    ogs_trace("  KEY_SET_IDENTIFIER - ");
  ------------------
  |  |   40|  1.44k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.44k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.44k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.44k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.44k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.44k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2464|  1.44k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.44k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.44k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2465|       |
 2466|  1.44k|    return size;
 2467|  1.44k|}
ogs_nas_5gs_decode_message_container:
 2485|  1.04k|{
 2486|  1.04k|    int size = 0;
 2487|  1.04k|    ogs_nas_message_container_t *source = NULL;
 2488|       |
 2489|  1.04k|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (2489:9): [True: 7, False: 1.04k]
  ------------------
 2490|      7|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2491|      7|       return -1;
 2492|      7|    }
 2493|       |
 2494|  1.04k|    source = (ogs_nas_message_container_t *)pkbuf->data;
 2495|       |
 2496|  1.04k|    message_container->length = be16toh(source->length);
 2497|  1.04k|    size = message_container->length + sizeof(message_container->length);
 2498|       |
 2499|  1.04k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2499:9): [True: 19, False: 1.02k]
  ------------------
 2500|     19|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     19|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     19|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     19|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     19|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     19|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     19|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2501|     19|       return -1;
 2502|     19|    }
 2503|       |
 2504|  1.02k|    message_container->buffer = pkbuf->data - size + sizeof(message_container->length);
 2505|       |
 2506|  1.02k|    ogs_trace("  MESSAGE_CONTAINER - ");
  ------------------
  |  |   40|  1.02k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.02k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.02k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.02k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.02k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.02k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2507|  1.02k|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)message_container->buffer, message_container->length);
  ------------------
  |  |   53|  1.02k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.02k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2508|       |
 2509|  1.02k|    return size;
 2510|  1.04k|}
ogs_nas_5gs_decode_security_algorithms:
 2538|    143|{
 2539|    143|    int size = sizeof(ogs_nas_security_algorithms_t);
 2540|       |
 2541|    143|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2541:9): [True: 0, False: 143]
  ------------------
 2542|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2543|      0|       return -1;
 2544|      0|    }
 2545|       |
 2546|    143|    memcpy(security_algorithms, pkbuf->data - size, size);
 2547|       |
 2548|    143|    ogs_trace("  SECURITY_ALGORITHMS - ");
  ------------------
  |  |   40|    143|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    143|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    143|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    143|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    143|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    143|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2549|    143|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    143|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    143|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2550|       |
 2551|    143|    return size;
 2552|    143|}
ogs_nas_5gs_decode_network_name:
 2572|    480|{
 2573|    480|    int size = 0;
 2574|    480|    ogs_nas_network_name_t *source = NULL;
 2575|       |
 2576|    480|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (2576:9): [True: 2, False: 478]
  ------------------
 2577|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2578|      2|       return -1;
 2579|      2|    }
 2580|       |
 2581|    478|    source = (ogs_nas_network_name_t *)pkbuf->data;
 2582|       |
 2583|    478|    network_name->length = source->length;
 2584|    478|    size = network_name->length + sizeof(network_name->length);
 2585|       |
 2586|    478|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2586:9): [True: 4, False: 474]
  ------------------
 2587|      4|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2588|      4|       return -1;
 2589|      4|    }
 2590|       |
 2591|    474|    if (sizeof(*network_name) < size) return -1;
  ------------------
  |  Branch (2591:9): [True: 0, False: 474]
  ------------------
 2592|    474|    memcpy(network_name, pkbuf->data - size, size);
 2593|       |
 2594|    474|    ogs_trace("  NETWORK_NAME - ");
  ------------------
  |  |   40|    474|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    474|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    474|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    474|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    474|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    474|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2595|    474|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    474|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    474|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2596|       |
 2597|    474|    return size;
 2598|    474|}
ogs_nas_5gs_decode_network_slicing_indication:
 2618|  3.41k|{
 2619|  3.41k|    int size = sizeof(ogs_nas_network_slicing_indication_t);
 2620|       |
 2621|  3.41k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2621:9): [True: 0, False: 3.41k]
  ------------------
 2622|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2623|      0|       return -1;
 2624|      0|    }
 2625|       |
 2626|  3.41k|    memcpy(network_slicing_indication, pkbuf->data - size, size);
 2627|       |
 2628|  3.41k|    ogs_trace("  NETWORK_SLICING_INDICATION - ");
  ------------------
  |  |   40|  3.41k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  3.41k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  3.41k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  3.41k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  3.41k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  3.41k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2629|  3.41k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  3.41k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  3.41k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2630|       |
 2631|  3.41k|    return size;
 2632|  3.41k|}
ogs_nas_5gs_decode_non_3gpp_nw_provided_policies:
 2650|    579|{
 2651|    579|    int size = sizeof(ogs_nas_non_3gpp_nw_provided_policies_t);
 2652|       |
 2653|    579|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2653:9): [True: 3, False: 576]
  ------------------
 2654|      3|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2655|      3|       return -1;
 2656|      3|    }
 2657|       |
 2658|    576|    memcpy(non_3gpp_nw_provided_policies, pkbuf->data - size, size);
 2659|       |
 2660|    576|    ogs_trace("  NON_3GPP_NW_PROVIDED_POLICIES - ");
  ------------------
  |  |   40|    576|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    576|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    576|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    576|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    576|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    576|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2661|    576|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    576|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    576|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2662|       |
 2663|    576|    return size;
 2664|    579|}
ogs_nas_5gs_decode_nssai:
 2682|  1.35k|{
 2683|  1.35k|    int size = 0;
 2684|  1.35k|    ogs_nas_nssai_t *source = NULL;
 2685|       |
 2686|  1.35k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (2686:9): [True: 5, False: 1.35k]
  ------------------
 2687|      5|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2688|      5|       return -1;
 2689|      5|    }
 2690|       |
 2691|  1.35k|    source = (ogs_nas_nssai_t *)pkbuf->data;
 2692|       |
 2693|  1.35k|    nssai->length = source->length;
 2694|  1.35k|    size = nssai->length + sizeof(nssai->length);
 2695|       |
 2696|  1.35k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2696:9): [True: 4, False: 1.34k]
  ------------------
 2697|      4|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2698|      4|       return -1;
 2699|      4|    }
 2700|       |
 2701|  1.34k|    if (sizeof(*nssai) < size) return -1;
  ------------------
  |  Branch (2701:9): [True: 1, False: 1.34k]
  ------------------
 2702|  1.34k|    memcpy(nssai, pkbuf->data - size, size);
 2703|       |
 2704|  1.34k|    ogs_trace("  NSSAI - ");
  ------------------
  |  |   40|  1.34k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.34k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.34k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.34k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.34k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.34k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2705|  1.34k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.34k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.34k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2706|       |
 2707|  1.34k|    return size;
 2708|  1.34k|}
ogs_nas_5gs_decode_nssai_inclusion_mode:
 2728|    737|{
 2729|    737|    int size = sizeof(ogs_nas_nssai_inclusion_mode_t);
 2730|       |
 2731|    737|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2731:9): [True: 0, False: 737]
  ------------------
 2732|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2733|      0|       return -1;
 2734|      0|    }
 2735|       |
 2736|    737|    memcpy(nssai_inclusion_mode, pkbuf->data - size, size);
 2737|       |
 2738|    737|    ogs_trace("  NSSAI_INCLUSION_MODE - ");
  ------------------
  |  |   40|    737|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    737|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    737|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    737|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    737|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    737|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2739|    737|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    737|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    737|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2740|       |
 2741|    737|    return size;
 2742|    737|}
ogs_nas_5gs_decode_operator_defined_access_category_definitions:
 2760|    463|{
 2761|    463|    int size = 0;
 2762|    463|    ogs_nas_operator_defined_access_category_definitions_t *source = NULL;
 2763|       |
 2764|    463|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (2764:9): [True: 6, False: 457]
  ------------------
 2765|      6|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2766|      6|       return -1;
 2767|      6|    }
 2768|       |
 2769|    457|    source = (ogs_nas_operator_defined_access_category_definitions_t *)pkbuf->data;
 2770|       |
 2771|    457|    operator_defined_access_category_definitions->length = be16toh(source->length);
 2772|    457|    size = operator_defined_access_category_definitions->length + sizeof(operator_defined_access_category_definitions->length);
 2773|       |
 2774|    457|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2774:9): [True: 23, False: 434]
  ------------------
 2775|     23|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     23|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     23|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     23|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     23|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     23|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     23|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2776|     23|       return -1;
 2777|     23|    }
 2778|       |
 2779|    434|    operator_defined_access_category_definitions->buffer = pkbuf->data - size + sizeof(operator_defined_access_category_definitions->length);
 2780|       |
 2781|    434|    ogs_trace("  OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS - ");
  ------------------
  |  |   40|    434|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    434|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    434|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    434|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    434|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    434|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2782|    434|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)operator_defined_access_category_definitions->buffer, operator_defined_access_category_definitions->length);
  ------------------
  |  |   53|    434|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    434|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2783|       |
 2784|    434|    return size;
 2785|    457|}
ogs_nas_5gs_decode_payload_container:
 2813|    616|{
 2814|    616|    int size = 0;
 2815|    616|    ogs_nas_payload_container_t *source = NULL;
 2816|       |
 2817|    616|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (2817:9): [True: 4, False: 612]
  ------------------
 2818|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2819|      4|       return -1;
 2820|      4|    }
 2821|       |
 2822|    612|    source = (ogs_nas_payload_container_t *)pkbuf->data;
 2823|       |
 2824|    612|    payload_container->length = be16toh(source->length);
 2825|    612|    size = payload_container->length + sizeof(payload_container->length);
 2826|       |
 2827|    612|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2827:9): [True: 22, False: 590]
  ------------------
 2828|     22|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     22|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     22|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     22|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     22|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     22|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     22|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2829|     22|       return -1;
 2830|     22|    }
 2831|       |
 2832|    590|    payload_container->buffer = pkbuf->data - size + sizeof(payload_container->length);
 2833|       |
 2834|    590|    ogs_trace("  PAYLOAD_CONTAINER - ");
  ------------------
  |  |   40|    590|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    590|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    590|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    590|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    590|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    590|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2835|    590|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)payload_container->buffer, payload_container->length);
  ------------------
  |  |   53|    590|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    590|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2836|       |
 2837|    590|    return size;
 2838|    612|}
ogs_nas_5gs_decode_5gs_mobile_identity:
 2866|  1.89k|{
 2867|  1.89k|    int size = 0;
 2868|  1.89k|    ogs_nas_5gs_mobile_identity_t *source = NULL;
 2869|       |
 2870|  1.89k|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (2870:9): [True: 12, False: 1.87k]
  ------------------
 2871|     12|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|     12|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     12|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     12|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     12|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     12|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     12|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2872|     12|       return -1;
 2873|     12|    }
 2874|       |
 2875|  1.87k|    source = (ogs_nas_5gs_mobile_identity_t *)pkbuf->data;
 2876|       |
 2877|  1.87k|    mobile_identity->length = be16toh(source->length);
 2878|  1.87k|    size = mobile_identity->length + sizeof(mobile_identity->length);
 2879|       |
 2880|  1.87k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2880:9): [True: 24, False: 1.85k]
  ------------------
 2881|     24|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     24|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     24|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     24|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     24|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     24|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     24|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2882|     24|       return -1;
 2883|     24|    }
 2884|       |
 2885|  1.85k|    mobile_identity->buffer = pkbuf->data - size + sizeof(mobile_identity->length);
 2886|       |
 2887|  1.85k|    ogs_trace("  5GS_MOBILE_IDENTITY - ");
  ------------------
  |  |   40|  1.85k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.85k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.85k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.85k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.85k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.85k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2888|  1.85k|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)mobile_identity->buffer, mobile_identity->length);
  ------------------
  |  |   53|  1.85k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.85k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2889|       |
 2890|  1.85k|    return size;
 2891|  1.87k|}
ogs_nas_5gs_decode_payload_container_type:
 2919|  1.25k|{
 2920|  1.25k|    int size = sizeof(ogs_nas_payload_container_type_t);
 2921|       |
 2922|  1.25k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2922:9): [True: 0, False: 1.25k]
  ------------------
 2923|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2924|      0|       return -1;
 2925|      0|    }
 2926|       |
 2927|  1.25k|    memcpy(payload_container_type, pkbuf->data - size, size);
 2928|       |
 2929|  1.25k|    ogs_trace("  PAYLOAD_CONTAINER_TYPE - ");
  ------------------
  |  |   40|  1.25k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.25k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.25k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.25k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.25k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.25k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2930|  1.25k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.25k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.25k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2931|       |
 2932|  1.25k|    return size;
 2933|  1.25k|}
ogs_nas_5gs_decode_pdu_session_identity_2:
 2951|    705|{
 2952|    705|    int size = sizeof(ogs_nas_pdu_session_identity_2_t);
 2953|       |
 2954|    705|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2954:9): [True: 5, False: 700]
  ------------------
 2955|      5|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2956|      5|       return -1;
 2957|      5|    }
 2958|       |
 2959|    700|    memcpy(pdu_session_identity_2, pkbuf->data - size, size);
 2960|       |
 2961|    700|    ogs_trace("  PDU_SESSION_IDENTITY_2 - ");
  ------------------
  |  |   40|    700|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    700|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    700|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    700|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    700|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    700|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2962|    700|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    700|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    700|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2963|       |
 2964|    700|    return size;
 2965|    705|}
ogs_nas_5gs_decode_pdu_session_reactivation_result:
 2985|    499|{
 2986|    499|    int size = 0;
 2987|    499|    ogs_nas_pdu_session_reactivation_result_t *source = NULL;
 2988|       |
 2989|    499|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (2989:9): [True: 4, False: 495]
  ------------------
 2990|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2991|      4|       return -1;
 2992|      4|    }
 2993|       |
 2994|    495|    source = (ogs_nas_pdu_session_reactivation_result_t *)pkbuf->data;
 2995|       |
 2996|    495|    pdu_session_reactivation_result->length = source->length;
 2997|    495|    size = pdu_session_reactivation_result->length + sizeof(pdu_session_reactivation_result->length);
 2998|       |
 2999|    495|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2999:9): [True: 8, False: 487]
  ------------------
 3000|      8|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      8|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      8|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      8|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      8|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      8|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      8|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3001|      8|       return -1;
 3002|      8|    }
 3003|       |
 3004|    487|    if (sizeof(*pdu_session_reactivation_result) < size) return -1;
  ------------------
  |  Branch (3004:9): [True: 1, False: 486]
  ------------------
 3005|    486|    memcpy(pdu_session_reactivation_result, pkbuf->data - size, size);
 3006|       |
 3007|    486|    pdu_session_reactivation_result->psi = be16toh(pdu_session_reactivation_result->psi);
 3008|       |
 3009|    486|    ogs_trace("  PDU_SESSION_REACTIVATION_RESULT - ");
  ------------------
  |  |   40|    486|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    486|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    486|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    486|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    486|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    486|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3010|    486|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    486|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    486|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3011|       |
 3012|    486|    return size;
 3013|    487|}
ogs_nas_5gs_decode_pdu_session_reactivation_result_error_cause:
 3035|    474|{
 3036|    474|    int size = 0;
 3037|    474|    ogs_nas_pdu_session_reactivation_result_error_cause_t *source = NULL;
 3038|       |
 3039|    474|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (3039:9): [True: 4, False: 470]
  ------------------
 3040|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3041|      4|       return -1;
 3042|      4|    }
 3043|       |
 3044|    470|    source = (ogs_nas_pdu_session_reactivation_result_error_cause_t *)pkbuf->data;
 3045|       |
 3046|    470|    pdu_session_reactivation_result_error_cause->length = be16toh(source->length);
 3047|    470|    size = pdu_session_reactivation_result_error_cause->length + sizeof(pdu_session_reactivation_result_error_cause->length);
 3048|       |
 3049|    470|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3049:9): [True: 23, False: 447]
  ------------------
 3050|     23|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     23|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     23|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     23|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     23|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     23|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     23|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3051|     23|       return -1;
 3052|     23|    }
 3053|       |
 3054|    447|    pdu_session_reactivation_result_error_cause->buffer = pkbuf->data - size + sizeof(pdu_session_reactivation_result_error_cause->length);
 3055|       |
 3056|    447|    ogs_trace("  PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE - ");
  ------------------
  |  |   40|    447|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    447|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    447|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    447|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    447|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    447|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3057|    447|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)pdu_session_reactivation_result_error_cause->buffer, pdu_session_reactivation_result_error_cause->length);
  ------------------
  |  |   53|    447|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    447|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3058|       |
 3059|    447|    return size;
 3060|    470|}
ogs_nas_5gs_decode_pdu_session_status:
 3088|  1.41k|{
 3089|  1.41k|    int size = 0;
 3090|  1.41k|    ogs_nas_pdu_session_status_t *source = NULL;
 3091|       |
 3092|  1.41k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3092:9): [True: 9, False: 1.40k]
  ------------------
 3093|      9|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      9|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      9|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      9|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      9|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      9|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      9|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3094|      9|       return -1;
 3095|      9|    }
 3096|       |
 3097|  1.40k|    source = (ogs_nas_pdu_session_status_t *)pkbuf->data;
 3098|       |
 3099|  1.40k|    pdu_session_status->length = source->length;
 3100|  1.40k|    size = pdu_session_status->length + sizeof(pdu_session_status->length);
 3101|       |
 3102|  1.40k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3102:9): [True: 7, False: 1.39k]
  ------------------
 3103|      7|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3104|      7|       return -1;
 3105|      7|    }
 3106|       |
 3107|  1.39k|    if (sizeof(*pdu_session_status) < size) return -1;
  ------------------
  |  Branch (3107:9): [True: 2, False: 1.39k]
  ------------------
 3108|  1.39k|    memcpy(pdu_session_status, pkbuf->data - size, size);
 3109|       |
 3110|  1.39k|    pdu_session_status->psi = be16toh(pdu_session_status->psi);
 3111|       |
 3112|  1.39k|    ogs_trace("  PDU_SESSION_STATUS - ");
  ------------------
  |  |   40|  1.39k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.39k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.39k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.39k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.39k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.39k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3113|  1.39k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.39k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.39k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3114|       |
 3115|  1.39k|    return size;
 3116|  1.39k|}
ogs_nas_5gs_decode_plmn_list:
 3138|    208|{
 3139|    208|    int size = 0;
 3140|    208|    ogs_nas_plmn_list_t *source = NULL;
 3141|       |
 3142|    208|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3142:9): [True: 3, False: 205]
  ------------------
 3143|      3|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3144|      3|       return -1;
 3145|      3|    }
 3146|       |
 3147|    205|    source = (ogs_nas_plmn_list_t *)pkbuf->data;
 3148|       |
 3149|    205|    plmn_list->length = source->length;
 3150|    205|    size = plmn_list->length + sizeof(plmn_list->length);
 3151|       |
 3152|    205|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3152:9): [True: 1, False: 204]
  ------------------
 3153|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3154|      1|       return -1;
 3155|      1|    }
 3156|       |
 3157|    204|    if (sizeof(*plmn_list) < size) return -1;
  ------------------
  |  Branch (3157:9): [True: 3, False: 201]
  ------------------
 3158|    201|    memcpy(plmn_list, pkbuf->data - size, size);
 3159|       |
 3160|    201|    ogs_trace("  PLMN_LIST - ");
  ------------------
  |  |   40|    201|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    201|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    201|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    201|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    201|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    201|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3161|    201|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    201|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    201|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3162|       |
 3163|    201|    return size;
 3164|    204|}
ogs_nas_5gs_decode_rejected_nssai:
 3184|  1.05k|{
 3185|  1.05k|    int size = 0;
 3186|  1.05k|    ogs_nas_rejected_nssai_t *source = NULL;
 3187|       |
 3188|  1.05k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3188:9): [True: 4, False: 1.05k]
  ------------------
 3189|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3190|      4|       return -1;
 3191|      4|    }
 3192|       |
 3193|  1.05k|    source = (ogs_nas_rejected_nssai_t *)pkbuf->data;
 3194|       |
 3195|  1.05k|    rejected_nssai->length = source->length;
 3196|  1.05k|    size = rejected_nssai->length + sizeof(rejected_nssai->length);
 3197|       |
 3198|  1.05k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3198:9): [True: 1, False: 1.04k]
  ------------------
 3199|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3200|      1|       return -1;
 3201|      1|    }
 3202|       |
 3203|  1.04k|    if (sizeof(*rejected_nssai) < size) return -1;
  ------------------
  |  Branch (3203:9): [True: 1, False: 1.04k]
  ------------------
 3204|  1.04k|    memcpy(rejected_nssai, pkbuf->data - size, size);
 3205|       |
 3206|  1.04k|    ogs_trace("  REJECTED_NSSAI - ");
  ------------------
  |  |   40|  1.04k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.04k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.04k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.04k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.04k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.04k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3207|  1.04k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.04k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.04k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3208|       |
 3209|  1.04k|    return size;
 3210|  1.04k|}
ogs_nas_5gs_decode_release_assistance_indication:
 3230|  2.10k|{
 3231|  2.10k|    int size = sizeof(ogs_nas_release_assistance_indication_t);
 3232|       |
 3233|  2.10k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3233:9): [True: 0, False: 2.10k]
  ------------------
 3234|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3235|      0|       return -1;
 3236|      0|    }
 3237|       |
 3238|  2.10k|    memcpy(release_assistance_indication, pkbuf->data - size, size);
 3239|       |
 3240|  2.10k|    ogs_trace("  RELEASE_ASSISTANCE_INDICATION - ");
  ------------------
  |  |   40|  2.10k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.10k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.10k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.10k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.10k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.10k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3241|  2.10k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  2.10k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  2.10k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3242|       |
 3243|  2.10k|    return size;
 3244|  2.10k|}
ogs_nas_5gs_decode_request_type:
 3262|  1.01k|{
 3263|  1.01k|    int size = sizeof(ogs_nas_request_type_t);
 3264|       |
 3265|  1.01k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3265:9): [True: 0, False: 1.01k]
  ------------------
 3266|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3267|      0|       return -1;
 3268|      0|    }
 3269|       |
 3270|  1.01k|    memcpy(request_type, pkbuf->data - size, size);
 3271|       |
 3272|  1.01k|    ogs_trace("  REQUEST_TYPE - ");
  ------------------
  |  |   40|  1.01k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.01k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.01k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.01k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.01k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.01k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3273|  1.01k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.01k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.01k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3274|       |
 3275|  1.01k|    return size;
 3276|  1.01k|}
ogs_nas_5gs_decode_s1_ue_network_capability:
 3294|    205|{
 3295|    205|    int size = 0;
 3296|    205|    ogs_nas_s1_ue_network_capability_t *source = NULL;
 3297|       |
 3298|    205|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3298:9): [True: 1, False: 204]
  ------------------
 3299|      1|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3300|      1|       return -1;
 3301|      1|    }
 3302|       |
 3303|    204|    source = (ogs_nas_s1_ue_network_capability_t *)pkbuf->data;
 3304|       |
 3305|    204|    s1_ue_network_capability->length = source->length;
 3306|    204|    size = s1_ue_network_capability->length + sizeof(s1_ue_network_capability->length);
 3307|       |
 3308|    204|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3308:9): [True: 1, False: 203]
  ------------------
 3309|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3310|      1|       return -1;
 3311|      1|    }
 3312|       |
 3313|    203|    if (sizeof(*s1_ue_network_capability) < size) return -1;
  ------------------
  |  Branch (3313:9): [True: 2, False: 201]
  ------------------
 3314|    201|    memcpy(s1_ue_network_capability, pkbuf->data - size, size);
 3315|       |
 3316|    201|    ogs_trace("  S1_UE_NETWORK_CAPABILITY - ");
  ------------------
  |  |   40|    201|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    201|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    201|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    201|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    201|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    201|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3317|    201|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    201|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    201|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3318|       |
 3319|    201|    return size;
 3320|    203|}
ogs_nas_5gs_decode_s1_ue_security_capability:
 3340|    205|{
 3341|    205|    int size = 0;
 3342|    205|    ogs_nas_s1_ue_security_capability_t *source = NULL;
 3343|       |
 3344|    205|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3344:9): [True: 2, False: 203]
  ------------------
 3345|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3346|      2|       return -1;
 3347|      2|    }
 3348|       |
 3349|    203|    source = (ogs_nas_s1_ue_security_capability_t *)pkbuf->data;
 3350|       |
 3351|    203|    s1_ue_security_capability->length = source->length;
 3352|    203|    size = s1_ue_security_capability->length + sizeof(s1_ue_security_capability->length);
 3353|       |
 3354|    203|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3354:9): [True: 1, False: 202]
  ------------------
 3355|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3356|      1|       return -1;
 3357|      1|    }
 3358|       |
 3359|    202|    if (sizeof(*s1_ue_security_capability) < size) return -1;
  ------------------
  |  Branch (3359:9): [True: 2, False: 200]
  ------------------
 3360|    200|    memcpy(s1_ue_security_capability, pkbuf->data - size, size);
 3361|       |
 3362|    200|    ogs_trace("  S1_UE_SECURITY_CAPABILITY - ");
  ------------------
  |  |   40|    200|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    200|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    200|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    200|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    200|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    200|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3363|    200|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    200|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    200|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3364|       |
 3365|    200|    return size;
 3366|    202|}
ogs_nas_5gs_decode_service_area_list:
 3386|    485|{
 3387|    485|    int size = 0;
 3388|    485|    ogs_nas_service_area_list_t *source = NULL;
 3389|       |
 3390|    485|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3390:9): [True: 2, False: 483]
  ------------------
 3391|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3392|      2|       return -1;
 3393|      2|    }
 3394|       |
 3395|    483|    source = (ogs_nas_service_area_list_t *)pkbuf->data;
 3396|       |
 3397|    483|    service_area_list->length = source->length;
 3398|    483|    size = service_area_list->length + sizeof(service_area_list->length);
 3399|       |
 3400|    483|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3400:9): [True: 2, False: 481]
  ------------------
 3401|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3402|      2|       return -1;
 3403|      2|    }
 3404|       |
 3405|    481|    if (sizeof(*service_area_list) < size) return -1;
  ------------------
  |  Branch (3405:9): [True: 1, False: 480]
  ------------------
 3406|    480|    memcpy(service_area_list, pkbuf->data - size, size);
 3407|       |
 3408|    480|    ogs_trace("  SERVICE_AREA_LIST - ");
  ------------------
  |  |   40|    480|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    480|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    480|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    480|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    480|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    480|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3409|    480|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    480|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    480|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3410|       |
 3411|    480|    return size;
 3412|    481|}
ogs_nas_5gs_decode_5gs_network_feature_support:
 3432|    220|{
 3433|    220|    int size = 0;
 3434|    220|    ogs_nas_5gs_network_feature_support_t *source = NULL;
 3435|       |
 3436|    220|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3436:9): [True: 2, False: 218]
  ------------------
 3437|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3438|      2|       return -1;
 3439|      2|    }
 3440|       |
 3441|    218|    source = (ogs_nas_5gs_network_feature_support_t *)pkbuf->data;
 3442|       |
 3443|    218|    network_feature_support->length = source->length;
 3444|    218|    size = network_feature_support->length + sizeof(network_feature_support->length);
 3445|       |
 3446|    218|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3446:9): [True: 1, False: 217]
  ------------------
 3447|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3448|      1|       return -1;
 3449|      1|    }
 3450|       |
 3451|    217|    if (sizeof(*network_feature_support) < size) return -1;
  ------------------
  |  Branch (3451:9): [True: 1, False: 216]
  ------------------
 3452|    216|    memcpy(network_feature_support, pkbuf->data - size, size);
 3453|       |
 3454|    216|    ogs_trace("  5GS_NETWORK_FEATURE_SUPPORT - ");
  ------------------
  |  |   40|    216|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    216|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    216|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    216|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    216|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    216|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3455|    216|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    216|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    216|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3456|       |
 3457|    216|    return size;
 3458|    217|}
ogs_nas_5gs_decode_sms_indication:
 3478|  5.84k|{
 3479|  5.84k|    int size = sizeof(ogs_nas_sms_indication_t);
 3480|       |
 3481|  5.84k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3481:9): [True: 0, False: 5.84k]
  ------------------
 3482|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3483|      0|       return -1;
 3484|      0|    }
 3485|       |
 3486|  5.84k|    memcpy(sms_indication, pkbuf->data - size, size);
 3487|       |
 3488|  5.84k|    ogs_trace("  SMS_INDICATION - ");
  ------------------
  |  |   40|  5.84k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  5.84k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  5.84k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  5.84k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  5.84k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  5.84k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3489|  5.84k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  5.84k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  5.84k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3490|       |
 3491|  5.84k|    return size;
 3492|  5.84k|}
ogs_nas_5gs_decode_sor_transparent_container:
 3510|    463|{
 3511|    463|    int size = 0;
 3512|    463|    ogs_nas_sor_transparent_container_t *source = NULL;
 3513|       |
 3514|    463|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (3514:9): [True: 4, False: 459]
  ------------------
 3515|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3516|      4|       return -1;
 3517|      4|    }
 3518|       |
 3519|    459|    source = (ogs_nas_sor_transparent_container_t *)pkbuf->data;
 3520|       |
 3521|    459|    sor_transparent_container->length = be16toh(source->length);
 3522|    459|    size = sor_transparent_container->length + sizeof(sor_transparent_container->length);
 3523|       |
 3524|    459|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3524:9): [True: 24, False: 435]
  ------------------
 3525|     24|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     24|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     24|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     24|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     24|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     24|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     24|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3526|     24|       return -1;
 3527|     24|    }
 3528|       |
 3529|    435|    sor_transparent_container->buffer = pkbuf->data - size + sizeof(sor_transparent_container->length);
 3530|       |
 3531|    435|    ogs_trace("  SOR_TRANSPARENT_CONTAINER - ");
  ------------------
  |  |   40|    435|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    435|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    435|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    435|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    435|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    435|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3532|    435|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)sor_transparent_container->buffer, sor_transparent_container->length);
  ------------------
  |  |   53|    435|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    435|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3533|       |
 3534|    435|    return size;
 3535|    459|}
ogs_nas_5gs_decode_supported_codec_list:
 3563|    211|{
 3564|    211|    int size = 0;
 3565|    211|    ogs_nas_supported_codec_list_t *source = NULL;
 3566|       |
 3567|    211|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3567:9): [True: 1, False: 210]
  ------------------
 3568|      1|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3569|      1|       return -1;
 3570|      1|    }
 3571|       |
 3572|    210|    source = (ogs_nas_supported_codec_list_t *)pkbuf->data;
 3573|       |
 3574|    210|    supported_codec_list->length = source->length;
 3575|    210|    size = supported_codec_list->length + sizeof(supported_codec_list->length);
 3576|       |
 3577|    210|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3577:9): [True: 1, False: 209]
  ------------------
 3578|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3579|      1|       return -1;
 3580|      1|    }
 3581|       |
 3582|    209|    if (sizeof(*supported_codec_list) < size) return -1;
  ------------------
  |  Branch (3582:9): [True: 1, False: 208]
  ------------------
 3583|    208|    memcpy(supported_codec_list, pkbuf->data - size, size);
 3584|       |
 3585|    208|    ogs_trace("  SUPPORTED_CODEC_LIST - ");
  ------------------
  |  |   40|    208|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    208|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    208|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    208|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    208|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    208|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3586|    208|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    208|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    208|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3587|       |
 3588|    208|    return size;
 3589|    209|}
ogs_nas_5gs_decode_time_zone:
 3609|    219|{
 3610|    219|    int size = sizeof(ogs_nas_time_zone_t);
 3611|       |
 3612|    219|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3612:9): [True: 5, False: 214]
  ------------------
 3613|      5|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3614|      5|       return -1;
 3615|      5|    }
 3616|       |
 3617|    214|    memcpy(time_zone, pkbuf->data - size, size);
 3618|       |
 3619|    214|    ogs_trace("  TIME_ZONE - ");
  ------------------
  |  |   40|    214|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    214|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    214|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    214|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    214|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    214|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3620|    214|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    214|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    214|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3621|       |
 3622|    214|    return size;
 3623|    219|}
ogs_nas_5gs_decode_time_zone_and_time:
 3643|    185|{
 3644|    185|    int size = sizeof(ogs_nas_time_zone_and_time_t);
 3645|       |
 3646|    185|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3646:9): [True: 10, False: 175]
  ------------------
 3647|     10|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     10|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     10|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     10|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     10|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     10|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     10|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3648|     10|       return -1;
 3649|     10|    }
 3650|       |
 3651|    175|    memcpy(time_zone_and_time, pkbuf->data - size, size);
 3652|       |
 3653|    175|    ogs_trace("  TIME_ZONE_AND_TIME - ");
  ------------------
  |  |   40|    175|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    175|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    175|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    175|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    175|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    175|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3654|    175|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    175|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    175|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3655|       |
 3656|    175|    return size;
 3657|    185|}
ogs_nas_5gs_decode_ue_security_capability:
 3677|    351|{
 3678|    351|    int size = 0;
 3679|    351|    ogs_nas_ue_security_capability_t *source = NULL;
 3680|       |
 3681|    351|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3681:9): [True: 3, False: 348]
  ------------------
 3682|      3|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3683|      3|       return -1;
 3684|      3|    }
 3685|       |
 3686|    348|    source = (ogs_nas_ue_security_capability_t *)pkbuf->data;
 3687|       |
 3688|    348|    ue_security_capability->length = source->length;
 3689|    348|    size = ue_security_capability->length + sizeof(ue_security_capability->length);
 3690|       |
 3691|    348|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3691:9): [True: 6, False: 342]
  ------------------
 3692|      6|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3693|      6|       return -1;
 3694|      6|    }
 3695|       |
 3696|    342|    if (sizeof(*ue_security_capability) < size) return -1;
  ------------------
  |  Branch (3696:9): [True: 1, False: 341]
  ------------------
 3697|    341|    memcpy(ue_security_capability, pkbuf->data - size, size);
 3698|       |
 3699|    341|    ogs_trace("  UE_SECURITY_CAPABILITY - ");
  ------------------
  |  |   40|    341|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    341|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    341|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    341|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    341|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    341|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3700|    341|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    341|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    341|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3701|       |
 3702|    341|    return size;
 3703|    342|}
ogs_nas_5gs_decode_ue_usage_setting:
 3723|    198|{
 3724|    198|    int size = 0;
 3725|    198|    ogs_nas_ue_usage_setting_t *source = NULL;
 3726|       |
 3727|    198|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3727:9): [True: 1, False: 197]
  ------------------
 3728|      1|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3729|      1|       return -1;
 3730|      1|    }
 3731|       |
 3732|    197|    source = (ogs_nas_ue_usage_setting_t *)pkbuf->data;
 3733|       |
 3734|    197|    ue_usage_setting->length = source->length;
 3735|    197|    size = ue_usage_setting->length + sizeof(ue_usage_setting->length);
 3736|       |
 3737|    197|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3737:9): [True: 2, False: 195]
  ------------------
 3738|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3739|      2|       return -1;
 3740|      2|    }
 3741|       |
 3742|    195|    if (sizeof(*ue_usage_setting) < size) return -1;
  ------------------
  |  Branch (3742:9): [True: 1, False: 194]
  ------------------
 3743|    194|    memcpy(ue_usage_setting, pkbuf->data - size, size);
 3744|       |
 3745|    194|    ogs_trace("  UE_USAGE_SETTING - ");
  ------------------
  |  |   40|    194|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    194|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    194|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    194|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    194|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    194|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3746|    194|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    194|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    194|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3747|       |
 3748|    194|    return size;
 3749|    195|}
ogs_nas_5gs_decode_ue_status:
 3769|    213|{
 3770|    213|    int size = 0;
 3771|    213|    ogs_nas_ue_status_t *source = NULL;
 3772|       |
 3773|    213|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3773:9): [True: 2, False: 211]
  ------------------
 3774|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3775|      2|       return -1;
 3776|      2|    }
 3777|       |
 3778|    211|    source = (ogs_nas_ue_status_t *)pkbuf->data;
 3779|       |
 3780|    211|    ue_status->length = source->length;
 3781|    211|    size = ue_status->length + sizeof(ue_status->length);
 3782|       |
 3783|    211|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3783:9): [True: 1, False: 210]
  ------------------
 3784|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3785|      1|       return -1;
 3786|      1|    }
 3787|       |
 3788|    210|    if (sizeof(*ue_status) < size) return -1;
  ------------------
  |  Branch (3788:9): [True: 1, False: 209]
  ------------------
 3789|    209|    memcpy(ue_status, pkbuf->data - size, size);
 3790|       |
 3791|    209|    ogs_trace("  UE_STATUS - ");
  ------------------
  |  |   40|    209|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    209|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    209|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    209|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    209|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    209|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3792|    209|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    209|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    209|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3793|       |
 3794|    209|    return size;
 3795|    210|}
ogs_nas_5gs_decode_uplink_data_status:
 3815|    420|{
 3816|    420|    int size = 0;
 3817|    420|    ogs_nas_uplink_data_status_t *source = NULL;
 3818|       |
 3819|    420|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3819:9): [True: 2, False: 418]
  ------------------
 3820|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3821|      2|       return -1;
 3822|      2|    }
 3823|       |
 3824|    418|    source = (ogs_nas_uplink_data_status_t *)pkbuf->data;
 3825|       |
 3826|    418|    uplink_data_status->length = source->length;
 3827|    418|    size = uplink_data_status->length + sizeof(uplink_data_status->length);
 3828|       |
 3829|    418|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3829:9): [True: 2, False: 416]
  ------------------
 3830|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3831|      2|       return -1;
 3832|      2|    }
 3833|       |
 3834|    416|    if (sizeof(*uplink_data_status) < size) return -1;
  ------------------
  |  Branch (3834:9): [True: 1, False: 415]
  ------------------
 3835|    415|    memcpy(uplink_data_status, pkbuf->data - size, size);
 3836|       |
 3837|    415|    uplink_data_status->psi = be16toh(uplink_data_status->psi);
 3838|       |
 3839|    415|    ogs_trace("  UPLINK_DATA_STATUS - ");
  ------------------
  |  |   40|    415|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    415|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    415|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    415|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    415|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    415|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3840|    415|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    415|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    415|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3841|       |
 3842|    415|    return size;
 3843|    416|}
ogs_nas_5gs_decode_5gs_registration_result:
 3865|  1.21k|{
 3866|  1.21k|    int size = 0;
 3867|  1.21k|    ogs_nas_5gs_registration_result_t *source = NULL;
 3868|       |
 3869|  1.21k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3869:9): [True: 1, False: 1.21k]
  ------------------
 3870|      1|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3871|      1|       return -1;
 3872|      1|    }
 3873|       |
 3874|  1.21k|    source = (ogs_nas_5gs_registration_result_t *)pkbuf->data;
 3875|       |
 3876|  1.21k|    registration_result->length = source->length;
 3877|  1.21k|    size = registration_result->length + sizeof(registration_result->length);
 3878|       |
 3879|  1.21k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3879:9): [True: 8, False: 1.21k]
  ------------------
 3880|      8|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      8|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      8|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      8|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      8|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      8|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      8|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3881|      8|       return -1;
 3882|      8|    }
 3883|       |
 3884|  1.21k|    if (sizeof(*registration_result) < size) return -1;
  ------------------
  |  Branch (3884:9): [True: 1, False: 1.20k]
  ------------------
 3885|  1.20k|    memcpy(registration_result, pkbuf->data - size, size);
 3886|       |
 3887|  1.20k|    ogs_trace("  5GS_REGISTRATION_RESULT - ");
  ------------------
  |  |   40|  1.20k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.20k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.20k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.20k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.20k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.20k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3888|  1.20k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.20k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.20k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3889|       |
 3890|  1.20k|    return size;
 3891|  1.21k|}
ogs_nas_5gs_decode_ue_radio_capability_id:
 3911|    728|{
 3912|    728|    int size = 0;
 3913|    728|    ogs_nas_ue_radio_capability_id_t *source = NULL;
 3914|       |
 3915|    728|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3915:9): [True: 3, False: 725]
  ------------------
 3916|      3|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3917|      3|       return -1;
 3918|      3|    }
 3919|       |
 3920|    725|    source = (ogs_nas_ue_radio_capability_id_t *)pkbuf->data;
 3921|       |
 3922|    725|    ue_radio_capability_id->length = source->length;
 3923|    725|    size = ue_radio_capability_id->length + sizeof(ue_radio_capability_id->length);
 3924|       |
 3925|    725|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3925:9): [True: 2, False: 723]
  ------------------
 3926|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3927|      2|       return -1;
 3928|      2|    }
 3929|       |
 3930|    723|    if (sizeof(*ue_radio_capability_id) < size) return -1;
  ------------------
  |  Branch (3930:9): [True: 0, False: 723]
  ------------------
 3931|    723|    memcpy(ue_radio_capability_id, pkbuf->data - size, size);
 3932|       |
 3933|    723|    ogs_trace("  UE_RADIO_CAPABILITY_ID - ");
  ------------------
  |  |   40|    723|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    723|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    723|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    723|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    723|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    723|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3934|    723|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    723|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    723|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3935|       |
 3936|    723|    return size;
 3937|    723|}
ogs_nas_5gs_decode_ue_radio_capability_id_deletion_indication:
 3957|  1.86k|{
 3958|  1.86k|    int size = sizeof(ogs_nas_ue_radio_capability_id_deletion_indication_t);
 3959|       |
 3960|  1.86k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3960:9): [True: 0, False: 1.86k]
  ------------------
 3961|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3962|      0|       return -1;
 3963|      0|    }
 3964|       |
 3965|  1.86k|    memcpy(ue_radio_capability_id_deletion_indication, pkbuf->data - size, size);
 3966|       |
 3967|  1.86k|    ogs_trace("  UE_RADIO_CAPABILITY_ID_DELETION_INDICATION - ");
  ------------------
  |  |   40|  1.86k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.86k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.86k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.86k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.86k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.86k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3968|  1.86k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.86k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.86k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3969|       |
 3970|  1.86k|    return size;
 3971|  1.86k|}
ogs_nas_5gs_decode_5gs_registration_type:
 3989|    616|{
 3990|    616|    int size = sizeof(ogs_nas_5gs_registration_type_t);
 3991|       |
 3992|    616|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3992:9): [True: 0, False: 616]
  ------------------
 3993|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3994|      0|       return -1;
 3995|      0|    }
 3996|       |
 3997|    616|    memcpy(registration_type, pkbuf->data - size, size);
 3998|       |
 3999|    616|    ogs_trace("  5GS_REGISTRATION_TYPE - ");
  ------------------
  |  |   40|    616|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    616|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    616|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    616|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    616|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    616|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4000|    616|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    616|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    616|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4001|       |
 4002|    616|    return size;
 4003|    616|}
ogs_nas_5gs_decode_truncated_5g_s_tmsi_configuration:
 4023|    948|{
 4024|    948|    int size = 0;
 4025|    948|    ogs_nas_truncated_5g_s_tmsi_configuration_t *source = NULL;
 4026|       |
 4027|    948|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4027:9): [True: 1, False: 947]
  ------------------
 4028|      1|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4029|      1|       return -1;
 4030|      1|    }
 4031|       |
 4032|    947|    source = (ogs_nas_truncated_5g_s_tmsi_configuration_t *)pkbuf->data;
 4033|       |
 4034|    947|    truncated_s_tmsi_configuration->length = source->length;
 4035|    947|    size = truncated_s_tmsi_configuration->length + sizeof(truncated_s_tmsi_configuration->length);
 4036|       |
 4037|    947|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4037:9): [True: 3, False: 944]
  ------------------
 4038|      3|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4039|      3|       return -1;
 4040|      3|    }
 4041|       |
 4042|    944|    if (sizeof(*truncated_s_tmsi_configuration) < size) return -1;
  ------------------
  |  Branch (4042:9): [True: 2, False: 942]
  ------------------
 4043|    942|    memcpy(truncated_s_tmsi_configuration, pkbuf->data - size, size);
 4044|       |
 4045|    942|    ogs_trace("  TRUNCATED_5G_S_TMSI_CONFIGURATION - ");
  ------------------
  |  |   40|    942|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    942|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    942|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    942|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    942|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    942|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4046|    942|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    942|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    942|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4047|       |
 4048|    942|    return size;
 4049|    944|}
ogs_nas_5gs_decode_wus_assistance_information:
 4069|    415|{
 4070|    415|    int size = 0;
 4071|    415|    ogs_nas_wus_assistance_information_t *source = NULL;
 4072|       |
 4073|    415|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4073:9): [True: 5, False: 410]
  ------------------
 4074|      5|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4075|      5|       return -1;
 4076|      5|    }
 4077|       |
 4078|    410|    source = (ogs_nas_wus_assistance_information_t *)pkbuf->data;
 4079|       |
 4080|    410|    wus_assistance_information->length = source->length;
 4081|    410|    size = wus_assistance_information->length + sizeof(wus_assistance_information->length);
 4082|       |
 4083|    410|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4083:9): [True: 3, False: 407]
  ------------------
 4084|      3|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4085|      3|       return -1;
 4086|      3|    }
 4087|       |
 4088|    407|    if (sizeof(*wus_assistance_information) < size) return -1;
  ------------------
  |  Branch (4088:9): [True: 0, False: 407]
  ------------------
 4089|    407|    memcpy(wus_assistance_information, pkbuf->data - size, size);
 4090|       |
 4091|    407|    ogs_trace("  WUS_ASSISTANCE_INFORMATION - ");
  ------------------
  |  |   40|    407|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    407|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    407|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    407|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    407|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    407|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4092|    407|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    407|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    407|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4093|       |
 4094|    407|    return size;
 4095|    407|}
ogs_nas_5gs_decode_n5gc_indication:
 4115|    610|{
 4116|    610|    int size = sizeof(ogs_nas_n5gc_indication_t);
 4117|       |
 4118|    610|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4118:9): [True: 0, False: 610]
  ------------------
 4119|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4120|      0|       return -1;
 4121|      0|    }
 4122|       |
 4123|    610|    memcpy(n5gc_indication, pkbuf->data - size, size);
 4124|       |
 4125|    610|    ogs_trace("  N5GC_INDICATION - ");
  ------------------
  |  |   40|    610|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    610|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    610|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    610|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    610|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    610|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4126|    610|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    610|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    610|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4127|       |
 4128|    610|    return size;
 4129|    610|}
ogs_nas_5gs_decode_nb_n1_mode_drx_parameters:
 4147|    425|{
 4148|    425|    int size = 0;
 4149|    425|    ogs_nas_nb_n1_mode_drx_parameters_t *source = NULL;
 4150|       |
 4151|    425|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4151:9): [True: 3, False: 422]
  ------------------
 4152|      3|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4153|      3|       return -1;
 4154|      3|    }
 4155|       |
 4156|    422|    source = (ogs_nas_nb_n1_mode_drx_parameters_t *)pkbuf->data;
 4157|       |
 4158|    422|    nb_n1_mode_drx_parameters->length = source->length;
 4159|    422|    size = nb_n1_mode_drx_parameters->length + sizeof(nb_n1_mode_drx_parameters->length);
 4160|       |
 4161|    422|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4161:9): [True: 4, False: 418]
  ------------------
 4162|      4|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4163|      4|       return -1;
 4164|      4|    }
 4165|       |
 4166|    418|    if (sizeof(*nb_n1_mode_drx_parameters) < size) return -1;
  ------------------
  |  Branch (4166:9): [True: 1, False: 417]
  ------------------
 4167|    417|    memcpy(nb_n1_mode_drx_parameters, pkbuf->data - size, size);
 4168|       |
 4169|    417|    ogs_trace("  NB_N1_MODE_DRX_PARAMETERS - ");
  ------------------
  |  |   40|    417|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    417|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    417|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    417|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    417|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    417|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4170|    417|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    417|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    417|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4171|       |
 4172|    417|    return size;
 4173|    418|}
ogs_nas_5gs_decode_additional_configuration_indication:
 4193|  1.32k|{
 4194|  1.32k|    int size = sizeof(ogs_nas_additional_configuration_indication_t);
 4195|       |
 4196|  1.32k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4196:9): [True: 0, False: 1.32k]
  ------------------
 4197|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4198|      0|       return -1;
 4199|      0|    }
 4200|       |
 4201|  1.32k|    memcpy(additional_configuration_indication, pkbuf->data - size, size);
 4202|       |
 4203|  1.32k|    ogs_trace("  ADDITIONAL_CONFIGURATION_INDICATION - ");
  ------------------
  |  |   40|  1.32k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.32k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.32k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.32k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.32k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.32k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4204|  1.32k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.32k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.32k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4205|       |
 4206|  1.32k|    return size;
 4207|  1.32k|}
ogs_nas_5gs_decode_extended_rejected_nssai:
 4225|    950|{
 4226|    950|    int size = 0;
 4227|    950|    ogs_nas_extended_rejected_nssai_t *source = NULL;
 4228|       |
 4229|    950|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4229:9): [True: 6, False: 944]
  ------------------
 4230|      6|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4231|      6|       return -1;
 4232|      6|    }
 4233|       |
 4234|    944|    source = (ogs_nas_extended_rejected_nssai_t *)pkbuf->data;
 4235|       |
 4236|    944|    extended_rejected_nssai->length = source->length;
 4237|    944|    size = extended_rejected_nssai->length + sizeof(extended_rejected_nssai->length);
 4238|       |
 4239|    944|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4239:9): [True: 3, False: 941]
  ------------------
 4240|      3|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4241|      3|       return -1;
 4242|      3|    }
 4243|       |
 4244|    941|    if (sizeof(*extended_rejected_nssai) < size) return -1;
  ------------------
  |  Branch (4244:9): [True: 1, False: 940]
  ------------------
 4245|    940|    memcpy(extended_rejected_nssai, pkbuf->data - size, size);
 4246|       |
 4247|    940|    ogs_trace("  EXTENDED_REJECTED_NSSAI - ");
  ------------------
  |  |   40|    940|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    940|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    940|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    940|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    940|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    940|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4248|    940|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    940|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    940|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4249|       |
 4250|    940|    return size;
 4251|    941|}
ogs_nas_5gs_decode_ue_request_type:
 4271|    542|{
 4272|    542|    int size = 0;
 4273|    542|    ogs_nas_ue_request_type_t *source = NULL;
 4274|       |
 4275|    542|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4275:9): [True: 4, False: 538]
  ------------------
 4276|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4277|      4|       return -1;
 4278|      4|    }
 4279|       |
 4280|    538|    source = (ogs_nas_ue_request_type_t *)pkbuf->data;
 4281|       |
 4282|    538|    ue_request_type->length = source->length;
 4283|    538|    size = ue_request_type->length + sizeof(ue_request_type->length);
 4284|       |
 4285|    538|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4285:9): [True: 5, False: 533]
  ------------------
 4286|      5|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4287|      5|       return -1;
 4288|      5|    }
 4289|       |
 4290|    533|    if (sizeof(*ue_request_type) < size) return -1;
  ------------------
  |  Branch (4290:9): [True: 1, False: 532]
  ------------------
 4291|    532|    memcpy(ue_request_type, pkbuf->data - size, size);
 4292|       |
 4293|    532|    ogs_trace("  UE_REQUEST_TYPE - ");
  ------------------
  |  |   40|    532|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    532|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    532|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    532|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    532|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    532|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4294|    532|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    532|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    532|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4295|       |
 4296|    532|    return size;
 4297|    533|}
ogs_nas_5gs_decode_paging_restriction:
 4317|    772|{
 4318|    772|    int size = 0;
 4319|    772|    ogs_nas_paging_restriction_t *source = NULL;
 4320|       |
 4321|    772|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4321:9): [True: 2, False: 770]
  ------------------
 4322|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4323|      2|       return -1;
 4324|      2|    }
 4325|       |
 4326|    770|    source = (ogs_nas_paging_restriction_t *)pkbuf->data;
 4327|       |
 4328|    770|    paging_restriction->length = source->length;
 4329|    770|    size = paging_restriction->length + sizeof(paging_restriction->length);
 4330|       |
 4331|    770|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4331:9): [True: 2, False: 768]
  ------------------
 4332|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4333|      2|       return -1;
 4334|      2|    }
 4335|       |
 4336|    768|    if (sizeof(*paging_restriction) < size) return -1;
  ------------------
  |  Branch (4336:9): [True: 1, False: 767]
  ------------------
 4337|    767|    memcpy(paging_restriction, pkbuf->data - size, size);
 4338|       |
 4339|    767|    ogs_trace("  PAGING_RESTRICTION - ");
  ------------------
  |  |   40|    767|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    767|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    767|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    767|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    767|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    767|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4340|    767|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    767|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    767|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4341|       |
 4342|    767|    return size;
 4343|    768|}
ogs_nas_5gs_decode_nid:
 4363|    577|{
 4364|    577|    int size = 0;
 4365|    577|    ogs_nas_nid_t *source = NULL;
 4366|       |
 4367|    577|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4367:9): [True: 3, False: 574]
  ------------------
 4368|      3|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4369|      3|       return -1;
 4370|      3|    }
 4371|       |
 4372|    574|    source = (ogs_nas_nid_t *)pkbuf->data;
 4373|       |
 4374|    574|    nid->length = source->length;
 4375|    574|    size = nid->length + sizeof(nid->length);
 4376|       |
 4377|    574|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4377:9): [True: 4, False: 570]
  ------------------
 4378|      4|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4379|      4|       return -1;
 4380|      4|    }
 4381|       |
 4382|    570|    if (sizeof(*nid) < size) return -1;
  ------------------
  |  Branch (4382:9): [True: 1, False: 569]
  ------------------
 4383|    569|    memcpy(nid, pkbuf->data - size, size);
 4384|       |
 4385|    569|    ogs_trace("  NID - ");
  ------------------
  |  |   40|    569|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    569|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    569|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    569|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    569|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    569|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4386|    569|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    569|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    569|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4387|       |
 4388|    569|    return size;
 4389|    570|}
ogs_nas_5gs_decode_5gs_tracking_area_identity:
 4409|    319|{
 4410|    319|    int size = sizeof(ogs_nas_5gs_tracking_area_identity_t);
 4411|       |
 4412|    319|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4412:9): [True: 5, False: 314]
  ------------------
 4413|      5|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4414|      5|       return -1;
 4415|      5|    }
 4416|       |
 4417|    314|    memcpy(tracking_area_identity, pkbuf->data - size, size);
 4418|       |
 4419|    314|    tracking_area_identity->tac = ogs_be24toh(tracking_area_identity->tac);
 4420|       |
 4421|    314|    ogs_trace("  5GS_TRACKING_AREA_IDENTITY - ");
  ------------------
  |  |   40|    314|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    314|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    314|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    314|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    314|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    314|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4422|    314|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    314|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    314|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4423|       |
 4424|    314|    return size;
 4425|    319|}
ogs_nas_5gs_decode_peips_assistance_information:
 4447|    703|{
 4448|    703|    int size = 0;
 4449|    703|    ogs_nas_peips_assistance_information_t *source = NULL;
 4450|       |
 4451|    703|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4451:9): [True: 3, False: 700]
  ------------------
 4452|      3|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4453|      3|       return -1;
 4454|      3|    }
 4455|       |
 4456|    700|    source = (ogs_nas_peips_assistance_information_t *)pkbuf->data;
 4457|       |
 4458|    700|    peips_assistance_information->length = source->length;
 4459|    700|    size = peips_assistance_information->length + sizeof(peips_assistance_information->length);
 4460|       |
 4461|    700|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4461:9): [True: 2, False: 698]
  ------------------
 4462|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4463|      2|       return -1;
 4464|      2|    }
 4465|       |
 4466|    698|    if (sizeof(*peips_assistance_information) < size) return -1;
  ------------------
  |  Branch (4466:9): [True: 0, False: 698]
  ------------------
 4467|    698|    memcpy(peips_assistance_information, pkbuf->data - size, size);
 4468|       |
 4469|    698|    ogs_trace("  PEIPS_ASSISTANCE_INFORMATION - ");
  ------------------
  |  |   40|    698|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    698|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    698|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    698|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    698|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    698|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4470|    698|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    698|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    698|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4471|       |
 4472|    698|    return size;
 4473|    698|}
ogs_nas_5gs_decode_5gs_additional_request_result:
 4493|    467|{
 4494|    467|    int size = 0;
 4495|    467|    ogs_nas_5gs_additional_request_result_t *source = NULL;
 4496|       |
 4497|    467|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4497:9): [True: 2, False: 465]
  ------------------
 4498|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4499|      2|       return -1;
 4500|      2|    }
 4501|       |
 4502|    465|    source = (ogs_nas_5gs_additional_request_result_t *)pkbuf->data;
 4503|       |
 4504|    465|    additional_request_result->length = source->length;
 4505|    465|    size = additional_request_result->length + sizeof(additional_request_result->length);
 4506|       |
 4507|    465|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4507:9): [True: 1, False: 464]
  ------------------
 4508|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4509|      1|       return -1;
 4510|      1|    }
 4511|       |
 4512|    464|    if (sizeof(*additional_request_result) < size) return -1;
  ------------------
  |  Branch (4512:9): [True: 2, False: 462]
  ------------------
 4513|    462|    memcpy(additional_request_result, pkbuf->data - size, size);
 4514|       |
 4515|    462|    ogs_trace("  5GS_ADDITIONAL_REQUEST_RESULT - ");
  ------------------
  |  |   40|    462|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    462|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    462|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    462|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    462|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    462|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4516|    462|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    462|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    462|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4517|       |
 4518|    462|    return size;
 4519|    464|}
ogs_nas_5gs_decode_nssrg_information:
 4539|    516|{
 4540|    516|    int size = 0;
 4541|    516|    ogs_nas_nssrg_information_t *source = NULL;
 4542|       |
 4543|    516|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (4543:9): [True: 4, False: 512]
  ------------------
 4544|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4545|      4|       return -1;
 4546|      4|    }
 4547|       |
 4548|    512|    source = (ogs_nas_nssrg_information_t *)pkbuf->data;
 4549|       |
 4550|    512|    nssrg_information->length = be16toh(source->length);
 4551|    512|    size = nssrg_information->length + sizeof(nssrg_information->length);
 4552|       |
 4553|    512|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4553:9): [True: 9, False: 503]
  ------------------
 4554|      9|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      9|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      9|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      9|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      9|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      9|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      9|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4555|      9|       return -1;
 4556|      9|    }
 4557|       |
 4558|    503|    nssrg_information->buffer = pkbuf->data - size + sizeof(nssrg_information->length);
 4559|       |
 4560|    503|    ogs_trace("  NSSRG_INFORMATION - ");
  ------------------
  |  |   40|    503|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    503|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    503|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    503|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    503|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    503|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4561|    503|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)nssrg_information->buffer, nssrg_information->length);
  ------------------
  |  |   53|    503|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    503|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4562|       |
 4563|    503|    return size;
 4564|    512|}
ogs_nas_5gs_decode_list_of_plmns_to_be_used_in_disaster_condition:
 4592|    448|{
 4593|    448|    int size = 0;
 4594|    448|    ogs_nas_list_of_plmns_to_be_used_in_disaster_condition_t *source = NULL;
 4595|       |
 4596|    448|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4596:9): [True: 1, False: 447]
  ------------------
 4597|      1|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4598|      1|       return -1;
 4599|      1|    }
 4600|       |
 4601|    447|    source = (ogs_nas_list_of_plmns_to_be_used_in_disaster_condition_t *)pkbuf->data;
 4602|       |
 4603|    447|    list_of_plmns_to_be_used_in_disaster_condition->length = source->length;
 4604|    447|    size = list_of_plmns_to_be_used_in_disaster_condition->length + sizeof(list_of_plmns_to_be_used_in_disaster_condition->length);
 4605|       |
 4606|    447|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4606:9): [True: 1, False: 446]
  ------------------
 4607|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4608|      1|       return -1;
 4609|      1|    }
 4610|       |
 4611|    446|    if (sizeof(*list_of_plmns_to_be_used_in_disaster_condition) < size) return -1;
  ------------------
  |  Branch (4611:9): [True: 1, False: 445]
  ------------------
 4612|    445|    memcpy(list_of_plmns_to_be_used_in_disaster_condition, pkbuf->data - size, size);
 4613|       |
 4614|    445|    ogs_trace("  LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION - ");
  ------------------
  |  |   40|    445|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    445|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    445|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    445|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    445|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    445|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4615|    445|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    445|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    445|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4616|       |
 4617|    445|    return size;
 4618|    446|}
ogs_nas_5gs_decode_registration_wait_range:
 4638|  1.54k|{
 4639|  1.54k|    int size = 0;
 4640|  1.54k|    ogs_nas_registration_wait_range_t *source = NULL;
 4641|       |
 4642|  1.54k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4642:9): [True: 7, False: 1.54k]
  ------------------
 4643|      7|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4644|      7|       return -1;
 4645|      7|    }
 4646|       |
 4647|  1.54k|    source = (ogs_nas_registration_wait_range_t *)pkbuf->data;
 4648|       |
 4649|  1.54k|    registration_wait_range->length = source->length;
 4650|  1.54k|    size = registration_wait_range->length + sizeof(registration_wait_range->length);
 4651|       |
 4652|  1.54k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4652:9): [True: 6, False: 1.53k]
  ------------------
 4653|      6|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4654|      6|       return -1;
 4655|      6|    }
 4656|       |
 4657|  1.53k|    if (sizeof(*registration_wait_range) < size) return -1;
  ------------------
  |  Branch (4657:9): [True: 3, False: 1.53k]
  ------------------
 4658|  1.53k|    memcpy(registration_wait_range, pkbuf->data - size, size);
 4659|       |
 4660|  1.53k|    ogs_trace("  REGISTRATION_WAIT_RANGE - ");
  ------------------
  |  |   40|  1.53k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.53k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.53k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.53k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.53k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.53k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4661|  1.53k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.53k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.53k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4662|       |
 4663|  1.53k|    return size;
 4664|  1.53k|}
ogs_nas_5gs_decode_plmn_identity:
 4684|    232|{
 4685|    232|    int size = 0;
 4686|    232|    ogs_nas_plmn_identity_t *source = NULL;
 4687|       |
 4688|    232|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4688:9): [True: 1, False: 231]
  ------------------
 4689|      1|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4690|      1|       return -1;
 4691|      1|    }
 4692|       |
 4693|    231|    source = (ogs_nas_plmn_identity_t *)pkbuf->data;
 4694|       |
 4695|    231|    plmn_identity->length = source->length;
 4696|    231|    size = plmn_identity->length + sizeof(plmn_identity->length);
 4697|       |
 4698|    231|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4698:9): [True: 1, False: 230]
  ------------------
 4699|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4700|      1|       return -1;
 4701|      1|    }
 4702|       |
 4703|    230|    if (sizeof(*plmn_identity) < size) return -1;
  ------------------
  |  Branch (4703:9): [True: 1, False: 229]
  ------------------
 4704|    229|    memcpy(plmn_identity, pkbuf->data - size, size);
 4705|       |
 4706|    229|    ogs_trace("  PLMN_IDENTITY - ");
  ------------------
  |  |   40|    229|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    229|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    229|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    229|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    229|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    229|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4707|    229|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    229|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    229|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4708|       |
 4709|    229|    return size;
 4710|    230|}
ogs_nas_5gs_decode_extended_cag_information_list:
 4730|  1.07k|{
 4731|  1.07k|    int size = 0;
 4732|  1.07k|    ogs_nas_extended_cag_information_list_t *source = NULL;
 4733|       |
 4734|  1.07k|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (4734:9): [True: 7, False: 1.06k]
  ------------------
 4735|      7|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4736|      7|       return -1;
 4737|      7|    }
 4738|       |
 4739|  1.06k|    source = (ogs_nas_extended_cag_information_list_t *)pkbuf->data;
 4740|       |
 4741|  1.06k|    extended_cag_information_list->length = be16toh(source->length);
 4742|  1.06k|    size = extended_cag_information_list->length + sizeof(extended_cag_information_list->length);
 4743|       |
 4744|  1.06k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4744:9): [True: 28, False: 1.03k]
  ------------------
 4745|     28|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     28|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     28|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     28|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     28|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     28|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     28|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4746|     28|       return -1;
 4747|     28|    }
 4748|       |
 4749|  1.03k|    extended_cag_information_list->buffer = pkbuf->data - size + sizeof(extended_cag_information_list->length);
 4750|       |
 4751|  1.03k|    ogs_trace("  EXTENDED_CAG_INFORMATION_LIST - ");
  ------------------
  |  |   40|  1.03k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.03k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.03k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.03k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.03k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.03k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4752|  1.03k|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)extended_cag_information_list->buffer, extended_cag_information_list->length);
  ------------------
  |  |   53|  1.03k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.03k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4753|       |
 4754|  1.03k|    return size;
 4755|  1.06k|}
ogs_nas_5gs_decode_nsag_information:
 4783|    491|{
 4784|    491|    int size = 0;
 4785|    491|    ogs_nas_nsag_information_t *source = NULL;
 4786|       |
 4787|    491|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (4787:9): [True: 3, False: 488]
  ------------------
 4788|      3|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4789|      3|       return -1;
 4790|      3|    }
 4791|       |
 4792|    488|    source = (ogs_nas_nsag_information_t *)pkbuf->data;
 4793|       |
 4794|    488|    nsag_information->length = be16toh(source->length);
 4795|    488|    size = nsag_information->length + sizeof(nsag_information->length);
 4796|       |
 4797|    488|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4797:9): [True: 22, False: 466]
  ------------------
 4798|     22|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     22|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     22|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     22|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     22|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     22|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     22|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4799|     22|       return -1;
 4800|     22|    }
 4801|       |
 4802|    466|    nsag_information->buffer = pkbuf->data - size + sizeof(nsag_information->length);
 4803|       |
 4804|    466|    ogs_trace("  NSAG_INFORMATION - ");
  ------------------
  |  |   40|    466|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    466|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    466|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    466|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    466|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    466|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4805|    466|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)nsag_information->buffer, nsag_information->length);
  ------------------
  |  |   53|    466|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    466|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4806|       |
 4807|    466|    return size;
 4808|    488|}
ogs_nas_5gs_decode_5gs_tracking_area_identity_list:
 4836|  2.77k|{
 4837|  2.77k|    int size = 0;
 4838|  2.77k|    ogs_nas_5gs_tracking_area_identity_list_t *source = NULL;
 4839|       |
 4840|  2.77k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4840:9): [True: 12, False: 2.76k]
  ------------------
 4841|     12|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|     12|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     12|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     12|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     12|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     12|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     12|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4842|     12|       return -1;
 4843|     12|    }
 4844|       |
 4845|  2.76k|    source = (ogs_nas_5gs_tracking_area_identity_list_t *)pkbuf->data;
 4846|       |
 4847|  2.76k|    tracking_area_identity_list->length = source->length;
 4848|  2.76k|    size = tracking_area_identity_list->length + sizeof(tracking_area_identity_list->length);
 4849|       |
 4850|  2.76k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4850:9): [True: 5, False: 2.75k]
  ------------------
 4851|      5|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4852|      5|       return -1;
 4853|      5|    }
 4854|       |
 4855|  2.75k|    if (sizeof(*tracking_area_identity_list) < size) return -1;
  ------------------
  |  Branch (4855:9): [True: 1, False: 2.75k]
  ------------------
 4856|  2.75k|    memcpy(tracking_area_identity_list, pkbuf->data - size, size);
 4857|       |
 4858|  2.75k|    ogs_trace("  5GS_TRACKING_AREA_IDENTITY_LIST - ");
  ------------------
  |  |   40|  2.75k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.75k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.75k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.75k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.75k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.75k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4859|  2.75k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  2.75k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  2.75k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4860|       |
 4861|  2.75k|    return size;
 4862|  2.75k|}
ogs_nas_5gs_decode_priority_indicator:
 4882|  1.16k|{
 4883|  1.16k|    int size = sizeof(ogs_nas_priority_indicator_t);
 4884|       |
 4885|  1.16k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4885:9): [True: 0, False: 1.16k]
  ------------------
 4886|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4887|      0|       return -1;
 4888|      0|    }
 4889|       |
 4890|  1.16k|    memcpy(priority_indicator, pkbuf->data - size, size);
 4891|       |
 4892|  1.16k|    ogs_trace("  PRIORITY_INDICATOR - ");
  ------------------
  |  |   40|  1.16k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.16k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.16k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.16k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.16k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.16k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4893|  1.16k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.16k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.16k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4894|       |
 4895|  1.16k|    return size;
 4896|  1.16k|}
ogs_nas_5gs_decode_snpn_list:
 4914|    221|{
 4915|    221|    int size = 0;
 4916|    221|    ogs_nas_snpn_list_t *source = NULL;
 4917|       |
 4918|    221|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4918:9): [True: 3, False: 218]
  ------------------
 4919|      3|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4920|      3|       return -1;
 4921|      3|    }
 4922|       |
 4923|    218|    source = (ogs_nas_snpn_list_t *)pkbuf->data;
 4924|       |
 4925|    218|    snpn_list->length = source->length;
 4926|    218|    size = snpn_list->length + sizeof(snpn_list->length);
 4927|       |
 4928|    218|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4928:9): [True: 1, False: 217]
  ------------------
 4929|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4930|      1|       return -1;
 4931|      1|    }
 4932|       |
 4933|    217|    if (sizeof(*snpn_list) < size) return -1;
  ------------------
  |  Branch (4933:9): [True: 1, False: 216]
  ------------------
 4934|    216|    memcpy(snpn_list, pkbuf->data - size, size);
 4935|       |
 4936|    216|    ogs_trace("  SNPN_LIST - ");
  ------------------
  |  |   40|    216|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    216|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    216|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    216|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    216|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    216|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4937|    216|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    216|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    216|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4938|       |
 4939|    216|    return size;
 4940|    217|}
ogs_nas_5gs_decode_n3iwf_identifier:
 4960|    215|{
 4961|    215|    int size = 0;
 4962|    215|    ogs_nas_n3iwf_identifier_t *source = NULL;
 4963|       |
 4964|    215|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4964:9): [True: 4, False: 211]
  ------------------
 4965|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4966|      4|       return -1;
 4967|      4|    }
 4968|       |
 4969|    211|    source = (ogs_nas_n3iwf_identifier_t *)pkbuf->data;
 4970|       |
 4971|    211|    n3iwf_identifier->length = source->length;
 4972|    211|    size = n3iwf_identifier->length + sizeof(n3iwf_identifier->length);
 4973|       |
 4974|    211|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4974:9): [True: 2, False: 209]
  ------------------
 4975|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4976|      2|       return -1;
 4977|      2|    }
 4978|       |
 4979|    209|    if (sizeof(*n3iwf_identifier) < size) return -1;
  ------------------
  |  Branch (4979:9): [True: 1, False: 208]
  ------------------
 4980|    208|    memcpy(n3iwf_identifier, pkbuf->data - size, size);
 4981|       |
 4982|    208|    ogs_trace("  N3IWF_IDENTIFIER - ");
  ------------------
  |  |   40|    208|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    208|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    208|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    208|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    208|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    208|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4983|    208|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    208|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    208|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4984|       |
 4985|    208|    return size;
 4986|    209|}
ogs_nas_5gs_decode_tnan_information:
 5006|    339|{
 5007|    339|    int size = 0;
 5008|    339|    ogs_nas_tnan_information_t *source = NULL;
 5009|       |
 5010|    339|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5010:9): [True: 2, False: 337]
  ------------------
 5011|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5012|      2|       return -1;
 5013|      2|    }
 5014|       |
 5015|    337|    source = (ogs_nas_tnan_information_t *)pkbuf->data;
 5016|       |
 5017|    337|    tnan_information->length = source->length;
 5018|    337|    size = tnan_information->length + sizeof(tnan_information->length);
 5019|       |
 5020|    337|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5020:9): [True: 2, False: 335]
  ------------------
 5021|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5022|      2|       return -1;
 5023|      2|    }
 5024|       |
 5025|    335|    if (sizeof(*tnan_information) < size) return -1;
  ------------------
  |  Branch (5025:9): [True: 2, False: 333]
  ------------------
 5026|    333|    memcpy(tnan_information, pkbuf->data - size, size);
 5027|       |
 5028|    333|    ogs_trace("  TNAN_INFORMATION - ");
  ------------------
  |  |   40|    333|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    333|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    333|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    333|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    333|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    333|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5029|    333|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    333|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    333|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5030|       |
 5031|    333|    return size;
 5032|    335|}
ogs_nas_5gs_decode_ran_timing_synchronization:
 5052|    478|{
 5053|    478|    int size = 0;
 5054|    478|    ogs_nas_ran_timing_synchronization_t *source = NULL;
 5055|       |
 5056|    478|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5056:9): [True: 2, False: 476]
  ------------------
 5057|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5058|      2|       return -1;
 5059|      2|    }
 5060|       |
 5061|    476|    source = (ogs_nas_ran_timing_synchronization_t *)pkbuf->data;
 5062|       |
 5063|    476|    ran_timing_synchronization->length = source->length;
 5064|    476|    size = ran_timing_synchronization->length + sizeof(ran_timing_synchronization->length);
 5065|       |
 5066|    476|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5066:9): [True: 1, False: 475]
  ------------------
 5067|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5068|      1|       return -1;
 5069|      1|    }
 5070|       |
 5071|    475|    if (sizeof(*ran_timing_synchronization) < size) return -1;
  ------------------
  |  Branch (5071:9): [True: 2, False: 473]
  ------------------
 5072|    473|    memcpy(ran_timing_synchronization, pkbuf->data - size, size);
 5073|       |
 5074|    473|    ogs_trace("  RAN_TIMING_SYNCHRONIZATION - ");
  ------------------
  |  |   40|    473|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    473|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    473|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    473|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    473|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    473|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5075|    473|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    473|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    473|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5076|       |
 5077|    473|    return size;
 5078|    475|}
ogs_nas_5gs_decode_extended_ladn_information:
 5098|    248|{
 5099|    248|    int size = 0;
 5100|    248|    ogs_nas_extended_ladn_information_t *source = NULL;
 5101|       |
 5102|    248|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (5102:9): [True: 5, False: 243]
  ------------------
 5103|      5|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5104|      5|       return -1;
 5105|      5|    }
 5106|       |
 5107|    243|    source = (ogs_nas_extended_ladn_information_t *)pkbuf->data;
 5108|       |
 5109|    243|    extended_ladn_information->length = be16toh(source->length);
 5110|    243|    size = extended_ladn_information->length + sizeof(extended_ladn_information->length);
 5111|       |
 5112|    243|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5112:9): [True: 15, False: 228]
  ------------------
 5113|     15|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     15|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     15|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     15|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     15|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     15|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     15|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5114|     15|       return -1;
 5115|     15|    }
 5116|       |
 5117|    228|    extended_ladn_information->buffer = pkbuf->data - size + sizeof(extended_ladn_information->length);
 5118|       |
 5119|    228|    ogs_trace("  EXTENDED_LADN_INFORMATION - ");
  ------------------
  |  |   40|    228|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    228|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    228|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    228|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    228|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    228|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5120|    228|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)extended_ladn_information->buffer, extended_ladn_information->length);
  ------------------
  |  |   53|    228|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    228|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5121|       |
 5122|    228|    return size;
 5123|    243|}
ogs_nas_5gs_decode_alternative_nssai:
 5151|    466|{
 5152|    466|    int size = 0;
 5153|    466|    ogs_nas_alternative_nssai_t *source = NULL;
 5154|       |
 5155|    466|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5155:9): [True: 3, False: 463]
  ------------------
 5156|      3|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5157|      3|       return -1;
 5158|      3|    }
 5159|       |
 5160|    463|    source = (ogs_nas_alternative_nssai_t *)pkbuf->data;
 5161|       |
 5162|    463|    alternative_nssai->length = source->length;
 5163|    463|    size = alternative_nssai->length + sizeof(alternative_nssai->length);
 5164|       |
 5165|    463|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5165:9): [True: 2, False: 461]
  ------------------
 5166|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5167|      2|       return -1;
 5168|      2|    }
 5169|       |
 5170|    461|    if (sizeof(*alternative_nssai) < size) return -1;
  ------------------
  |  Branch (5170:9): [True: 2, False: 459]
  ------------------
 5171|    459|    memcpy(alternative_nssai, pkbuf->data - size, size);
 5172|       |
 5173|    459|    ogs_trace("  ALTERNATIVE_NSSAI - ");
  ------------------
  |  |   40|    459|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    459|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    459|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    459|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    459|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    459|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5174|    459|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    459|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    459|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5175|       |
 5176|    459|    return size;
 5177|    461|}
ogs_nas_5gs_decode_type_6_ie_container:
 5197|    251|{
 5198|    251|    int size = 0;
 5199|    251|    ogs_nas_type_6_ie_container_t *source = NULL;
 5200|       |
 5201|    251|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (5201:9): [True: 5, False: 246]
  ------------------
 5202|      5|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5203|      5|       return -1;
 5204|      5|    }
 5205|       |
 5206|    246|    source = (ogs_nas_type_6_ie_container_t *)pkbuf->data;
 5207|       |
 5208|    246|    type_6_ie_container->length = be16toh(source->length);
 5209|    246|    size = type_6_ie_container->length + sizeof(type_6_ie_container->length);
 5210|       |
 5211|    246|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5211:9): [True: 22, False: 224]
  ------------------
 5212|     22|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     22|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     22|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     22|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     22|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     22|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     22|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5213|     22|       return -1;
 5214|     22|    }
 5215|       |
 5216|    224|    type_6_ie_container->buffer = pkbuf->data - size + sizeof(type_6_ie_container->length);
 5217|       |
 5218|    224|    ogs_trace("  TYPE_6_IE_CONTAINER - ");
  ------------------
  |  |   40|    224|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    224|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    224|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    224|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    224|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    224|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5219|    224|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)type_6_ie_container->buffer, type_6_ie_container->length);
  ------------------
  |  |   53|    224|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    224|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5220|       |
 5221|    224|    return size;
 5222|    246|}
ogs_nas_5gs_decode_non_3gpp_access_path_switching_indication:
 5250|    202|{
 5251|    202|    int size = 0;
 5252|    202|    ogs_nas_non_3gpp_access_path_switching_indication_t *source = NULL;
 5253|       |
 5254|    202|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5254:9): [True: 1, False: 201]
  ------------------
 5255|      1|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5256|      1|       return -1;
 5257|      1|    }
 5258|       |
 5259|    201|    source = (ogs_nas_non_3gpp_access_path_switching_indication_t *)pkbuf->data;
 5260|       |
 5261|    201|    non_3gpp_access_path_switching_indication->length = source->length;
 5262|    201|    size = non_3gpp_access_path_switching_indication->length + sizeof(non_3gpp_access_path_switching_indication->length);
 5263|       |
 5264|    201|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5264:9): [True: 1, False: 200]
  ------------------
 5265|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5266|      1|       return -1;
 5267|      1|    }
 5268|       |
 5269|    200|    if (sizeof(*non_3gpp_access_path_switching_indication) < size) return -1;
  ------------------
  |  Branch (5269:9): [True: 2, False: 198]
  ------------------
 5270|    198|    memcpy(non_3gpp_access_path_switching_indication, pkbuf->data - size, size);
 5271|       |
 5272|    198|    ogs_trace("  NON_3GPP_ACCESS_PATH_SWITCHING_INDICATION - ");
  ------------------
  |  |   40|    198|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    198|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    198|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    198|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    198|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    198|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5273|    198|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    198|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    198|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5274|       |
 5275|    198|    return size;
 5276|    200|}
ogs_nas_5gs_decode_5gs_update_type:
 5296|    202|{
 5297|    202|    int size = 0;
 5298|    202|    ogs_nas_5gs_update_type_t *source = NULL;
 5299|       |
 5300|    202|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5300:9): [True: 1, False: 201]
  ------------------
 5301|      1|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5302|      1|       return -1;
 5303|      1|    }
 5304|       |
 5305|    201|    source = (ogs_nas_5gs_update_type_t *)pkbuf->data;
 5306|       |
 5307|    201|    update_type->length = source->length;
 5308|    201|    size = update_type->length + sizeof(update_type->length);
 5309|       |
 5310|    201|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5310:9): [True: 1, False: 200]
  ------------------
 5311|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5312|      1|       return -1;
 5313|      1|    }
 5314|       |
 5315|    200|    if (sizeof(*update_type) < size) return -1;
  ------------------
  |  Branch (5315:9): [True: 1, False: 199]
  ------------------
 5316|    199|    memcpy(update_type, pkbuf->data - size, size);
 5317|       |
 5318|    199|    ogs_trace("  5GS_UPDATE_TYPE - ");
  ------------------
  |  |   40|    199|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    199|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    199|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    199|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    199|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    199|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5319|    199|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    199|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    199|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5320|       |
 5321|    199|    return size;
 5322|    200|}
ogs_nas_5gs_decode_5gsm_capability:
 5342|    433|{
 5343|    433|    int size = 0;
 5344|    433|    ogs_nas_5gsm_capability_t *source = NULL;
 5345|       |
 5346|    433|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5346:9): [True: 4, False: 429]
  ------------------
 5347|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5348|      4|       return -1;
 5349|      4|    }
 5350|       |
 5351|    429|    source = (ogs_nas_5gsm_capability_t *)pkbuf->data;
 5352|       |
 5353|    429|    gsm_capability->length = source->length;
 5354|    429|    size = gsm_capability->length + sizeof(gsm_capability->length);
 5355|       |
 5356|    429|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5356:9): [True: 1, False: 428]
  ------------------
 5357|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5358|      1|       return -1;
 5359|      1|    }
 5360|       |
 5361|    428|    if (sizeof(*gsm_capability) < size) return -1;
  ------------------
  |  Branch (5361:9): [True: 1, False: 427]
  ------------------
 5362|    427|    memcpy(gsm_capability, pkbuf->data - size, size);
 5363|       |
 5364|    427|    ogs_trace("  5GSM_CAPABILITY - ");
  ------------------
  |  |   40|    427|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    427|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    427|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    427|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    427|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    427|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5365|    427|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    427|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    427|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5366|       |
 5367|    427|    return size;
 5368|    428|}
ogs_nas_5gs_decode_pdu_address:
 5388|    460|{
 5389|    460|    int size = 0;
 5390|    460|    ogs_nas_pdu_address_t *source = NULL;
 5391|       |
 5392|    460|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5392:9): [True: 2, False: 458]
  ------------------
 5393|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5394|      2|       return -1;
 5395|      2|    }
 5396|       |
 5397|    458|    source = (ogs_nas_pdu_address_t *)pkbuf->data;
 5398|       |
 5399|    458|    pdu_address->length = source->length;
 5400|    458|    size = pdu_address->length + sizeof(pdu_address->length);
 5401|       |
 5402|    458|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5402:9): [True: 4, False: 454]
  ------------------
 5403|      4|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5404|      4|       return -1;
 5405|      4|    }
 5406|       |
 5407|    454|    if (sizeof(*pdu_address) < size) return -1;
  ------------------
  |  Branch (5407:9): [True: 2, False: 452]
  ------------------
 5408|    452|    memcpy(pdu_address, pkbuf->data - size, size);
 5409|       |
 5410|    452|    ogs_trace("  PDU_ADDRESS - ");
  ------------------
  |  |   40|    452|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    452|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    452|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    452|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    452|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    452|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5411|    452|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    452|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    452|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5412|       |
 5413|    452|    return size;
 5414|    454|}
ogs_nas_5gs_decode_pdu_session_type:
 5434|    744|{
 5435|    744|    int size = sizeof(ogs_nas_pdu_session_type_t);
 5436|       |
 5437|    744|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5437:9): [True: 1, False: 743]
  ------------------
 5438|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5439|      1|       return -1;
 5440|      1|    }
 5441|       |
 5442|    743|    memcpy(pdu_session_type, pkbuf->data - size, size);
 5443|       |
 5444|    743|    ogs_trace("  PDU_SESSION_TYPE - ");
  ------------------
  |  |   40|    743|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    743|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    743|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    743|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    743|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    743|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5445|    743|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    743|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    743|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5446|       |
 5447|    743|    return size;
 5448|    744|}
ogs_nas_5gs_decode_qos_flow_descriptions:
 5466|    780|{
 5467|    780|    int size = 0;
 5468|    780|    ogs_nas_qos_flow_descriptions_t *source = NULL;
 5469|       |
 5470|    780|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (5470:9): [True: 5, False: 775]
  ------------------
 5471|      5|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5472|      5|       return -1;
 5473|      5|    }
 5474|       |
 5475|    775|    source = (ogs_nas_qos_flow_descriptions_t *)pkbuf->data;
 5476|       |
 5477|    775|    qos_flow_descriptions->length = be16toh(source->length);
 5478|    775|    size = qos_flow_descriptions->length + sizeof(qos_flow_descriptions->length);
 5479|       |
 5480|    775|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5480:9): [True: 22, False: 753]
  ------------------
 5481|     22|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     22|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     22|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     22|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     22|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     22|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     22|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5482|     22|       return -1;
 5483|     22|    }
 5484|       |
 5485|    753|    qos_flow_descriptions->buffer = pkbuf->data - size + sizeof(qos_flow_descriptions->length);
 5486|       |
 5487|    753|    ogs_trace("  QOS_FLOW_DESCRIPTIONS - ");
  ------------------
  |  |   40|    753|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    753|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    753|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    753|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    753|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    753|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5488|    753|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)qos_flow_descriptions->buffer, qos_flow_descriptions->length);
  ------------------
  |  |   53|    753|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    753|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5489|       |
 5490|    753|    return size;
 5491|    775|}
ogs_nas_5gs_decode_qos_rules:
 5519|    793|{
 5520|    793|    int size = 0;
 5521|    793|    ogs_nas_qos_rules_t *source = NULL;
 5522|       |
 5523|    793|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (5523:9): [True: 7, False: 786]
  ------------------
 5524|      7|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5525|      7|       return -1;
 5526|      7|    }
 5527|       |
 5528|    786|    source = (ogs_nas_qos_rules_t *)pkbuf->data;
 5529|       |
 5530|    786|    qos_rules->length = be16toh(source->length);
 5531|    786|    size = qos_rules->length + sizeof(qos_rules->length);
 5532|       |
 5533|    786|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5533:9): [True: 25, False: 761]
  ------------------
 5534|     25|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     25|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     25|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     25|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     25|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     25|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     25|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5535|     25|       return -1;
 5536|     25|    }
 5537|       |
 5538|    761|    qos_rules->buffer = pkbuf->data - size + sizeof(qos_rules->length);
 5539|       |
 5540|    761|    ogs_trace("  QOS_RULES - ");
  ------------------
  |  |   40|    761|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    761|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    761|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    761|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    761|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    761|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5541|    761|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)qos_rules->buffer, qos_rules->length);
  ------------------
  |  |   53|    761|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    761|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5542|       |
 5543|    761|    return size;
 5544|    786|}
ogs_nas_5gs_decode_session_ambr:
 5572|    562|{
 5573|    562|    int size = 0;
 5574|    562|    ogs_nas_session_ambr_t *source = NULL;
 5575|       |
 5576|    562|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5576:9): [True: 6, False: 556]
  ------------------
 5577|      6|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5578|      6|       return -1;
 5579|      6|    }
 5580|       |
 5581|    556|    source = (ogs_nas_session_ambr_t *)pkbuf->data;
 5582|       |
 5583|    556|    session_ambr->length = source->length;
 5584|    556|    size = session_ambr->length + sizeof(session_ambr->length);
 5585|       |
 5586|    556|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5586:9): [True: 2, False: 554]
  ------------------
 5587|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5588|      2|       return -1;
 5589|      2|    }
 5590|       |
 5591|    554|    if (sizeof(*session_ambr) < size) return -1;
  ------------------
  |  Branch (5591:9): [True: 5, False: 549]
  ------------------
 5592|    549|    memcpy(session_ambr, pkbuf->data - size, size);
 5593|       |
 5594|    549|    session_ambr->downlink.value = be16toh(source->downlink.value);
 5595|    549|    session_ambr->uplink.value = be16toh(source->uplink.value);
 5596|       |
 5597|    549|    ogs_trace("  SESSION_AMBR - ");
  ------------------
  |  |   40|    549|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    549|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    549|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    549|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    549|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    549|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5598|    549|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    549|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    549|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5599|       |
 5600|    549|    return size;
 5601|    554|}
ogs_nas_5gs_decode_sm_pdu_dn_request_container:
 5624|    209|{
 5625|    209|    int size = 0;
 5626|    209|    ogs_nas_sm_pdu_dn_request_container_t *source = NULL;
 5627|       |
 5628|    209|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5628:9): [True: 2, False: 207]
  ------------------
 5629|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5630|      2|       return -1;
 5631|      2|    }
 5632|       |
 5633|    207|    source = (ogs_nas_sm_pdu_dn_request_container_t *)pkbuf->data;
 5634|       |
 5635|    207|    sm_pdu_dn_request_container->length = source->length;
 5636|    207|    size = sm_pdu_dn_request_container->length + sizeof(sm_pdu_dn_request_container->length);
 5637|       |
 5638|    207|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5638:9): [True: 1, False: 206]
  ------------------
 5639|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5640|      1|       return -1;
 5641|      1|    }
 5642|       |
 5643|    206|    if (sizeof(*sm_pdu_dn_request_container) < size) return -1;
  ------------------
  |  Branch (5643:9): [True: 0, False: 206]
  ------------------
 5644|    206|    memcpy(sm_pdu_dn_request_container, pkbuf->data - size, size);
 5645|       |
 5646|    206|    ogs_trace("  SM_PDU_DN_REQUEST_CONTAINER - ");
  ------------------
  |  |   40|    206|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    206|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    206|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    206|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    206|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    206|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5647|    206|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    206|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    206|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5648|       |
 5649|    206|    return size;
 5650|    206|}
ogs_nas_5gs_decode_ssc_mode:
 5670|    569|{
 5671|    569|    int size = sizeof(ogs_nas_ssc_mode_t);
 5672|       |
 5673|    569|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5673:9): [True: 0, False: 569]
  ------------------
 5674|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5675|      0|       return -1;
 5676|      0|    }
 5677|       |
 5678|    569|    memcpy(ssc_mode, pkbuf->data - size, size);
 5679|       |
 5680|    569|    ogs_trace("  SSC_MODE - ");
  ------------------
  |  |   40|    569|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    569|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    569|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    569|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    569|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    569|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5681|    569|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    569|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    569|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5682|       |
 5683|    569|    return size;
 5684|    569|}
ogs_nas_5gs_decode_re_attempt_indicator:
 5702|    402|{
 5703|    402|    int size = 0;
 5704|    402|    ogs_nas_re_attempt_indicator_t *source = NULL;
 5705|       |
 5706|    402|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5706:9): [True: 2, False: 400]
  ------------------
 5707|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5708|      2|       return -1;
 5709|      2|    }
 5710|       |
 5711|    400|    source = (ogs_nas_re_attempt_indicator_t *)pkbuf->data;
 5712|       |
 5713|    400|    re_attempt_indicator->length = source->length;
 5714|    400|    size = re_attempt_indicator->length + sizeof(re_attempt_indicator->length);
 5715|       |
 5716|    400|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5716:9): [True: 3, False: 397]
  ------------------
 5717|      3|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5718|      3|       return -1;
 5719|      3|    }
 5720|       |
 5721|    397|    if (sizeof(*re_attempt_indicator) < size) return -1;
  ------------------
  |  Branch (5721:9): [True: 1, False: 396]
  ------------------
 5722|    396|    memcpy(re_attempt_indicator, pkbuf->data - size, size);
 5723|       |
 5724|    396|    ogs_trace("  RE_ATTEMPT_INDICATOR - ");
  ------------------
  |  |   40|    396|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    396|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    396|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    396|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    396|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    396|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5725|    396|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    396|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    396|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5726|       |
 5727|    396|    return size;
 5728|    397|}
ogs_nas_5gs_decode_5gsm_network_feature_support:
 5748|    209|{
 5749|    209|    int size = 0;
 5750|    209|    ogs_nas_5gsm_network_feature_support_t *source = NULL;
 5751|       |
 5752|    209|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5752:9): [True: 1, False: 208]
  ------------------
 5753|      1|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5754|      1|       return -1;
 5755|      1|    }
 5756|       |
 5757|    208|    source = (ogs_nas_5gsm_network_feature_support_t *)pkbuf->data;
 5758|       |
 5759|    208|    gsm_network_feature_support->length = source->length;
 5760|    208|    size = gsm_network_feature_support->length + sizeof(gsm_network_feature_support->length);
 5761|       |
 5762|    208|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5762:9): [True: 1, False: 207]
  ------------------
 5763|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5764|      1|       return -1;
 5765|      1|    }
 5766|       |
 5767|    207|    if (sizeof(*gsm_network_feature_support) < size) return -1;
  ------------------
  |  Branch (5767:9): [True: 1, False: 206]
  ------------------
 5768|    206|    memcpy(gsm_network_feature_support, pkbuf->data - size, size);
 5769|       |
 5770|    206|    ogs_trace("  5GSM_NETWORK_FEATURE_SUPPORT - ");
  ------------------
  |  |   40|    206|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    206|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    206|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    206|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    206|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    206|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5771|    206|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    206|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    206|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5772|       |
 5773|    206|    return size;
 5774|    207|}
ogs_nas_5gs_decode_5gsm_cause:
 5794|  1.48k|{
 5795|  1.48k|    int size = sizeof(ogs_nas_5gsm_cause_t);
 5796|       |
 5797|  1.48k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5797:9): [True: 15, False: 1.47k]
  ------------------
 5798|     15|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     15|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     15|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     15|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     15|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     15|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     15|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5799|     15|       return -1;
 5800|     15|    }
 5801|       |
 5802|  1.47k|    memcpy(gsm_cause, pkbuf->data - size, size);
 5803|       |
 5804|  1.47k|    ogs_trace("  5GSM_CAUSE - ");
  ------------------
  |  |   40|  1.47k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.47k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.47k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.47k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.47k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.47k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5805|  1.47k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.47k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.47k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5806|       |
 5807|  1.47k|    return size;
 5808|  1.48k|}
ogs_nas_5gs_decode_serving_plmn_rate_control:
 5828|    418|{
 5829|    418|    int size = 0;
 5830|    418|    ogs_nas_serving_plmn_rate_control_t *source = NULL;
 5831|       |
 5832|    418|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5832:9): [True: 3, False: 415]
  ------------------
 5833|      3|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5834|      3|       return -1;
 5835|      3|    }
 5836|       |
 5837|    415|    source = (ogs_nas_serving_plmn_rate_control_t *)pkbuf->data;
 5838|       |
 5839|    415|    serving_plmn_rate_control->length = source->length;
 5840|    415|    size = serving_plmn_rate_control->length + sizeof(serving_plmn_rate_control->length);
 5841|       |
 5842|    415|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5842:9): [True: 3, False: 412]
  ------------------
 5843|      3|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5844|      3|       return -1;
 5845|      3|    }
 5846|       |
 5847|    412|    if (sizeof(*serving_plmn_rate_control) < size) return -1;
  ------------------
  |  Branch (5847:9): [True: 1, False: 411]
  ------------------
 5848|    411|    memcpy(serving_plmn_rate_control, pkbuf->data - size, size);
 5849|       |
 5850|    411|    ogs_trace("  SERVING_PLMN_RATE_CONTROL - ");
  ------------------
  |  |   40|    411|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    411|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    411|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    411|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    411|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    411|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5851|    411|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    411|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    411|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5852|       |
 5853|    411|    return size;
 5854|    412|}
ogs_nas_5gs_decode_5gsm_congestion_re_attempt_indicator:
 5874|    601|{
 5875|    601|    int size = 0;
 5876|    601|    ogs_nas_5gsm_congestion_re_attempt_indicator_t *source = NULL;
 5877|       |
 5878|    601|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5878:9): [True: 2, False: 599]
  ------------------
 5879|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5880|      2|       return -1;
 5881|      2|    }
 5882|       |
 5883|    599|    source = (ogs_nas_5gsm_congestion_re_attempt_indicator_t *)pkbuf->data;
 5884|       |
 5885|    599|    gsm_congestion_re_attempt_indicator->length = source->length;
 5886|    599|    size = gsm_congestion_re_attempt_indicator->length + sizeof(gsm_congestion_re_attempt_indicator->length);
 5887|       |
 5888|    599|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5888:9): [True: 4, False: 595]
  ------------------
 5889|      4|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5890|      4|       return -1;
 5891|      4|    }
 5892|       |
 5893|    595|    if (sizeof(*gsm_congestion_re_attempt_indicator) < size) return -1;
  ------------------
  |  Branch (5893:9): [True: 1, False: 594]
  ------------------
 5894|    594|    memcpy(gsm_congestion_re_attempt_indicator, pkbuf->data - size, size);
 5895|       |
 5896|    594|    ogs_trace("  5GSM_CONGESTION_RE_ATTEMPT_INDICATOR - ");
  ------------------
  |  |   40|    594|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    594|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    594|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    594|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    594|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    594|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5897|    594|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    594|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    594|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5898|       |
 5899|    594|    return size;
 5900|    595|}
ogs_nas_5gs_decode_atsss_container:
 5920|    669|{
 5921|    669|    int size = 0;
 5922|    669|    ogs_nas_atsss_container_t *source = NULL;
 5923|       |
 5924|    669|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (5924:9): [True: 5, False: 664]
  ------------------
 5925|      5|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5926|      5|       return -1;
 5927|      5|    }
 5928|       |
 5929|    664|    source = (ogs_nas_atsss_container_t *)pkbuf->data;
 5930|       |
 5931|    664|    atsss_container->length = be16toh(source->length);
 5932|    664|    size = atsss_container->length + sizeof(atsss_container->length);
 5933|       |
 5934|    664|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5934:9): [True: 23, False: 641]
  ------------------
 5935|     23|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     23|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     23|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     23|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     23|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     23|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     23|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5936|     23|       return -1;
 5937|     23|    }
 5938|       |
 5939|    641|    atsss_container->buffer = pkbuf->data - size + sizeof(atsss_container->length);
 5940|       |
 5941|    641|    ogs_trace("  ATSSS_CONTAINER - ");
  ------------------
  |  |   40|    641|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    641|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    641|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    641|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    641|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    641|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5942|    641|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)atsss_container->buffer, atsss_container->length);
  ------------------
  |  |   53|    641|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    641|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5943|       |
 5944|    641|    return size;
 5945|    664|}
ogs_nas_5gs_decode_control_plane_only_indication:
 5973|    524|{
 5974|    524|    int size = sizeof(ogs_nas_control_plane_only_indication_t);
 5975|       |
 5976|    524|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5976:9): [True: 0, False: 524]
  ------------------
 5977|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5978|      0|       return -1;
 5979|      0|    }
 5980|       |
 5981|    524|    memcpy(control_plane_only_indication, pkbuf->data - size, size);
 5982|       |
 5983|    524|    ogs_trace("  CONTROL_PLANE_ONLY_INDICATION - ");
  ------------------
  |  |   40|    524|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    524|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    524|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    524|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    524|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    524|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5984|    524|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    524|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    524|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5985|       |
 5986|    524|    return size;
 5987|    524|}
ogs_nas_5gs_decode_ip_header_compression_configuration:
 6005|    743|{
 6006|    743|    int size = 0;
 6007|    743|    ogs_nas_ip_header_compression_configuration_t *source = NULL;
 6008|       |
 6009|    743|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6009:9): [True: 3, False: 740]
  ------------------
 6010|      3|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6011|      3|       return -1;
 6012|      3|    }
 6013|       |
 6014|    740|    source = (ogs_nas_ip_header_compression_configuration_t *)pkbuf->data;
 6015|       |
 6016|    740|    ip_header_compression_configuration->length = source->length;
 6017|    740|    size = ip_header_compression_configuration->length + sizeof(ip_header_compression_configuration->length);
 6018|       |
 6019|    740|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6019:9): [True: 3, False: 737]
  ------------------
 6020|      3|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6021|      3|       return -1;
 6022|      3|    }
 6023|       |
 6024|    737|    if (sizeof(*ip_header_compression_configuration) < size) return -1;
  ------------------
  |  Branch (6024:9): [True: 0, False: 737]
  ------------------
 6025|    737|    memcpy(ip_header_compression_configuration, pkbuf->data - size, size);
 6026|       |
 6027|    737|    ogs_trace("  IP_HEADER_COMPRESSION_CONFIGURATION - ");
  ------------------
  |  |   40|    737|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    737|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    737|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    737|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    737|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    737|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6028|    737|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    737|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    737|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6029|       |
 6030|    737|    return size;
 6031|    737|}
ogs_nas_5gs_decode_header_compression_configuration:
 6051|    288|{
 6052|    288|    int size = 0;
 6053|    288|    ogs_nas_header_compression_configuration_t *source = NULL;
 6054|       |
 6055|    288|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6055:9): [True: 3, False: 285]
  ------------------
 6056|      3|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6057|      3|       return -1;
 6058|      3|    }
 6059|       |
 6060|    285|    source = (ogs_nas_header_compression_configuration_t *)pkbuf->data;
 6061|       |
 6062|    285|    header_compression_configuration->length = source->length;
 6063|    285|    size = header_compression_configuration->length + sizeof(header_compression_configuration->length);
 6064|       |
 6065|    285|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6065:9): [True: 9, False: 276]
  ------------------
 6066|      9|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      9|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      9|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      9|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      9|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      9|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      9|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6067|      9|       return -1;
 6068|      9|    }
 6069|       |
 6070|    276|    if (sizeof(*header_compression_configuration) < size) return -1;
  ------------------
  |  Branch (6070:9): [True: 0, False: 276]
  ------------------
 6071|    276|    memcpy(header_compression_configuration, pkbuf->data - size, size);
 6072|       |
 6073|    276|    header_compression_configuration->max_cid = be16toh(header_compression_configuration->max_cid);
 6074|       |
 6075|    276|    ogs_trace("  HEADER_COMPRESSION_CONFIGURATION - ");
  ------------------
  |  |   40|    276|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    276|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    276|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    276|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    276|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    276|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6076|    276|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    276|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    276|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6077|       |
 6078|    276|    return size;
 6079|    276|}
ogs_nas_5gs_decode_ds_tt_ethernet_port_mac_address:
 6101|    261|{
 6102|    261|    int size = 0;
 6103|    261|    ogs_nas_ds_tt_ethernet_port_mac_address_t *source = NULL;
 6104|       |
 6105|    261|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6105:9): [True: 5, False: 256]
  ------------------
 6106|      5|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6107|      5|       return -1;
 6108|      5|    }
 6109|       |
 6110|    256|    source = (ogs_nas_ds_tt_ethernet_port_mac_address_t *)pkbuf->data;
 6111|       |
 6112|    256|    ds_tt_ethernet_port_mac_address->length = source->length;
 6113|    256|    size = ds_tt_ethernet_port_mac_address->length + sizeof(ds_tt_ethernet_port_mac_address->length);
 6114|       |
 6115|    256|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6115:9): [True: 5, False: 251]
  ------------------
 6116|      5|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6117|      5|       return -1;
 6118|      5|    }
 6119|       |
 6120|    251|    if (sizeof(*ds_tt_ethernet_port_mac_address) < size) return -1;
  ------------------
  |  Branch (6120:9): [True: 3, False: 248]
  ------------------
 6121|    248|    memcpy(ds_tt_ethernet_port_mac_address, pkbuf->data - size, size);
 6122|       |
 6123|    248|    ogs_trace("  DS_TT_ETHERNET_PORT_MAC_ADDRESS - ");
  ------------------
  |  |   40|    248|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    248|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    248|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    248|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    248|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    248|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6124|    248|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    248|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    248|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6125|       |
 6126|    248|    return size;
 6127|    251|}
ogs_nas_5gs_decode_ue_ds_tt_residence_time:
 6147|    205|{
 6148|    205|    int size = 0;
 6149|    205|    ogs_nas_ue_ds_tt_residence_time_t *source = NULL;
 6150|       |
 6151|    205|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6151:9): [True: 1, False: 204]
  ------------------
 6152|      1|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6153|      1|       return -1;
 6154|      1|    }
 6155|       |
 6156|    204|    source = (ogs_nas_ue_ds_tt_residence_time_t *)pkbuf->data;
 6157|       |
 6158|    204|    ue_ds_tt_residence_time->length = source->length;
 6159|    204|    size = ue_ds_tt_residence_time->length + sizeof(ue_ds_tt_residence_time->length);
 6160|       |
 6161|    204|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6161:9): [True: 2, False: 202]
  ------------------
 6162|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6163|      2|       return -1;
 6164|      2|    }
 6165|       |
 6166|    202|    if (sizeof(*ue_ds_tt_residence_time) < size) return -1;
  ------------------
  |  Branch (6166:9): [True: 1, False: 201]
  ------------------
 6167|    201|    memcpy(ue_ds_tt_residence_time, pkbuf->data - size, size);
 6168|       |
 6169|    201|    ogs_trace("  UE_DS_TT_RESIDENCE_TIME - ");
  ------------------
  |  |   40|    201|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    201|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    201|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    201|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    201|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    201|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6170|    201|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    201|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    201|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6171|       |
 6172|    201|    return size;
 6173|    202|}
ogs_nas_5gs_decode_port_management_information_container:
 6193|    890|{
 6194|    890|    int size = 0;
 6195|    890|    ogs_nas_port_management_information_container_t *source = NULL;
 6196|       |
 6197|    890|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6197:9): [True: 7, False: 883]
  ------------------
 6198|      7|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6199|      7|       return -1;
 6200|      7|    }
 6201|       |
 6202|    883|    source = (ogs_nas_port_management_information_container_t *)pkbuf->data;
 6203|       |
 6204|    883|    port_management_information_container->length = be16toh(source->length);
 6205|    883|    size = port_management_information_container->length + sizeof(port_management_information_container->length);
 6206|       |
 6207|    883|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6207:9): [True: 25, False: 858]
  ------------------
 6208|     25|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     25|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     25|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     25|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     25|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     25|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     25|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6209|     25|       return -1;
 6210|     25|    }
 6211|       |
 6212|    858|    port_management_information_container->buffer = pkbuf->data - size + sizeof(port_management_information_container->length);
 6213|       |
 6214|    858|    ogs_trace("  PORT_MANAGEMENT_INFORMATION_CONTAINER - ");
  ------------------
  |  |   40|    858|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    858|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    858|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    858|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    858|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    858|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6215|    858|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)port_management_information_container->buffer, port_management_information_container->length);
  ------------------
  |  |   53|    858|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    858|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6216|       |
 6217|    858|    return size;
 6218|    883|}
ogs_nas_5gs_decode_ethernet_header_compression_configuration:
 6246|  1.11k|{
 6247|  1.11k|    int size = 0;
 6248|  1.11k|    ogs_nas_ethernet_header_compression_configuration_t *source = NULL;
 6249|       |
 6250|  1.11k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6250:9): [True: 5, False: 1.10k]
  ------------------
 6251|      5|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6252|      5|       return -1;
 6253|      5|    }
 6254|       |
 6255|  1.10k|    source = (ogs_nas_ethernet_header_compression_configuration_t *)pkbuf->data;
 6256|       |
 6257|  1.10k|    ethernet_header_compression_configuration->length = source->length;
 6258|  1.10k|    size = ethernet_header_compression_configuration->length + sizeof(ethernet_header_compression_configuration->length);
 6259|       |
 6260|  1.10k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6260:9): [True: 4, False: 1.10k]
  ------------------
 6261|      4|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6262|      4|       return -1;
 6263|      4|    }
 6264|       |
 6265|  1.10k|    if (sizeof(*ethernet_header_compression_configuration) < size) return -1;
  ------------------
  |  Branch (6265:9): [True: 1, False: 1.10k]
  ------------------
 6266|  1.10k|    memcpy(ethernet_header_compression_configuration, pkbuf->data - size, size);
 6267|       |
 6268|  1.10k|    ogs_trace("  ETHERNET_HEADER_COMPRESSION_CONFIGURATION - ");
  ------------------
  |  |   40|  1.10k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.10k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.10k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.10k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.10k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.10k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6269|  1.10k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.10k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.10k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6270|       |
 6271|  1.10k|    return size;
 6272|  1.10k|}
ogs_nas_5gs_decode_always_on_pdu_session_indication:
 6292|  1.04k|{
 6293|  1.04k|    int size = sizeof(ogs_nas_always_on_pdu_session_indication_t);
 6294|       |
 6295|  1.04k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6295:9): [True: 0, False: 1.04k]
  ------------------
 6296|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6297|      0|       return -1;
 6298|      0|    }
 6299|       |
 6300|  1.04k|    memcpy(always_on_pdu_session_indication, pkbuf->data - size, size);
 6301|       |
 6302|  1.04k|    ogs_trace("  ALWAYS_ON_PDU_SESSION_INDICATION - ");
  ------------------
  |  |   40|  1.04k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.04k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.04k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.04k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.04k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.04k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6303|  1.04k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.04k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.04k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6304|       |
 6305|  1.04k|    return size;
 6306|  1.04k|}
ogs_nas_5gs_decode_requested_mbs_container:
 6324|    454|{
 6325|    454|    int size = 0;
 6326|    454|    ogs_nas_requested_mbs_container_t *source = NULL;
 6327|       |
 6328|    454|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6328:9): [True: 4, False: 450]
  ------------------
 6329|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6330|      4|       return -1;
 6331|      4|    }
 6332|       |
 6333|    450|    source = (ogs_nas_requested_mbs_container_t *)pkbuf->data;
 6334|       |
 6335|    450|    requested_mbs_container->length = be16toh(source->length);
 6336|    450|    size = requested_mbs_container->length + sizeof(requested_mbs_container->length);
 6337|       |
 6338|    450|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6338:9): [True: 24, False: 426]
  ------------------
 6339|     24|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     24|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     24|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     24|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     24|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     24|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     24|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6340|     24|       return -1;
 6341|     24|    }
 6342|       |
 6343|    426|    requested_mbs_container->buffer = pkbuf->data - size + sizeof(requested_mbs_container->length);
 6344|       |
 6345|    426|    ogs_trace("  REQUESTED_MBS_CONTAINER - ");
  ------------------
  |  |   40|    426|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    426|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    426|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    426|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    426|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    426|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6346|    426|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)requested_mbs_container->buffer, requested_mbs_container->length);
  ------------------
  |  |   53|    426|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    426|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6347|       |
 6348|    426|    return size;
 6349|    450|}
ogs_nas_5gs_decode_received_mbs_container:
 6377|    591|{
 6378|    591|    int size = 0;
 6379|    591|    ogs_nas_received_mbs_container_t *source = NULL;
 6380|       |
 6381|    591|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6381:9): [True: 5, False: 586]
  ------------------
 6382|      5|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6383|      5|       return -1;
 6384|      5|    }
 6385|       |
 6386|    586|    source = (ogs_nas_received_mbs_container_t *)pkbuf->data;
 6387|       |
 6388|    586|    received_mbs_container->length = be16toh(source->length);
 6389|    586|    size = received_mbs_container->length + sizeof(received_mbs_container->length);
 6390|       |
 6391|    586|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6391:9): [True: 18, False: 568]
  ------------------
 6392|     18|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     18|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     18|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     18|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     18|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     18|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     18|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6393|     18|       return -1;
 6394|     18|    }
 6395|       |
 6396|    568|    received_mbs_container->buffer = pkbuf->data - size + sizeof(received_mbs_container->length);
 6397|       |
 6398|    568|    ogs_trace("  RECEIVED_MBS_CONTAINER - ");
  ------------------
  |  |   40|    568|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    568|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    568|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    568|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    568|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    568|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6399|    568|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)received_mbs_container->buffer, received_mbs_container->length);
  ------------------
  |  |   53|    568|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    568|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6400|       |
 6401|    568|    return size;
 6402|    586|}
ogs_nas_5gs_decode_pdu_session_pair_id:
 6430|    568|{
 6431|    568|    int size = 0;
 6432|    568|    ogs_nas_pdu_session_pair_id_t *source = NULL;
 6433|       |
 6434|    568|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6434:9): [True: 1, False: 567]
  ------------------
 6435|      1|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6436|      1|       return -1;
 6437|      1|    }
 6438|       |
 6439|    567|    source = (ogs_nas_pdu_session_pair_id_t *)pkbuf->data;
 6440|       |
 6441|    567|    pdu_session_pair_id->length = source->length;
 6442|    567|    size = pdu_session_pair_id->length + sizeof(pdu_session_pair_id->length);
 6443|       |
 6444|    567|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6444:9): [True: 4, False: 563]
  ------------------
 6445|      4|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6446|      4|       return -1;
 6447|      4|    }
 6448|       |
 6449|    563|    if (sizeof(*pdu_session_pair_id) < size) return -1;
  ------------------
  |  Branch (6449:9): [True: 1, False: 562]
  ------------------
 6450|    562|    memcpy(pdu_session_pair_id, pkbuf->data - size, size);
 6451|       |
 6452|    562|    ogs_trace("  PDU_SESSION_PAIR_ID - ");
  ------------------
  |  |   40|    562|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    562|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    562|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    562|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    562|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    562|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6453|    562|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    562|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    562|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6454|       |
 6455|    562|    return size;
 6456|    563|}
ogs_nas_5gs_decode_rsn:
 6476|    274|{
 6477|    274|    int size = 0;
 6478|    274|    ogs_nas_rsn_t *source = NULL;
 6479|       |
 6480|    274|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6480:9): [True: 2, False: 272]
  ------------------
 6481|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6482|      2|       return -1;
 6483|      2|    }
 6484|       |
 6485|    272|    source = (ogs_nas_rsn_t *)pkbuf->data;
 6486|       |
 6487|    272|    rsn->length = source->length;
 6488|    272|    size = rsn->length + sizeof(rsn->length);
 6489|       |
 6490|    272|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6490:9): [True: 6, False: 266]
  ------------------
 6491|      6|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6492|      6|       return -1;
 6493|      6|    }
 6494|       |
 6495|    266|    if (sizeof(*rsn) < size) return -1;
  ------------------
  |  Branch (6495:9): [True: 2, False: 264]
  ------------------
 6496|    264|    memcpy(rsn, pkbuf->data - size, size);
 6497|       |
 6498|    264|    ogs_trace("  RSN - ");
  ------------------
  |  |   40|    264|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    264|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    264|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    264|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    264|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    264|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6499|    264|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    264|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    264|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6500|       |
 6501|    264|    return size;
 6502|    266|}
ogs_nas_5gs_decode_n3qai:
 6522|    449|{
 6523|    449|    int size = 0;
 6524|    449|    ogs_nas_n3qai_t *source = NULL;
 6525|       |
 6526|    449|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6526:9): [True: 4, False: 445]
  ------------------
 6527|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6528|      4|       return -1;
 6529|      4|    }
 6530|       |
 6531|    445|    source = (ogs_nas_n3qai_t *)pkbuf->data;
 6532|       |
 6533|    445|    n3qai->length = be16toh(source->length);
 6534|    445|    size = n3qai->length + sizeof(n3qai->length);
 6535|       |
 6536|    445|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6536:9): [True: 21, False: 424]
  ------------------
 6537|     21|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     21|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     21|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     21|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     21|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     21|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     21|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6538|     21|       return -1;
 6539|     21|    }
 6540|       |
 6541|    424|    n3qai->buffer = pkbuf->data - size + sizeof(n3qai->length);
 6542|       |
 6543|    424|    ogs_trace("  N3QAI - ");
  ------------------
  |  |   40|    424|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    424|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    424|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    424|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    424|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    424|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6544|    424|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)n3qai->buffer, n3qai->length);
  ------------------
  |  |   53|    424|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    424|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6545|       |
 6546|    424|    return size;
 6547|    445|}
ogs_nas_5gs_decode_non_3gpp_delay_budget:
 6575|    216|{
 6576|    216|    int size = 0;
 6577|    216|    ogs_nas_non_3gpp_delay_budget_t *source = NULL;
 6578|       |
 6579|    216|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6579:9): [True: 4, False: 212]
  ------------------
 6580|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6581|      4|       return -1;
 6582|      4|    }
 6583|       |
 6584|    212|    source = (ogs_nas_non_3gpp_delay_budget_t *)pkbuf->data;
 6585|       |
 6586|    212|    non_3gpp_delay_budget->length = be16toh(source->length);
 6587|    212|    size = non_3gpp_delay_budget->length + sizeof(non_3gpp_delay_budget->length);
 6588|       |
 6589|    212|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6589:9): [True: 7, False: 205]
  ------------------
 6590|      7|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6591|      7|       return -1;
 6592|      7|    }
 6593|       |
 6594|    205|    non_3gpp_delay_budget->buffer = pkbuf->data - size + sizeof(non_3gpp_delay_budget->length);
 6595|       |
 6596|    205|    ogs_trace("  NON_3GPP_DELAY_BUDGET - ");
  ------------------
  |  |   40|    205|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    205|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    205|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    205|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    205|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    205|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6597|    205|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)non_3gpp_delay_budget->buffer, non_3gpp_delay_budget->length);
  ------------------
  |  |   53|    205|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    205|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6598|       |
 6599|    205|    return size;
 6600|    212|}
ogs_nas_5gs_decode_ursp_rule_enforcement_reports:
 6628|    434|{
 6629|    434|    int size = 0;
 6630|    434|    ogs_nas_ursp_rule_enforcement_reports_t *source = NULL;
 6631|       |
 6632|    434|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6632:9): [True: 2, False: 432]
  ------------------
 6633|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6634|      2|       return -1;
 6635|      2|    }
 6636|       |
 6637|    432|    source = (ogs_nas_ursp_rule_enforcement_reports_t *)pkbuf->data;
 6638|       |
 6639|    432|    ursp_rule_enforcement_reports->length = source->length;
 6640|    432|    size = ursp_rule_enforcement_reports->length + sizeof(ursp_rule_enforcement_reports->length);
 6641|       |
 6642|    432|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6642:9): [True: 2, False: 430]
  ------------------
 6643|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6644|      2|       return -1;
 6645|      2|    }
 6646|       |
 6647|    430|    if (sizeof(*ursp_rule_enforcement_reports) < size) return -1;
  ------------------
  |  Branch (6647:9): [True: 1, False: 429]
  ------------------
 6648|    429|    memcpy(ursp_rule_enforcement_reports, pkbuf->data - size, size);
 6649|       |
 6650|    429|    ogs_trace("  URSP_RULE_ENFORCEMENT_REPORTS - ");
  ------------------
  |  |   40|    429|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    429|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    429|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    429|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    429|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    429|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6651|    429|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    429|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    429|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6652|       |
 6653|    429|    return size;
 6654|    430|}
ogs_nas_5gs_decode_protocol_description:
 6674|    457|{
 6675|    457|    int size = 0;
 6676|    457|    ogs_nas_protocol_description_t *source = NULL;
 6677|       |
 6678|    457|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6678:9): [True: 5, False: 452]
  ------------------
 6679|      5|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6680|      5|       return -1;
 6681|      5|    }
 6682|       |
 6683|    452|    source = (ogs_nas_protocol_description_t *)pkbuf->data;
 6684|       |
 6685|    452|    protocol_description->length = be16toh(source->length);
 6686|    452|    size = protocol_description->length + sizeof(protocol_description->length);
 6687|       |
 6688|    452|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6688:9): [True: 19, False: 433]
  ------------------
 6689|     19|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     19|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     19|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     19|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     19|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     19|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     19|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6690|     19|       return -1;
 6691|     19|    }
 6692|       |
 6693|    433|    protocol_description->buffer = pkbuf->data - size + sizeof(protocol_description->length);
 6694|       |
 6695|    433|    ogs_trace("  PROTOCOL_DESCRIPTION - ");
  ------------------
  |  |   40|    433|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    433|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    433|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    433|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    433|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    433|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6696|    433|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)protocol_description->buffer, protocol_description->length);
  ------------------
  |  |   53|    433|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    433|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6697|       |
 6698|    433|    return size;
 6699|    452|}
ogs_nas_5gs_decode_always_on_pdu_session_requested:
 6727|  1.43k|{
 6728|  1.43k|    int size = sizeof(ogs_nas_always_on_pdu_session_requested_t);
 6729|       |
 6730|  1.43k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6730:9): [True: 0, False: 1.43k]
  ------------------
 6731|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6732|      0|       return -1;
 6733|      0|    }
 6734|       |
 6735|  1.43k|    memcpy(always_on_pdu_session_requested, pkbuf->data - size, size);
 6736|       |
 6737|  1.43k|    ogs_trace("  ALWAYS_ON_PDU_SESSION_REQUESTED - ");
  ------------------
  |  |   40|  1.43k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.43k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.43k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.43k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.43k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.43k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6738|  1.43k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.43k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.43k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6739|       |
 6740|  1.43k|    return size;
 6741|  1.43k|}
ogs_nas_5gs_decode_ecn_marking_for_l4s_indication:
 6759|    406|{
 6760|    406|    int size = 0;
 6761|    406|    ogs_nas_ecn_marking_for_l4s_indication_t *source = NULL;
 6762|       |
 6763|    406|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6763:9): [True: 1, False: 405]
  ------------------
 6764|      1|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6765|      1|       return -1;
 6766|      1|    }
 6767|       |
 6768|    405|    source = (ogs_nas_ecn_marking_for_l4s_indication_t *)pkbuf->data;
 6769|       |
 6770|    405|    ecn_marking_for_l4s_indication->length = source->length;
 6771|    405|    size = ecn_marking_for_l4s_indication->length + sizeof(ecn_marking_for_l4s_indication->length);
 6772|       |
 6773|    405|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6773:9): [True: 2, False: 403]
  ------------------
 6774|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6775|      2|       return -1;
 6776|      2|    }
 6777|       |
 6778|    403|    if (sizeof(*ecn_marking_for_l4s_indication) < size) return -1;
  ------------------
  |  Branch (6778:9): [True: 1, False: 402]
  ------------------
 6779|    402|    memcpy(ecn_marking_for_l4s_indication, pkbuf->data - size, size);
 6780|       |
 6781|    402|    ogs_trace("  ECN_MARKING_FOR_L4S_INDICATION - ");
  ------------------
  |  |   40|    402|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    402|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    402|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    402|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    402|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    402|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6782|    402|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    402|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    402|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6783|       |
 6784|    402|    return size;
 6785|    403|}
ogs_nas_5gs_decode_non_3gpp_device_information:
 6805|    248|{
 6806|    248|    int size = 0;
 6807|    248|    ogs_nas_non_3gpp_device_information_t *source = NULL;
 6808|       |
 6809|    248|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6809:9): [True: 5, False: 243]
  ------------------
 6810|      5|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6811|      5|       return -1;
 6812|      5|    }
 6813|       |
 6814|    243|    source = (ogs_nas_non_3gpp_device_information_t *)pkbuf->data;
 6815|       |
 6816|    243|    non_3gpp_device_information->length = be16toh(source->length);
 6817|    243|    size = non_3gpp_device_information->length + sizeof(non_3gpp_device_information->length);
 6818|       |
 6819|    243|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6819:9): [True: 17, False: 226]
  ------------------
 6820|     17|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     17|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     17|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     17|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     17|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     17|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     17|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6821|     17|       return -1;
 6822|     17|    }
 6823|       |
 6824|    226|    non_3gpp_device_information->buffer = pkbuf->data - size + sizeof(non_3gpp_device_information->length);
 6825|       |
 6826|    226|    ogs_trace("  NON_3GPP_DEVICE_INFORMATION - ");
  ------------------
  |  |   40|    226|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    226|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    226|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    226|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    226|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    226|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6827|    226|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)non_3gpp_device_information->buffer, non_3gpp_device_information->length);
  ------------------
  |  |   53|    226|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    226|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6828|       |
 6829|    226|    return size;
 6830|    243|}
ogs_nas_5gs_decode_allowed_ssc_mode:
 6858|  1.00k|{
 6859|  1.00k|    int size = sizeof(ogs_nas_allowed_ssc_mode_t);
 6860|       |
 6861|  1.00k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6861:9): [True: 0, False: 1.00k]
  ------------------
 6862|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6863|      0|       return -1;
 6864|      0|    }
 6865|       |
 6866|  1.00k|    memcpy(allowed_ssc_mode, pkbuf->data - size, size);
 6867|       |
 6868|  1.00k|    ogs_trace("  ALLOWED_SSC_MODE - ");
  ------------------
  |  |   40|  1.00k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.00k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.00k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.00k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.00k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.00k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6869|  1.00k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.00k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.00k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6870|       |
 6871|  1.00k|    return size;
 6872|  1.00k|}
ogs_nas_5gs_decode_extended_protocol_configuration_options:
 6890|  3.26k|{
 6891|  3.26k|    int size = 0;
 6892|  3.26k|    ogs_nas_extended_protocol_configuration_options_t *source = NULL;
 6893|       |
 6894|  3.26k|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6894:9): [True: 18, False: 3.24k]
  ------------------
 6895|     18|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|     18|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     18|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     18|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     18|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     18|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     18|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6896|     18|       return -1;
 6897|     18|    }
 6898|       |
 6899|  3.24k|    source = (ogs_nas_extended_protocol_configuration_options_t *)pkbuf->data;
 6900|       |
 6901|  3.24k|    extended_protocol_configuration_options->length = be16toh(source->length);
 6902|  3.24k|    size = extended_protocol_configuration_options->length + sizeof(extended_protocol_configuration_options->length);
 6903|       |
 6904|  3.24k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6904:9): [True: 25, False: 3.22k]
  ------------------
 6905|     25|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|     25|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     25|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     25|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     25|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     25|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     25|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6906|     25|       return -1;
 6907|     25|    }
 6908|       |
 6909|  3.22k|    extended_protocol_configuration_options->buffer = pkbuf->data - size + sizeof(extended_protocol_configuration_options->length);
 6910|       |
 6911|  3.22k|    ogs_trace("  EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS - ");
  ------------------
  |  |   40|  3.22k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  3.22k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  3.22k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  3.22k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  3.22k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  3.22k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6912|  3.22k|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)extended_protocol_configuration_options->buffer, extended_protocol_configuration_options->length);
  ------------------
  |  |   53|  3.22k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  3.22k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6913|       |
 6914|  3.22k|    return size;
 6915|  3.24k|}
ogs_nas_5gs_decode_integrity_protection_maximum_data_rate:
 6943|    512|{
 6944|    512|    int size = sizeof(ogs_nas_integrity_protection_maximum_data_rate_t);
 6945|       |
 6946|    512|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6946:9): [True: 5, False: 507]
  ------------------
 6947|      5|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6948|      5|       return -1;
 6949|      5|    }
 6950|       |
 6951|    507|    memcpy(integrity_protection_maximum_data_rate, pkbuf->data - size, size);
 6952|       |
 6953|    507|    ogs_trace("  INTEGRITY_PROTECTION_MAXIMUM_DATA_RATE - ");
  ------------------
  |  |   40|    507|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    507|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    507|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    507|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    507|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    507|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6954|    507|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    507|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    507|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6955|       |
 6956|    507|    return size;
 6957|    512|}
ogs_nas_5gs_decode_mapped_eps_bearer_contexts:
 6977|    662|{
 6978|    662|    int size = 0;
 6979|    662|    ogs_nas_mapped_eps_bearer_contexts_t *source = NULL;
 6980|       |
 6981|    662|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6981:9): [True: 4, False: 658]
  ------------------
 6982|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6983|      4|       return -1;
 6984|      4|    }
 6985|       |
 6986|    658|    source = (ogs_nas_mapped_eps_bearer_contexts_t *)pkbuf->data;
 6987|       |
 6988|    658|    mapped_eps_bearer_contexts->length = be16toh(source->length);
 6989|    658|    size = mapped_eps_bearer_contexts->length + sizeof(mapped_eps_bearer_contexts->length);
 6990|       |
 6991|    658|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6991:9): [True: 7, False: 651]
  ------------------
 6992|      7|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6993|      7|       return -1;
 6994|      7|    }
 6995|       |
 6996|    651|    mapped_eps_bearer_contexts->buffer = pkbuf->data - size + sizeof(mapped_eps_bearer_contexts->length);
 6997|       |
 6998|    651|    ogs_trace("  MAPPED_EPS_BEARER_CONTEXTS - ");
  ------------------
  |  |   40|    651|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    651|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    651|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    651|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    651|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    651|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6999|    651|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)mapped_eps_bearer_contexts->buffer, mapped_eps_bearer_contexts->length);
  ------------------
  |  |   53|    651|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    651|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 7000|       |
 7001|    651|    return size;
 7002|    658|}
ogs_nas_5gs_decode_maximum_number_of_supported_packet_filters:
 7030|    665|{
 7031|    665|    int size = sizeof(ogs_nas_maximum_number_of_supported_packet_filters_t);
 7032|       |
 7033|    665|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (7033:9): [True: 6, False: 659]
  ------------------
 7034|      6|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 7035|      6|       return -1;
 7036|      6|    }
 7037|       |
 7038|    659|    memcpy(maximum_number_of_supported_packet_filters, pkbuf->data - size, size);
 7039|       |
 7040|    659|    ogs_trace("  MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS - ");
  ------------------
  |  |   40|    659|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    659|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    659|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    659|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    659|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    659|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 7041|    659|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    659|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    659|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 7042|       |
 7043|    659|    return size;
 7044|    665|}

ogs_fqdn_parse:
  533|  1.59k|{
  534|  1.59k|    int i = 0, j = 0;
  535|  1.59k|    uint8_t len = 0;
  536|       |
  537|  3.81k|    while (i+1 <= length) {
  ------------------
  |  Branch (537:12): [True: 2.59k, False: 1.22k]
  ------------------
  538|  2.59k|        len = src[i++];
  539|  2.59k|        if ((j + len + 1) > length) {
  ------------------
  |  Branch (539:13): [True: 370, False: 2.22k]
  ------------------
  540|    370|            ogs_error("Invalid FQDN encoding[j:%d+len:%d] + 1 > length[%d]",
  ------------------
  |  |   36|    370|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    370|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   32|    370|#define OGS_LOG_DOMAIN      1
  |  |  |  |  ------------------
  |  |  |  |   44|    370|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    370|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    370|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  541|    370|                    j, len, length);
  542|    370|            ogs_log_hexdump(OGS_LOG_ERROR, (unsigned char *)src, length);
  ------------------
  |  |   53|    370|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   32|    370|#define OGS_LOG_DOMAIN      1
  |  |  ------------------
  ------------------
  543|    370|            return -EINVAL;
  544|    370|        }
  545|  2.22k|        memcpy(&dst[j], &src[i], len);
  546|       |
  547|  2.22k|        i += len;
  548|  2.22k|        j += len;
  549|       |
  550|  2.22k|        if (i+1 < length)
  ------------------
  |  Branch (550:13): [True: 962, False: 1.25k]
  ------------------
  551|    962|            dst[j++] = '.';
  552|  1.25k|        else
  553|  1.25k|            dst[j] = 0;
  554|  2.22k|    }
  555|       |
  556|  1.22k|    return j;
  557|  1.59k|}

initialize:
   24|      1|void initialize(void) {
   25|       |
   26|      1|    ogs_pkbuf_config_t config;
   27|       |
   28|      1|    ogs_core_initialize();
   29|       |
   30|      1|    ogs_pkbuf_default_init(&config);
   31|      1|    ogs_pkbuf_default_create(&config);
   32|       |
   33|      1|    initialized = 1;
   34|      1|}

LLVMFuzzerTestOneInput:
   30|  7.00k|{
   31|       |
   32|  7.00k|    if (Size < kMinInputLength || Size > kMaxInputLength) {
  ------------------
  |  |   26|  14.0k|#define kMinInputLength 5
  ------------------
                  if (Size < kMinInputLength || Size > kMaxInputLength) {
  ------------------
  |  |   27|  6.99k|#define kMaxInputLength 1024
  ------------------
  |  Branch (32:9): [True: 4, False: 6.99k]
  |  Branch (32:35): [True: 21, False: 6.97k]
  ------------------
   33|     25|        return 1;
   34|     25|    }
   35|       |
   36|  6.97k|    if (!initialized) {
  ------------------
  |  Branch (36:9): [True: 1, False: 6.97k]
  ------------------
   37|      1|        initialize();
   38|      1|        ogs_log_install_domain(&__ogs_nas_domain, "nas", OGS_LOG_NONE);
   39|      1|    }
   40|       |
   41|  6.97k|    int result;
   42|  6.97k|    ogs_pkbuf_t *pkbuf;
   43|  6.97k|    ogs_nas_5gs_message_t message;
   44|       |
   45|  6.97k|    pkbuf = ogs_pkbuf_alloc(NULL, OGS_MAX_SDU_LEN);
  ------------------
  |  |   87|  6.97k|    ogs_pkbuf_alloc_debug(pool, size, OGS_FILE_LINE)
  |  |  ------------------
  |  |  |  |  213|  6.97k|#define OGS_FILE_LINE __FILE__ ":" OGS_STRINGIFY(__LINE__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  167|  6.97k|#define OGS_STRINGIFY(n)            OGS_STRINGIFY_HELPER(n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  168|  6.97k|#define OGS_STRINGIFY_HELPER(n)     #n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   46|  6.97k|    if (pkbuf == NULL) {
  ------------------
  |  Branch (46:9): [True: 0, False: 6.97k]
  ------------------
   47|      0|        return 1;
   48|      0|    }
   49|       |
   50|       |    /* First byte selects the 5GS sublayer: even = 5GMM, odd = 5GSM. */
   51|  6.97k|    uint8_t selector = Data[0];
   52|  6.97k|    ogs_pkbuf_put_data(pkbuf, Data + 1, Size - 1);
   53|       |
   54|  6.97k|    if (selector & 1) {
  ------------------
  |  Branch (54:9): [True: 2.26k, False: 4.70k]
  ------------------
   55|  2.26k|        result = ogs_nas_5gsm_decode(&message, pkbuf);
   56|  4.70k|    } else {
   57|  4.70k|        result = ogs_nas_5gmm_decode(&message, pkbuf);
   58|  4.70k|    }
   59|       |
   60|  6.97k|    ogs_pkbuf_free(pkbuf);
   61|       |
   62|  6.97k|    return result;
   63|  6.97k|}

