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|   345k|{
   52|   345k|    return list->next;
   53|   345k|}
ogs-log.c:ogs_list_next:
   61|    755|{
   62|    755|    ogs_list_t *node = (ogs_list_t *)lnode;
   63|    755|    return node->next;
   64|    755|}
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|   345k|{
  405|   345k|    ogs_log_t *log = NULL;
  406|   345k|    ogs_log_domain_t *domain = NULL;
  407|       |
  408|   345k|    char logstr[OGS_HUGE_LEN];
  409|   345k|    char *p, *last;
  410|       |
  411|   345k|    int wrote_stderr = 0;
  412|       |
  413|   345k|    ogs_list_for_each(&log_list, log) {
  ------------------
  |  |   76|   346k|    for (node = ogs_list_first(list); (node); \
  |  |  ------------------
  |  |  |  Branch (76:39): [True: 345k, False: 734]
  |  |  ------------------
  |  |   77|   345k|        node = ogs_list_next(node))
  ------------------
  414|   345k|        domain = ogs_pool_find(&domain_pool, id);
  ------------------
  |  |  154|   345k|    (_index > 0 && _index <= (pool)->size) ? (pool)->index[_index-1] : NULL
  |  |  ------------------
  |  |  |  Branch (154:6): [True: 345k, False: 0]
  |  |  |  Branch (154:20): [True: 345k, False: 0]
  |  |  ------------------
  ------------------
  415|   345k|        if (!domain) {
  ------------------
  |  Branch (415:13): [True: 0, False: 345k]
  ------------------
  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|   345k|        if (domain->level < level)
  ------------------
  |  Branch (419:13): [True: 344k, False: 734]
  ------------------
  420|   344k|            return;
  421|       |
  422|    734|        p = logstr;
  423|    734|        last = logstr + OGS_HUGE_LEN;
  ------------------
  |  |  210|    734|#define OGS_HUGE_LEN                    8192  /* Can Stack */
  ------------------
  424|       |
  425|    734|        if (!content_only) {
  ------------------
  |  Branch (425:13): [True: 367, False: 367]
  ------------------
  426|    367|            if (log->print.timestamp)
  ------------------
  |  Branch (426:17): [True: 367, False: 0]
  ------------------
  427|    367|                p = log_timestamp(p, last, log->print.color);
  428|    367|            if (log->print.domain)
  ------------------
  |  Branch (428:17): [True: 367, False: 0]
  ------------------
  429|    367|                p = log_domain(p, last, domain->name, log->print.color);
  430|    367|            if (log->print.level)
  ------------------
  |  Branch (430:17): [True: 367, False: 0]
  ------------------
  431|    367|                p = log_level(p, last, level, log->print.color);
  432|    367|        }
  433|       |
  434|    734|        p = log_content(p, last, format, ap);
  435|       |
  436|    734|        if (err) {
  ------------------
  |  Branch (436:13): [True: 0, False: 734]
  ------------------
  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|    734|        if (!content_only) {
  ------------------
  |  Branch (442:13): [True: 367, False: 367]
  ------------------
  443|    367|            if (log->print.fileline)
  ------------------
  |  Branch (443:17): [True: 367, False: 0]
  ------------------
  444|    367|                p = ogs_slprintf(p, last, " (%s:%d)", file, line);
  445|    367|            if (log->print.function)
  ------------------
  |  Branch (445:17): [True: 0, False: 367]
  ------------------
  446|      0|                p = ogs_slprintf(p, last, " %s()", func);
  447|    367|            if (log->print.linefeed) 
  ------------------
  |  Branch (447:17): [True: 367, False: 0]
  ------------------
  448|    367|                p = log_linefeed(p, last);
  449|    367|        }
  450|       |
  451|    734|        log->writer(log, level, logstr);
  452|       |        
  453|    734|        if (log->type == OGS_LOG_STDERR_TYPE)
  ------------------
  |  Branch (453:13): [True: 734, False: 0]
  ------------------
  454|    734|            wrote_stderr = 1;
  455|    734|    }
  456|       |
  457|    734|    if (!wrote_stderr)
  ------------------
  |  Branch (457:9): [True: 0, False: 734]
  ------------------
  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|    734|}
ogs_log_printf:
  486|   345k|{
  487|   345k|    va_list args;
  488|       |
  489|   345k|    va_start(args, format);
  490|   345k|    ogs_log_vprintf(level, id,
  491|   345k|            err, file, line, func, content_only, format, args);
  492|       |    va_end(args);
  493|   345k|}
ogs_log_hexdump_func:
  497|   113k|{
  498|   113k|    size_t n, m;
  499|   113k|    char dumpstr[OGS_HUGE_LEN];
  500|   113k|    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|   113k|    if (!len)
  ------------------
  |  Branch (506:9): [True: 24.1k, False: 89.2k]
  ------------------
  507|  24.1k|        return;
  508|       |
  509|  89.2k|    last = dumpstr + OGS_HUGE_LEN;
  ------------------
  |  |  210|  89.2k|#define OGS_HUGE_LEN                    8192  /* Can Stack */
  ------------------
  510|  89.2k|    p = dumpstr;
  511|       |
  512|   184k|    for (n = 0; n < len; n += 16) {
  ------------------
  |  Branch (512:17): [True: 95.4k, False: 89.2k]
  ------------------
  513|  95.4k|        p = ogs_slprintf(p, last, "%04x: ", (int)n);
  514|       |        
  515|  1.62M|        for (m = n; m < n + 16; m++) {
  ------------------
  |  Branch (515:21): [True: 1.52M, False: 95.4k]
  ------------------
  516|  1.52M|            if (m > n && (m % 4) == 0)
  ------------------
  |  Branch (516:17): [True: 1.43M, False: 95.4k]
  |  Branch (516:26): [True: 286k, False: 1.14M]
  ------------------
  517|   286k|                p = ogs_slprintf(p, last, " ");
  518|  1.52M|            if (m < len)
  ------------------
  |  Branch (518:17): [True: 212k, False: 1.31M]
  ------------------
  519|   212k|                p = ogs_slprintf(p, last, "%02x", data[m]);
  520|  1.31M|            else
  521|  1.31M|                p = ogs_slprintf(p, last, "  ");
  522|  1.52M|        }
  523|       |
  524|  95.4k|        p = ogs_slprintf(p, last, "   ");
  525|       |
  526|   308k|        for (m = n; m < len && m < n + 16; m++)
  ------------------
  |  Branch (526:21): [True: 218k, False: 89.2k]
  |  Branch (526:32): [True: 212k, False: 6.24k]
  ------------------
  527|   212k|            p = ogs_slprintf(p, last, "%c", isprint(data[m]) ? data[m] : '.');
  ------------------
  |  Branch (527:45): [True: 33.5k, False: 179k]
  ------------------
  528|       |
  529|  95.4k|        p = ogs_slprintf(p, last, "\n");
  530|  95.4k|    }
  531|       |
  532|       |    ogs_log_print(level, "%s", dumpstr);
  ------------------
  |  |   48|  89.2k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  ------------------
  |  |  |  |   32|  89.2k|#define OGS_LOG_DOMAIN      1
  |  |  ------------------
  |  |   49|  89.2k|    0, NULL, 0, NULL,  \
  |  |   50|  89.2k|    1, __VA_ARGS__) 
  ------------------
  533|  89.2k|}
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|    367|{
  572|    367|    struct timeval tv;
  573|    367|    struct tm tm;
  574|    367|    char nowstr[32];
  575|       |
  576|    367|    ogs_gettimeofday(&tv);
  577|    367|    ogs_localtime(tv.tv_sec, &tm);
  578|    367|    strftime(nowstr, sizeof nowstr, "%m/%d %H:%M:%S", &tm);
  579|       |
  580|    367|    buf = ogs_slprintf(buf, last, "%s%s.%03d%s: ",
  581|    367|            use_color ? TA_FGC_GREEN : "",
  ------------------
  |  |   37|    367|#define TA_FGC_GREEN        "\033[32m"      /* Green */
  ------------------
  |  Branch (581:13): [True: 367, False: 0]
  ------------------
  582|    367|            nowstr, (int)(tv.tv_usec/1000),
  583|    367|            use_color ? TA_NOR : "");
  ------------------
  |  |   32|    367|#define TA_NOR              "\033[0m"       /* all off */
  ------------------
  |  Branch (583:13): [True: 367, False: 0]
  ------------------
  584|       |
  585|    367|    return buf;
  586|    367|}
ogs-log.c:log_domain:
  590|    367|{
  591|    367|    buf = ogs_slprintf(buf, last, "[%s%s%s] ",
  592|    367|            use_color ? TA_FGC_YELLOW : "",
  ------------------
  |  |   39|    367|#define TA_FGC_YELLOW       "\033[33m"      /* Yellow */
  ------------------
  |  Branch (592:13): [True: 367, False: 0]
  ------------------
  593|    367|            name,
  594|    367|            use_color ? TA_NOR : "");
  ------------------
  |  |   32|    367|#define TA_NOR              "\033[0m"       /* all off */
  ------------------
  |  Branch (594:13): [True: 367, False: 0]
  ------------------
  595|       |
  596|    367|    return buf;
  597|    367|}
ogs-log.c:log_level:
  601|    367|{
  602|    367|    const char *colors[] = {
  603|    367|        TA_NOR,
  ------------------
  |  |   32|    367|#define TA_NOR              "\033[0m"       /* all off */
  ------------------
  604|    367|        TA_FGC_BOLD_RED, TA_FGC_BOLD_YELLOW, TA_FGC_BOLD_CYAN,
  ------------------
  |  |   36|    367|#define TA_FGC_BOLD_RED     "\033[1;31m"    /* Bold Red */
  ------------------
                      TA_FGC_BOLD_RED, TA_FGC_BOLD_YELLOW, TA_FGC_BOLD_CYAN,
  ------------------
  |  |   40|    367|#define TA_FGC_BOLD_YELLOW  "\033[1;33m"    /* Bold Yellow */
  ------------------
                      TA_FGC_BOLD_RED, TA_FGC_BOLD_YELLOW, TA_FGC_BOLD_CYAN,
  ------------------
  |  |   43|    367|#define TA_FGC_BOLD_CYAN    "\033[1;36m"    /* Bold Cyan */
  ------------------
  605|    367|        TA_FGC_BOLD_GREEN, TA_FGC_BOLD_WHITE, TA_FGC_WHITE,
  ------------------
  |  |   38|    367|#define TA_FGC_BOLD_GREEN   "\033[1;32m"    /* Bold Green */
  ------------------
                      TA_FGC_BOLD_GREEN, TA_FGC_BOLD_WHITE, TA_FGC_WHITE,
  ------------------
  |  |   45|    367|#define TA_FGC_BOLD_WHITE   "\033[1;37m"    /* Bold White  */
  ------------------
                      TA_FGC_BOLD_GREEN, TA_FGC_BOLD_WHITE, TA_FGC_WHITE,
  ------------------
  |  |   44|    367|#define TA_FGC_WHITE        "\033[37m"      /* White  */
  ------------------
  606|    367|    };
  607|       |
  608|    367|    buf = ogs_slprintf(buf, last, "%s%s%s: ",
  609|    367|            use_color ? colors[level] : "",
  ------------------
  |  Branch (609:13): [True: 367, False: 0]
  ------------------
  610|    367|            level_strings[level],
  611|    367|            use_color ? TA_NOR : "");
  ------------------
  |  |   32|    367|#define TA_NOR              "\033[0m"       /* all off */
  ------------------
  |  Branch (611:13): [True: 367, False: 0]
  ------------------
  612|       |
  613|    367|    return buf;
  614|    367|}
ogs-log.c:log_content:
  618|    734|{
  619|    734|    va_list bp;
  620|       |
  621|    734|    va_copy(bp, ap);
  622|    734|#pragma GCC diagnostic push
  623|    734|#pragma GCC diagnostic ignored "-Wformat-nonliteral"
  624|    734|    buf = ogs_vslprintf(buf, last, format, bp);
  625|    734|#pragma GCC diagnostic pop
  626|    734|    va_end(bp);
  627|       |
  628|    734|    return buf;
  629|    734|}
ogs-log.c:log_linefeed:
  632|    367|{
  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|    367|    if (buf > last - 2)
  ------------------
  |  Branch (639:9): [True: 0, False: 367]
  ------------------
  640|      0|        buf = last - 2;
  641|       |
  642|    367|    buf = ogs_slprintf(buf, last, "\n");
  643|    367|#endif
  644|       |
  645|    367|    return buf;
  646|    367|}
ogs-log.c:file_writer:
  650|    734|{
  651|    734|    fprintf(log->file.out, "%s", string);
  652|    734|    fflush(log->file.out);
  653|    734|}

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

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|  7.06k|{
   74|  7.06k|    void *ptr = NULL;
   75|       |
   76|  7.06k|    ogs_thread_mutex_lock(&mutex);
  ------------------
  |  |   38|  7.06k|#define ogs_thread_mutex_lock (void)pthread_mutex_lock
  ------------------
   77|       |
   78|  7.06k|    ptr = _talloc_zero(ctx, size, name);
   79|  7.06k|    ogs_expect(ptr);
  ------------------
  |  |  128|  7.06k|    do { \
  |  |  129|  7.06k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  7.06k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 7.06k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  130|  7.06k|        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|  7.06k|    } while (0)
  |  |  ------------------
  |  |  |  Branch (133:14): [Folded, False: 7.06k]
  |  |  ------------------
  ------------------
   80|       |
   81|  7.06k|    ogs_thread_mutex_unlock(&mutex);
  ------------------
  |  |   39|  7.06k|#define ogs_thread_mutex_unlock (void)pthread_mutex_unlock
  ------------------
   82|       |
   83|  7.06k|    return ptr;
   84|  7.06k|}
ogs_talloc_free:
  102|  7.05k|{
  103|  7.05k|    int ret;
  104|       |
  105|  7.05k|    ogs_thread_mutex_lock(&mutex);
  ------------------
  |  |   38|  7.05k|#define ogs_thread_mutex_lock (void)pthread_mutex_lock
  ------------------
  106|       |
  107|  7.05k|    ret = _talloc_free(ptr, location);
  108|       |
  109|  7.05k|    ogs_thread_mutex_unlock(&mutex);
  ------------------
  |  |   39|  7.05k|#define ogs_thread_mutex_unlock (void)pthread_mutex_unlock
  ------------------
  110|       |
  111|  7.05k|    return ret;
  112|  7.05k|}

ogs_pkbuf_put_data:
   91|  7.05k|{
   92|  7.05k|    void *tmp = ogs_pkbuf_put(pkbuf, len);
   93|       |
   94|  7.05k|    memcpy(tmp, data, len);
   95|  7.05k|    return tmp;
   96|  7.05k|}
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|  7.05k|{
  223|  7.05k|#if OGS_USE_TALLOC == 1
  224|  7.05k|    ogs_pkbuf_t *pkbuf = NULL;
  225|       |
  226|  7.05k|    pkbuf = ogs_talloc_zero_size(pool, sizeof(*pkbuf) + size, file_line);
  227|  7.05k|    if (!pkbuf) {
  ------------------
  |  Branch (227:9): [True: 0, False: 7.05k]
  ------------------
  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|  7.05k|    pkbuf->head = pkbuf->_data;
  233|  7.05k|    pkbuf->end = pkbuf->_data + size;
  234|       |
  235|  7.05k|    pkbuf->len = 0;
  236|       |
  237|  7.05k|    pkbuf->data = pkbuf->_data;
  238|  7.05k|    pkbuf->tail = pkbuf->_data;
  239|       |
  240|  7.05k|    pkbuf->file_line = file_line; /* For debug */
  241|       |
  242|  7.05k|    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|  7.05k|}
ogs_pkbuf_free:
  290|  7.05k|{
  291|  7.05k|#if OGS_USE_TALLOC == 1
  292|  7.05k|    ogs_talloc_free(pkbuf, OGS_FILE_LINE);
  ------------------
  |  |  213|  7.05k|#define OGS_FILE_LINE __FILE__ ":" OGS_STRINGIFY(__LINE__)
  |  |  ------------------
  |  |  |  |  167|  7.05k|#define OGS_STRINGIFY(n)            OGS_STRINGIFY_HELPER(n)
  |  |  |  |  ------------------
  |  |  |  |  |  |  168|  7.05k|#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|  7.05k|}

decoder.c:ogs_pkbuf_pull:
  165|   244k|{
  166|   244k|    return ogs_unlikely(len > pkbuf->len) ?
  ------------------
  |  |   55|   244k|#define ogs_unlikely(x) __builtin_expect (!!(x), 0)
  |  |  ------------------
  |  |  |  Branch (55:25): [True: 0, False: 244k]
  |  |  ------------------
  ------------------
  167|   244k|        NULL : ogs_pkbuf_pull_inline(pkbuf, len);
  168|   244k|}
decoder.c:ogs_pkbuf_pull_inline:
  159|   244k|{
  160|   244k|    pkbuf->len -= len;
  161|   244k|    return pkbuf->data += len;
  162|   244k|}
decoder.c:ogs_pkbuf_push:
  147|  40.5k|{
  148|  40.5k|    if (ogs_unlikely(ogs_pkbuf_headroom(pkbuf) < (int)len))
  ------------------
  |  |   55|  40.5k|#define ogs_unlikely(x) __builtin_expect (!!(x), 0)
  |  |  ------------------
  |  |  |  Branch (55:25): [True: 0, False: 40.5k]
  |  |  ------------------
  ------------------
  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.5k|    pkbuf->data -= len;
  152|  40.5k|    pkbuf->len += len;
  153|       |
  154|  40.5k|    return pkbuf->data;
  155|  40.5k|}
decoder.c:ogs_pkbuf_headroom:
  104|  40.5k|{
  105|  40.5k|    return pkbuf->data - pkbuf->head;
  106|  40.5k|}
ies.c:ogs_pkbuf_pull:
  165|   114k|{
  166|   114k|    return ogs_unlikely(len > pkbuf->len) ?
  ------------------
  |  |   55|   114k|#define ogs_unlikely(x) __builtin_expect (!!(x), 0)
  |  |  ------------------
  |  |  |  Branch (55:25): [True: 1.02k, False: 113k]
  |  |  ------------------
  ------------------
  167|   114k|        NULL : ogs_pkbuf_pull_inline(pkbuf, len);
  168|   114k|}
ies.c:ogs_pkbuf_pull_inline:
  159|   113k|{
  160|   113k|    pkbuf->len -= len;
  161|   113k|    return pkbuf->data += len;
  162|   113k|}
ogs-pkbuf.c:ogs_pkbuf_put:
  115|  7.05k|{
  116|  7.05k|    void *tmp = pkbuf->tail;
  117|       |
  118|  7.05k|    if (ogs_unlikely(ogs_pkbuf_tailroom(pkbuf) < (int)len))
  ------------------
  |  |   55|  7.05k|#define ogs_unlikely(x) __builtin_expect (!!(x), 0)
  |  |  ------------------
  |  |  |  Branch (55:25): [True: 0, False: 7.05k]
  |  |  ------------------
  ------------------
  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|  7.05k|    pkbuf->tail += len;
  122|  7.05k|    pkbuf->len += len;
  123|       |
  124|  7.05k|    return tmp;
  125|  7.05k|}
ogs-pkbuf.c:ogs_pkbuf_tailroom:
   99|  7.05k|{
  100|  7.05k|    return pkbuf->end - pkbuf->tail;
  101|  7.05k|}

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.31M|{
   64|  2.31M|    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.31M|    r = vsnprintf(str, size, format, ap);
   78|  2.31M|#endif
   79|  2.31M|    str[size-1] = '\0';
   80|       |
   81|  2.31M|    return r;
   82|  2.31M|}
ogs_vslprintf:
   97|  2.31M|{
   98|  2.31M|    int r = -1;
   99|       |
  100|  2.31M|    ogs_assert(last);
  ------------------
  |  |  113|  2.31M|    do { \
  |  |  114|  2.31M|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  2.31M|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 2.31M, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  2.31M|        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.31M|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 2.31M]
  |  |  ------------------
  ------------------
  101|       |
  102|  2.31M|    if (!str)
  ------------------
  |  Branch (102:9): [True: 0, False: 2.31M]
  ------------------
  103|      0|        return NULL;
  104|       |
  105|  2.31M|    if (str < last)
  ------------------
  |  Branch (105:9): [True: 2.31M, False: 0]
  ------------------
  106|  2.31M|        r = ogs_vsnprintf(str, last - str, format, ap);
  107|       |
  108|  2.31M|    return (str + r);
  109|  2.31M|}
ogs_slprintf:
  112|  2.31M|{
  113|  2.31M|    char *r;
  114|  2.31M|    va_list ap;
  115|       |
  116|  2.31M|    va_start(ap, format);
  117|  2.31M|    r = ogs_vslprintf(str, last, format, ap);
  118|  2.31M|    va_end(ap);
  119|       |
  120|  2.31M|    return r;
  121|  2.31M|}
ogs_cpystrn:
  124|    621|{
  125|    621|    char *d = dst, *end;
  126|       |
  127|    621|    if (dst_size == 0) {
  ------------------
  |  Branch (127:9): [True: 0, False: 621]
  ------------------
  128|      0|        return (dst);
  129|      0|    }
  130|       |
  131|    621|    if (src) {
  ------------------
  |  Branch (131:9): [True: 621, False: 0]
  ------------------
  132|    621|        end = dst + dst_size - 1;
  133|       |
  134|  1.44k|        for (; d < end; ++d, ++src) {
  ------------------
  |  Branch (134:16): [True: 1.22k, False: 227]
  ------------------
  135|  1.22k|            if (!(*d = *src)) {
  ------------------
  |  Branch (135:17): [True: 394, False: 828]
  ------------------
  136|    394|                return (d);
  137|    394|            }
  138|  1.22k|        }
  139|    621|    }
  140|       |
  141|    227|    *d = '\0';    /* always null terminate */
  142|       |
  143|    227|    return (d);
  144|    621|}

ogs_gettimeofday:
   74|    367|{
   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|    367|    int rc = gettimeofday(tv, NULL);
  115|    367|    ogs_assert(rc == 0);
  ------------------
  |  |  113|    367|    do { \
  |  |  114|    367|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    367|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 367, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    367|        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|    367|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 367]
  |  |  ------------------
  ------------------
  116|    367|    return 0;
  117|    367|#endif
  118|    367|}
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|    367|{
  277|    367|    ogs_assert(tm);
  ------------------
  |  |  113|    367|    do { \
  |  |  114|    367|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    367|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 367, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    367|        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|    367|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 367]
  |  |  ------------------
  ------------------
  278|    367|    memset(tm, 0, sizeof(*tm));
  279|       |
  280|    367|#if (HAVE_LOCALTIME_R)
  281|    367|    (void)localtime_r(&s, tm);
  282|       |#else
  283|       |    struct tm *t;
  284|       |
  285|       |    t = localtime(&s);
  286|       |    *tm = *t;
  287|       |#endif
  288|    367|}

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|    640|{
   80|    640|    ogs_nas_5gs_registration_request_t *registration_request = &message->gmm.registration_request;
   81|    640|    int decoded = 0;
   82|    640|    int size = 0;
   83|       |
   84|    640|    ogs_trace("[NAS] Decode REGISTRATION_REQUEST\n");
  ------------------
  |  |   40|    640|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    640|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    640|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    640|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    640|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    640|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
   85|       |
   86|    640|    size = ogs_nas_5gs_decode_5gs_registration_type(&registration_request->registration_type, pkbuf);
   87|    640|    if (size < 0) {
  ------------------
  |  Branch (87:9): [True: 0, False: 640]
  ------------------
   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|    640|    decoded += size;
   93|       |
   94|    640|    size = ogs_nas_5gs_decode_5gs_mobile_identity(&registration_request->mobile_identity, pkbuf);
   95|    640|    if (size < 0) {
  ------------------
  |  Branch (95:9): [True: 7, False: 633]
  ------------------
   96|      7|        ogs_error("ogs_nas_5gs_decode_5gs_mobile_identity() 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__) 
  |  |  ------------------
  ------------------
   97|      7|        return size;
   98|      7|    }
   99|       |
  100|    633|    decoded += size;
  101|       |
  102|  24.6k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (102:12): [True: 24.2k, False: 477]
  ------------------
  103|  24.2k|        uint8_t *buffer = pkbuf->data;
  104|  24.2k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (104:24): [True: 6.03k, False: 18.1k]
  ------------------
  105|       |
  106|  24.2k|        size = sizeof(uint8_t);
  107|  24.2k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (107:13): [True: 0, False: 24.2k]
  ------------------
  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|  24.2k|        decoded += size;
  112|       |
  113|  24.2k|        switch(type) {
  114|    697|        case OGS_NAS_5GS_REGISTRATION_REQUEST_NON_CURRENT_NATIVE_NAS_KEY_SET_IDENTIFIER_TYPE:
  ------------------
  |  |  163|    697|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NON_CURRENT_NATIVE_NAS_KEY_SET_IDENTIFIER_TYPE 0xC0
  ------------------
  |  Branch (114:9): [True: 697, False: 23.5k]
  ------------------
  115|    697|            decoded--;
  116|    697|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    697|    do { \
  |  |  114|    697|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    697|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 697, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    697|        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|    697|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 697]
  |  |  ------------------
  ------------------
  117|    697|            size = ogs_nas_5gs_decode_key_set_identifier(&registration_request->non_current_native_nas_key_set_identifier, pkbuf);
  118|    697|            if (size < 0) {
  ------------------
  |  Branch (118:17): [True: 0, False: 697]
  ------------------
  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|    697|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_NON_CURRENT_NATIVE_NAS_KEY_SET_IDENTIFIER_PRESENT;
  ------------------
  |  |  120|    697|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NON_CURRENT_NATIVE_NAS_KEY_SET_IDENTIFIER_PRESENT ((uint64_t)1<<0)
  ------------------
  124|    697|            decoded += size;
  125|    697|            break;
  126|    242|        case OGS_NAS_5GS_REGISTRATION_REQUEST_5GMM_CAPABILITY_TYPE:
  ------------------
  |  |  164|    242|#define OGS_NAS_5GS_REGISTRATION_REQUEST_5GMM_CAPABILITY_TYPE 0x10
  ------------------
  |  Branch (126:9): [True: 242, False: 23.9k]
  ------------------
  127|    242|            size = ogs_nas_5gs_decode_5gmm_capability(&registration_request->gmm_capability, pkbuf);
  128|    242|            if (size < 0) {
  ------------------
  |  Branch (128:17): [True: 6, False: 236]
  ------------------
  129|      6|               ogs_error("ogs_nas_5gs_decode_5gmm_capability() 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__) 
  |  |  ------------------
  ------------------
  130|      6|               return size;
  131|      6|            }
  132|       |
  133|    236|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_5GMM_CAPABILITY_PRESENT;
  ------------------
  |  |  121|    236|#define OGS_NAS_5GS_REGISTRATION_REQUEST_5GMM_CAPABILITY_PRESENT ((uint64_t)1<<1)
  ------------------
  134|    236|            decoded += size;
  135|    236|            break;
  136|    255|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UE_SECURITY_CAPABILITY_TYPE:
  ------------------
  |  |  165|    255|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_SECURITY_CAPABILITY_TYPE 0x2E
  ------------------
  |  Branch (136:9): [True: 255, False: 23.9k]
  ------------------
  137|    255|            size = ogs_nas_5gs_decode_ue_security_capability(&registration_request->ue_security_capability, pkbuf);
  138|    255|            if (size < 0) {
  ------------------
  |  Branch (138:17): [True: 2, False: 253]
  ------------------
  139|      2|               ogs_error("ogs_nas_5gs_decode_ue_security_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__) 
  |  |  ------------------
  ------------------
  140|      2|               return size;
  141|      2|            }
  142|       |
  143|    253|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UE_SECURITY_CAPABILITY_PRESENT;
  ------------------
  |  |  122|    253|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_SECURITY_CAPABILITY_PRESENT ((uint64_t)1<<2)
  ------------------
  144|    253|            decoded += size;
  145|    253|            break;
  146|    223|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NSSAI_TYPE:
  ------------------
  |  |  166|    223|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NSSAI_TYPE 0x2F
  ------------------
  |  Branch (146:9): [True: 223, False: 23.9k]
  ------------------
  147|    223|            size = ogs_nas_5gs_decode_nssai(&registration_request->requested_nssai, pkbuf);
  148|    223|            if (size < 0) {
  ------------------
  |  Branch (148:17): [True: 1, False: 222]
  ------------------
  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|    222|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NSSAI_PRESENT;
  ------------------
  |  |  123|    222|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NSSAI_PRESENT ((uint64_t)1<<3)
  ------------------
  154|    222|            decoded += size;
  155|    222|            break;
  156|    234|        case OGS_NAS_5GS_REGISTRATION_REQUEST_LAST_VISITED_REGISTERED_TAI_TYPE:
  ------------------
  |  |  167|    234|#define OGS_NAS_5GS_REGISTRATION_REQUEST_LAST_VISITED_REGISTERED_TAI_TYPE 0x52
  ------------------
  |  Branch (156:9): [True: 234, False: 23.9k]
  ------------------
  157|    234|            size = ogs_nas_5gs_decode_5gs_tracking_area_identity(&registration_request->last_visited_registered_tai, pkbuf);
  158|    234|            if (size < 0) {
  ------------------
  |  Branch (158:17): [True: 7, False: 227]
  ------------------
  159|      7|               ogs_error("ogs_nas_5gs_decode_5gs_tracking_area_identity() 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__) 
  |  |  ------------------
  ------------------
  160|      7|               return size;
  161|      7|            }
  162|       |
  163|    227|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_LAST_VISITED_REGISTERED_TAI_PRESENT;
  ------------------
  |  |  124|    227|#define OGS_NAS_5GS_REGISTRATION_REQUEST_LAST_VISITED_REGISTERED_TAI_PRESENT ((uint64_t)1<<4)
  ------------------
  164|    227|            decoded += size;
  165|    227|            break;
  166|    235|        case OGS_NAS_5GS_REGISTRATION_REQUEST_S1_UE_NETWORK_CAPABILITY_TYPE:
  ------------------
  |  |  168|    235|#define OGS_NAS_5GS_REGISTRATION_REQUEST_S1_UE_NETWORK_CAPABILITY_TYPE 0x17
  ------------------
  |  Branch (166:9): [True: 235, False: 23.9k]
  ------------------
  167|    235|            size = ogs_nas_5gs_decode_s1_ue_network_capability(&registration_request->s1_ue_network_capability, pkbuf);
  168|    235|            if (size < 0) {
  ------------------
  |  Branch (168:17): [True: 7, False: 228]
  ------------------
  169|      7|               ogs_error("ogs_nas_5gs_decode_s1_ue_network_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__) 
  |  |  ------------------
  ------------------
  170|      7|               return size;
  171|      7|            }
  172|       |
  173|    228|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_S1_UE_NETWORK_CAPABILITY_PRESENT;
  ------------------
  |  |  125|    228|#define OGS_NAS_5GS_REGISTRATION_REQUEST_S1_UE_NETWORK_CAPABILITY_PRESENT ((uint64_t)1<<5)
  ------------------
  174|    228|            decoded += size;
  175|    228|            break;
  176|    247|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UPLINK_DATA_STATUS_TYPE:
  ------------------
  |  |  169|    247|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UPLINK_DATA_STATUS_TYPE 0x40
  ------------------
  |  Branch (176:9): [True: 247, False: 23.9k]
  ------------------
  177|    247|            size = ogs_nas_5gs_decode_uplink_data_status(&registration_request->uplink_data_status, pkbuf);
  178|    247|            if (size < 0) {
  ------------------
  |  Branch (178:17): [True: 2, False: 245]
  ------------------
  179|      2|               ogs_error("ogs_nas_5gs_decode_uplink_data_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__) 
  |  |  ------------------
  ------------------
  180|      2|               return size;
  181|      2|            }
  182|       |
  183|    245|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UPLINK_DATA_STATUS_PRESENT;
  ------------------
  |  |  126|    245|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UPLINK_DATA_STATUS_PRESENT ((uint64_t)1<<6)
  ------------------
  184|    245|            decoded += size;
  185|    245|            break;
  186|    273|        case OGS_NAS_5GS_REGISTRATION_REQUEST_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  |  170|    273|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PDU_SESSION_STATUS_TYPE 0x50
  ------------------
  |  Branch (186:9): [True: 273, False: 23.9k]
  ------------------
  187|    273|            size = ogs_nas_5gs_decode_pdu_session_status(&registration_request->pdu_session_status, pkbuf);
  188|    273|            if (size < 0) {
  ------------------
  |  Branch (188:17): [True: 1, False: 272]
  ------------------
  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|    272|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  |  127|    272|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<7)
  ------------------
  194|    272|            decoded += size;
  195|    272|            break;
  196|    596|        case OGS_NAS_5GS_REGISTRATION_REQUEST_MICO_INDICATION_TYPE:
  ------------------
  |  |  171|    596|#define OGS_NAS_5GS_REGISTRATION_REQUEST_MICO_INDICATION_TYPE 0xB0
  ------------------
  |  Branch (196:9): [True: 596, False: 23.6k]
  ------------------
  197|    596|            decoded--;
  198|    596|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    596|    do { \
  |  |  114|    596|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    596|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 596, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    596|        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|    596|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 596]
  |  |  ------------------
  ------------------
  199|    596|            size = ogs_nas_5gs_decode_mico_indication(&registration_request->mico_indication, pkbuf);
  200|    596|            if (size < 0) {
  ------------------
  |  Branch (200:17): [True: 0, False: 596]
  ------------------
  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|    596|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_MICO_INDICATION_PRESENT;
  ------------------
  |  |  128|    596|#define OGS_NAS_5GS_REGISTRATION_REQUEST_MICO_INDICATION_PRESENT ((uint64_t)1<<8)
  ------------------
  206|    596|            decoded += size;
  207|    596|            break;
  208|    200|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UE_STATUS_TYPE:
  ------------------
  |  |  172|    200|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_STATUS_TYPE 0x2B
  ------------------
  |  Branch (208:9): [True: 200, False: 24.0k]
  ------------------
  209|    200|            size = ogs_nas_5gs_decode_ue_status(&registration_request->ue_status, pkbuf);
  210|    200|            if (size < 0) {
  ------------------
  |  Branch (210:17): [True: 4, False: 196]
  ------------------
  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|    196|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UE_STATUS_PRESENT;
  ------------------
  |  |  129|    196|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_STATUS_PRESENT ((uint64_t)1<<9)
  ------------------
  216|    196|            decoded += size;
  217|    196|            break;
  218|    214|        case OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_GUTI_TYPE:
  ------------------
  |  |  173|    214|#define OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_GUTI_TYPE 0x77
  ------------------
  |  Branch (218:9): [True: 214, False: 23.9k]
  ------------------
  219|    214|            size = ogs_nas_5gs_decode_5gs_mobile_identity(&registration_request->additional_guti, pkbuf);
  220|    214|            if (size < 0) {
  ------------------
  |  Branch (220:17): [True: 1, False: 213]
  ------------------
  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|    213|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_GUTI_PRESENT;
  ------------------
  |  |  130|    213|#define OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_GUTI_PRESENT ((uint64_t)1<<10)
  ------------------
  226|    213|            decoded += size;
  227|    213|            break;
  228|    225|        case OGS_NAS_5GS_REGISTRATION_REQUEST_ALLOWED_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  |  174|    225|#define OGS_NAS_5GS_REGISTRATION_REQUEST_ALLOWED_PDU_SESSION_STATUS_TYPE 0x25
  ------------------
  |  Branch (228:9): [True: 225, False: 23.9k]
  ------------------
  229|    225|            size = ogs_nas_5gs_decode_allowed_pdu_session_status(&registration_request->allowed_pdu_session_status, pkbuf);
  230|    225|            if (size < 0) {
  ------------------
  |  Branch (230:17): [True: 2, False: 223]
  ------------------
  231|      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__) 
  |  |  ------------------
  ------------------
  232|      2|               return size;
  233|      2|            }
  234|       |
  235|    223|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_ALLOWED_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  |  131|    223|#define OGS_NAS_5GS_REGISTRATION_REQUEST_ALLOWED_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<11)
  ------------------
  236|    223|            decoded += size;
  237|    223|            break;
  238|    212|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UE_USAGE_SETTING_TYPE:
  ------------------
  |  |  175|    212|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_USAGE_SETTING_TYPE 0x18
  ------------------
  |  Branch (238:9): [True: 212, False: 24.0k]
  ------------------
  239|    212|            size = ogs_nas_5gs_decode_ue_usage_setting(&registration_request->ue_usage_setting, pkbuf);
  240|    212|            if (size < 0) {
  ------------------
  |  Branch (240:17): [True: 7, False: 205]
  ------------------
  241|      7|               ogs_error("ogs_nas_5gs_decode_ue_usage_setting() 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__) 
  |  |  ------------------
  ------------------
  242|      7|               return size;
  243|      7|            }
  244|       |
  245|    205|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UE_USAGE_SETTING_PRESENT;
  ------------------
  |  |  132|    205|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_USAGE_SETTING_PRESENT ((uint64_t)1<<12)
  ------------------
  246|    205|            decoded += size;
  247|    205|            break;
  248|    203|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_DRX_PARAMETERS_TYPE:
  ------------------
  |  |  176|    203|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_DRX_PARAMETERS_TYPE 0x51
  ------------------
  |  Branch (248:9): [True: 203, False: 24.0k]
  ------------------
  249|    203|            size = ogs_nas_5gs_decode_5gs_drx_parameters(&registration_request->requested_drx_parameters, pkbuf);
  250|    203|            if (size < 0) {
  ------------------
  |  Branch (250:17): [True: 2, False: 201]
  ------------------
  251|      2|               ogs_error("ogs_nas_5gs_decode_5gs_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__) 
  |  |  ------------------
  ------------------
  252|      2|               return size;
  253|      2|            }
  254|       |
  255|    201|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_DRX_PARAMETERS_PRESENT;
  ------------------
  |  |  133|    201|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_DRX_PARAMETERS_PRESENT ((uint64_t)1<<13)
  ------------------
  256|    201|            decoded += size;
  257|    201|            break;
  258|    264|        case OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_NAS_MESSAGE_CONTAINER_TYPE:
  ------------------
  |  |  177|    264|#define OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_NAS_MESSAGE_CONTAINER_TYPE 0x70
  ------------------
  |  Branch (258:9): [True: 264, False: 23.9k]
  ------------------
  259|    264|            size = ogs_nas_5gs_decode_eps_nas_message_container(&registration_request->eps_nas_message_container, pkbuf);
  260|    264|            if (size < 0) {
  ------------------
  |  Branch (260:17): [True: 30, False: 234]
  ------------------
  261|     30|               ogs_error("ogs_nas_5gs_decode_eps_nas_message_container() 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__) 
  |  |  ------------------
  ------------------
  262|     30|               return size;
  263|     30|            }
  264|       |
  265|    234|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_NAS_MESSAGE_CONTAINER_PRESENT;
  ------------------
  |  |  134|    234|#define OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_NAS_MESSAGE_CONTAINER_PRESENT ((uint64_t)1<<14)
  ------------------
  266|    234|            decoded += size;
  267|    234|            break;
  268|    216|        case OGS_NAS_5GS_REGISTRATION_REQUEST_LADN_INDICATION_TYPE:
  ------------------
  |  |  178|    216|#define OGS_NAS_5GS_REGISTRATION_REQUEST_LADN_INDICATION_TYPE 0x74
  ------------------
  |  Branch (268:9): [True: 216, False: 23.9k]
  ------------------
  269|    216|            size = ogs_nas_5gs_decode_ladn_indication(&registration_request->ladn_indication, pkbuf);
  270|    216|            if (size < 0) {
  ------------------
  |  Branch (270:17): [True: 11, False: 205]
  ------------------
  271|     11|               ogs_error("ogs_nas_5gs_decode_ladn_indication() 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__) 
  |  |  ------------------
  ------------------
  272|     11|               return size;
  273|     11|            }
  274|       |
  275|    205|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_LADN_INDICATION_PRESENT;
  ------------------
  |  |  135|    205|#define OGS_NAS_5GS_REGISTRATION_REQUEST_LADN_INDICATION_PRESENT ((uint64_t)1<<15)
  ------------------
  276|    205|            decoded += size;
  277|    205|            break;
  278|    588|        case OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_TYPE_TYPE:
  ------------------
  |  |  179|    588|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_TYPE_TYPE 0x80
  ------------------
  |  Branch (278:9): [True: 588, False: 23.6k]
  ------------------
  279|    588|            decoded--;
  280|    588|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    588|    do { \
  |  |  114|    588|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    588|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 588, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    588|        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|    588|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 588]
  |  |  ------------------
  ------------------
  281|    588|            size = ogs_nas_5gs_decode_payload_container_type(&registration_request->payload_container_type, pkbuf);
  282|    588|            if (size < 0) {
  ------------------
  |  Branch (282:17): [True: 0, False: 588]
  ------------------
  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|    588|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_TYPE_PRESENT;
  ------------------
  |  |  136|    588|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_TYPE_PRESENT ((uint64_t)1<<16)
  ------------------
  288|    588|            decoded += size;
  289|    588|            break;
  290|    235|        case OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_TYPE:
  ------------------
  |  |  180|    235|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_TYPE 0x7B
  ------------------
  |  Branch (290:9): [True: 235, False: 23.9k]
  ------------------
  291|    235|            size = ogs_nas_5gs_decode_payload_container(&registration_request->payload_container, pkbuf);
  292|    235|            if (size < 0) {
  ------------------
  |  Branch (292:17): [True: 1, False: 234]
  ------------------
  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|    234|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_PRESENT;
  ------------------
  |  |  137|    234|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_PRESENT ((uint64_t)1<<17)
  ------------------
  298|    234|            decoded += size;
  299|    234|            break;
  300|    393|        case OGS_NAS_5GS_REGISTRATION_REQUEST_NETWORK_SLICING_INDICATION_TYPE:
  ------------------
  |  |  181|    393|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NETWORK_SLICING_INDICATION_TYPE 0x90
  ------------------
  |  Branch (300:9): [True: 393, False: 23.8k]
  ------------------
  301|    393|            decoded--;
  302|    393|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    393|    do { \
  |  |  114|    393|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    393|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 393, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    393|        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|    393|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 393]
  |  |  ------------------
  ------------------
  303|    393|            size = ogs_nas_5gs_decode_network_slicing_indication(&registration_request->network_slicing_indication, pkbuf);
  304|    393|            if (size < 0) {
  ------------------
  |  Branch (304:17): [True: 0, False: 393]
  ------------------
  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|    393|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_NETWORK_SLICING_INDICATION_PRESENT;
  ------------------
  |  |  138|    393|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NETWORK_SLICING_INDICATION_PRESENT ((uint64_t)1<<18)
  ------------------
  310|    393|            decoded += size;
  311|    393|            break;
  312|    218|        case OGS_NAS_5GS_REGISTRATION_REQUEST_5GS_UPDATE_TYPE_TYPE:
  ------------------
  |  |  182|    218|#define OGS_NAS_5GS_REGISTRATION_REQUEST_5GS_UPDATE_TYPE_TYPE 0x53
  ------------------
  |  Branch (312:9): [True: 218, False: 23.9k]
  ------------------
  313|    218|            size = ogs_nas_5gs_decode_5gs_update_type(&registration_request->update_type, pkbuf);
  314|    218|            if (size < 0) {
  ------------------
  |  Branch (314:17): [True: 3, False: 215]
  ------------------
  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|    215|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_5GS_UPDATE_TYPE_PRESENT;
  ------------------
  |  |  139|    215|#define OGS_NAS_5GS_REGISTRATION_REQUEST_5GS_UPDATE_TYPE_PRESENT ((uint64_t)1<<19)
  ------------------
  320|    215|            decoded += size;
  321|    215|            break;
  322|    251|        case OGS_NAS_5GS_REGISTRATION_REQUEST_MOBILE_STATION_CLASSMARK_2_TYPE:
  ------------------
  |  |  183|    251|#define OGS_NAS_5GS_REGISTRATION_REQUEST_MOBILE_STATION_CLASSMARK_2_TYPE 0x41
  ------------------
  |  Branch (322:9): [True: 251, False: 23.9k]
  ------------------
  323|    251|            size = ogs_nas_5gs_decode_mobile_station_classmark_2(&registration_request->mobile_station_classmark_2, pkbuf);
  324|    251|            if (size < 0) {
  ------------------
  |  Branch (324:17): [True: 6, False: 245]
  ------------------
  325|      6|               ogs_error("ogs_nas_5gs_decode_mobile_station_classmark_2() 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__) 
  |  |  ------------------
  ------------------
  326|      6|               return size;
  327|      6|            }
  328|       |
  329|    245|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_MOBILE_STATION_CLASSMARK_2_PRESENT;
  ------------------
  |  |  140|    245|#define OGS_NAS_5GS_REGISTRATION_REQUEST_MOBILE_STATION_CLASSMARK_2_PRESENT ((uint64_t)1<<20)
  ------------------
  330|    245|            decoded += size;
  331|    245|            break;
  332|    217|        case OGS_NAS_5GS_REGISTRATION_REQUEST_SUPPORTED_CODECS_TYPE:
  ------------------
  |  |  184|    217|#define OGS_NAS_5GS_REGISTRATION_REQUEST_SUPPORTED_CODECS_TYPE 0x42
  ------------------
  |  Branch (332:9): [True: 217, False: 23.9k]
  ------------------
  333|    217|            size = ogs_nas_5gs_decode_supported_codec_list(&registration_request->supported_codecs, pkbuf);
  334|    217|            if (size < 0) {
  ------------------
  |  Branch (334:17): [True: 3, False: 214]
  ------------------
  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|    214|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_SUPPORTED_CODECS_PRESENT;
  ------------------
  |  |  141|    214|#define OGS_NAS_5GS_REGISTRATION_REQUEST_SUPPORTED_CODECS_PRESENT ((uint64_t)1<<21)
  ------------------
  340|    214|            decoded += size;
  341|    214|            break;
  342|    311|        case OGS_NAS_5GS_REGISTRATION_REQUEST_NAS_MESSAGE_CONTAINER_TYPE:
  ------------------
  |  |  185|    311|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NAS_MESSAGE_CONTAINER_TYPE 0x71
  ------------------
  |  Branch (342:9): [True: 311, False: 23.9k]
  ------------------
  343|    311|            size = ogs_nas_5gs_decode_message_container(&registration_request->nas_message_container, pkbuf);
  344|    311|            if (size < 0) {
  ------------------
  |  Branch (344:17): [True: 2, False: 309]
  ------------------
  345|      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__) 
  |  |  ------------------
  ------------------
  346|      2|               return size;
  347|      2|            }
  348|       |
  349|    309|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_NAS_MESSAGE_CONTAINER_PRESENT;
  ------------------
  |  |  142|    309|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NAS_MESSAGE_CONTAINER_PRESENT ((uint64_t)1<<22)
  ------------------
  350|    309|            decoded += size;
  351|    309|            break;
  352|    213|        case OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_BEARER_CONTEXT_STATUS_TYPE:
  ------------------
  |  |  186|    213|#define OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_BEARER_CONTEXT_STATUS_TYPE 0x60
  ------------------
  |  Branch (352:9): [True: 213, False: 24.0k]
  ------------------
  353|    213|            size = ogs_nas_5gs_decode_eps_bearer_context_status(&registration_request->eps_bearer_context_status, pkbuf);
  354|    213|            if (size < 0) {
  ------------------
  |  Branch (354:17): [True: 2, False: 211]
  ------------------
  355|      2|               ogs_error("ogs_nas_5gs_decode_eps_bearer_context_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__) 
  |  |  ------------------
  ------------------
  356|      2|               return size;
  357|      2|            }
  358|       |
  359|    211|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_BEARER_CONTEXT_STATUS_PRESENT;
  ------------------
  |  |  143|    211|#define OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_BEARER_CONTEXT_STATUS_PRESENT ((uint64_t)1<<23)
  ------------------
  360|    211|            decoded += size;
  361|    211|            break;
  362|    208|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_EXTENDED_DRX_PARAMETERS_TYPE:
  ------------------
  |  |  187|    208|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_EXTENDED_DRX_PARAMETERS_TYPE 0x6E
  ------------------
  |  Branch (362:9): [True: 208, False: 24.0k]
  ------------------
  363|    208|            size = ogs_nas_5gs_decode_extended_drx_parameters(&registration_request->requested_extended_drx_parameters, pkbuf);
  364|    208|            if (size < 0) {
  ------------------
  |  Branch (364:17): [True: 1, False: 207]
  ------------------
  365|      1|               ogs_error("ogs_nas_5gs_decode_extended_drx_parameters() 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__) 
  |  |  ------------------
  ------------------
  366|      1|               return size;
  367|      1|            }
  368|       |
  369|    207|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_EXTENDED_DRX_PARAMETERS_PRESENT;
  ------------------
  |  |  144|    207|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_EXTENDED_DRX_PARAMETERS_PRESENT ((uint64_t)1<<24)
  ------------------
  370|    207|            decoded += size;
  371|    207|            break;
  372|    203|        case OGS_NAS_5GS_REGISTRATION_REQUEST_T3324_VALUE_TYPE:
  ------------------
  |  |  188|    203|#define OGS_NAS_5GS_REGISTRATION_REQUEST_T3324_VALUE_TYPE 0x6A
  ------------------
  |  Branch (372:9): [True: 203, False: 24.0k]
  ------------------
  373|    203|            size = ogs_nas_5gs_decode_gprs_timer_3(&registration_request->t3324_value, pkbuf);
  374|    203|            if (size < 0) {
  ------------------
  |  Branch (374:17): [True: 3, False: 200]
  ------------------
  375|      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__) 
  |  |  ------------------
  ------------------
  376|      3|               return size;
  377|      3|            }
  378|       |
  379|    200|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_T3324_VALUE_PRESENT;
  ------------------
  |  |  145|    200|#define OGS_NAS_5GS_REGISTRATION_REQUEST_T3324_VALUE_PRESENT ((uint64_t)1<<25)
  ------------------
  380|    200|            decoded += size;
  381|    200|            break;
  382|    226|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UE_RADIO_CAPABILITY_ID_TYPE:
  ------------------
  |  |  189|    226|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_RADIO_CAPABILITY_ID_TYPE 0x67
  ------------------
  |  Branch (382:9): [True: 226, False: 23.9k]
  ------------------
  383|    226|            size = ogs_nas_5gs_decode_ue_radio_capability_id(&registration_request->ue_radio_capability_id, pkbuf);
  384|    226|            if (size < 0) {
  ------------------
  |  Branch (384:17): [True: 1, False: 225]
  ------------------
  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|    225|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UE_RADIO_CAPABILITY_ID_PRESENT;
  ------------------
  |  |  146|    225|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_RADIO_CAPABILITY_ID_PRESENT ((uint64_t)1<<26)
  ------------------
  390|    225|            decoded += size;
  391|    225|            break;
  392|    219|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_MAPPED_NSSAI_TYPE:
  ------------------
  |  |  190|    219|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_MAPPED_NSSAI_TYPE 0x35
  ------------------
  |  Branch (392:9): [True: 219, False: 23.9k]
  ------------------
  393|    219|            size = ogs_nas_5gs_decode_mapped_nssai(&registration_request->requested_mapped_nssai, pkbuf);
  394|    219|            if (size < 0) {
  ------------------
  |  Branch (394:17): [True: 3, False: 216]
  ------------------
  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|    216|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_MAPPED_NSSAI_PRESENT;
  ------------------
  |  |  147|    216|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_MAPPED_NSSAI_PRESENT ((uint64_t)1<<27)
  ------------------
  400|    216|            decoded += size;
  401|    216|            break;
  402|    233|        case OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_INFORMATION_REQUESTED_TYPE:
  ------------------
  |  |  191|    233|#define OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_INFORMATION_REQUESTED_TYPE 0x48
  ------------------
  |  Branch (402:9): [True: 233, False: 23.9k]
  ------------------
  403|    233|            size = ogs_nas_5gs_decode_additional_information_requested(&registration_request->additional_information_requested, pkbuf);
  404|    233|            if (size < 0) {
  ------------------
  |  Branch (404:17): [True: 4, False: 229]
  ------------------
  405|      4|               ogs_error("ogs_nas_5gs_decode_additional_information_requested() 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__) 
  |  |  ------------------
  ------------------
  406|      4|               return size;
  407|      4|            }
  408|       |
  409|    229|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_INFORMATION_REQUESTED_PRESENT;
  ------------------
  |  |  148|    229|#define OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_INFORMATION_REQUESTED_PRESENT ((uint64_t)1<<28)
  ------------------
  410|    229|            decoded += size;
  411|    229|            break;
  412|    204|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_WUS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  192|    204|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_WUS_ASSISTANCE_INFORMATION_TYPE 0x1A
  ------------------
  |  Branch (412:9): [True: 204, False: 24.0k]
  ------------------
  413|    204|            size = ogs_nas_5gs_decode_wus_assistance_information(&registration_request->requested_wus_assistance_information, pkbuf);
  414|    204|            if (size < 0) {
  ------------------
  |  Branch (414:17): [True: 1, False: 203]
  ------------------
  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|    203|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_WUS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  149|    203|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_WUS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<29)
  ------------------
  420|    203|            decoded += size;
  421|    203|            break;
  422|  1.04k|        case OGS_NAS_5GS_REGISTRATION_REQUEST_N5GC_INDICATION_TYPE:
  ------------------
  |  |  193|  1.04k|#define OGS_NAS_5GS_REGISTRATION_REQUEST_N5GC_INDICATION_TYPE 0xA0
  ------------------
  |  Branch (422:9): [True: 1.04k, False: 23.1k]
  ------------------
  423|  1.04k|            decoded--;
  424|  1.04k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.04k|    do { \
  |  |  114|  1.04k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.04k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.04k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.04k|        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.04k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.04k]
  |  |  ------------------
  ------------------
  425|  1.04k|            size = ogs_nas_5gs_decode_n5gc_indication(&registration_request->n5gc_indication, pkbuf);
  426|  1.04k|            if (size < 0) {
  ------------------
  |  Branch (426:17): [True: 0, False: 1.04k]
  ------------------
  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|  1.04k|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_N5GC_INDICATION_PRESENT;
  ------------------
  |  |  150|  1.04k|#define OGS_NAS_5GS_REGISTRATION_REQUEST_N5GC_INDICATION_PRESENT ((uint64_t)1<<30)
  ------------------
  432|  1.04k|            decoded += size;
  433|  1.04k|            break;
  434|    200|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NB_N1_MODE_DRX_PARAMETERS_TYPE:
  ------------------
  |  |  194|    200|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NB_N1_MODE_DRX_PARAMETERS_TYPE 0x30
  ------------------
  |  Branch (434:9): [True: 200, False: 24.0k]
  ------------------
  435|    200|            size = ogs_nas_5gs_decode_nb_n1_mode_drx_parameters(&registration_request->requested_nb_n1_mode_drx_parameters, pkbuf);
  436|    200|            if (size < 0) {
  ------------------
  |  Branch (436:17): [True: 1, False: 199]
  ------------------
  437|      1|               ogs_error("ogs_nas_5gs_decode_nb_n1_mode_drx_parameters() 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__) 
  |  |  ------------------
  ------------------
  438|      1|               return size;
  439|      1|            }
  440|       |
  441|    199|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NB_N1_MODE_DRX_PARAMETERS_PRESENT;
  ------------------
  |  |  151|    199|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NB_N1_MODE_DRX_PARAMETERS_PRESENT ((uint64_t)1<<31)
  ------------------
  442|    199|            decoded += size;
  443|    199|            break;
  444|    216|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UE_REQUEST_TYPE_TYPE:
  ------------------
  |  |  195|    216|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_REQUEST_TYPE_TYPE 0x29
  ------------------
  |  Branch (444:9): [True: 216, False: 23.9k]
  ------------------
  445|    216|            size = ogs_nas_5gs_decode_ue_request_type(&registration_request->ue_request_type, pkbuf);
  446|    216|            if (size < 0) {
  ------------------
  |  Branch (446:17): [True: 2, False: 214]
  ------------------
  447|      2|               ogs_error("ogs_nas_5gs_decode_ue_request_type() 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__) 
  |  |  ------------------
  ------------------
  448|      2|               return size;
  449|      2|            }
  450|       |
  451|    214|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UE_REQUEST_TYPE_PRESENT;
  ------------------
  |  |  152|    214|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_REQUEST_TYPE_PRESENT ((uint64_t)1<<32)
  ------------------
  452|    214|            decoded += size;
  453|    214|            break;
  454|    237|        case OGS_NAS_5GS_REGISTRATION_REQUEST_PAGING_RESTRICTION_TYPE:
  ------------------
  |  |  196|    237|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PAGING_RESTRICTION_TYPE 0x28
  ------------------
  |  Branch (454:9): [True: 237, False: 23.9k]
  ------------------
  455|    237|            size = ogs_nas_5gs_decode_paging_restriction(&registration_request->paging_restriction, pkbuf);
  456|    237|            if (size < 0) {
  ------------------
  |  Branch (456:17): [True: 8, False: 229]
  ------------------
  457|      8|               ogs_error("ogs_nas_5gs_decode_paging_restriction() 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__) 
  |  |  ------------------
  ------------------
  458|      8|               return size;
  459|      8|            }
  460|       |
  461|    229|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_PAGING_RESTRICTION_PRESENT;
  ------------------
  |  |  153|    229|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PAGING_RESTRICTION_PRESENT ((uint64_t)1<<33)
  ------------------
  462|    229|            decoded += size;
  463|    229|            break;
  464|    212|        case OGS_NAS_5GS_REGISTRATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  |  197|    212|#define OGS_NAS_5GS_REGISTRATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (464:9): [True: 212, False: 24.0k]
  ------------------
  465|    212|            size = ogs_nas_5gs_decode_service_level_aa_container(&registration_request->service_level_aa_container, pkbuf);
  466|    212|            if (size < 0) {
  ------------------
  |  Branch (466:17): [True: 1, False: 211]
  ------------------
  467|      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__) 
  |  |  ------------------
  ------------------
  468|      1|               return size;
  469|      1|            }
  470|       |
  471|    211|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  |  154|    211|#define OGS_NAS_5GS_REGISTRATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<34)
  ------------------
  472|    211|            decoded += size;
  473|    211|            break;
  474|    213|        case OGS_NAS_5GS_REGISTRATION_REQUEST_NID_TYPE:
  ------------------
  |  |  198|    213|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NID_TYPE 0x32
  ------------------
  |  Branch (474:9): [True: 213, False: 24.0k]
  ------------------
  475|    213|            size = ogs_nas_5gs_decode_nid(&registration_request->nid, pkbuf);
  476|    213|            if (size < 0) {
  ------------------
  |  Branch (476:17): [True: 3, False: 210]
  ------------------
  477|      3|               ogs_error("ogs_nas_5gs_decode_nid() 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__) 
  |  |  ------------------
  ------------------
  478|      3|               return size;
  479|      3|            }
  480|       |
  481|    210|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_NID_PRESENT;
  ------------------
  |  |  155|    210|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NID_PRESENT ((uint64_t)1<<35)
  ------------------
  482|    210|            decoded += size;
  483|    210|            break;
  484|    355|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UE_DETERMINED_PLMN_WITH_DISASTER_CONDITION_TYPE:
  ------------------
  |  |  199|    355|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_DETERMINED_PLMN_WITH_DISASTER_CONDITION_TYPE 0x16
  ------------------
  |  Branch (484:9): [True: 355, False: 23.8k]
  ------------------
  485|    355|            size = ogs_nas_5gs_decode_plmn_identity(&registration_request->ue_determined_plmn_with_disaster_condition, pkbuf);
  486|    355|            if (size < 0) {
  ------------------
  |  Branch (486:17): [True: 7, False: 348]
  ------------------
  487|      7|               ogs_error("ogs_nas_5gs_decode_plmn_identity() 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__) 
  |  |  ------------------
  ------------------
  488|      7|               return size;
  489|      7|            }
  490|       |
  491|    348|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UE_DETERMINED_PLMN_WITH_DISASTER_CONDITION_PRESENT;
  ------------------
  |  |  156|    348|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_DETERMINED_PLMN_WITH_DISASTER_CONDITION_PRESENT ((uint64_t)1<<36)
  ------------------
  492|    348|            decoded += size;
  493|    348|            break;
  494|    210|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_PEIPS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  200|    210|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_PEIPS_ASSISTANCE_INFORMATION_TYPE 0x2A
  ------------------
  |  Branch (494:9): [True: 210, False: 24.0k]
  ------------------
  495|    210|            size = ogs_nas_5gs_decode_peips_assistance_information(&registration_request->requested_peips_assistance_information, pkbuf);
  496|    210|            if (size < 0) {
  ------------------
  |  Branch (496:17): [True: 1, False: 209]
  ------------------
  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|    209|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_PEIPS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  157|    209|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_PEIPS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<37)
  ------------------
  502|    209|            decoded += size;
  503|    209|            break;
  504|    198|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_T3512_VALUE_TYPE:
  ------------------
  |  |  201|    198|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_T3512_VALUE_TYPE 0x3B
  ------------------
  |  Branch (504:9): [True: 198, False: 24.0k]
  ------------------
  505|    198|            size = ogs_nas_5gs_decode_gprs_timer_3(&registration_request->requested_t3512_value, pkbuf);
  506|    198|            if (size < 0) {
  ------------------
  |  Branch (506:17): [True: 1, False: 197]
  ------------------
  507|      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__) 
  |  |  ------------------
  ------------------
  508|      1|               return size;
  509|      1|            }
  510|       |
  511|    197|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_T3512_VALUE_PRESENT;
  ------------------
  |  |  158|    197|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_T3512_VALUE_PRESENT ((uint64_t)1<<38)
  ------------------
  512|    197|            decoded += size;
  513|    197|            break;
  514|    225|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UNAVAILABILITY_INFORMATION_TYPE:
  ------------------
  |  |  202|    225|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UNAVAILABILITY_INFORMATION_TYPE 0x3C
  ------------------
  |  Branch (514:9): [True: 225, False: 23.9k]
  ------------------
  515|    225|            size = ogs_nas_5gs_decode_unavailability_information(&registration_request->unavailability_information, pkbuf);
  516|    225|            if (size < 0) {
  ------------------
  |  Branch (516:17): [True: 4, False: 221]
  ------------------
  517|      4|               ogs_error("ogs_nas_5gs_decode_unavailability_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__) 
  |  |  ------------------
  ------------------
  518|      4|               return size;
  519|      4|            }
  520|       |
  521|    221|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UNAVAILABILITY_INFORMATION_PRESENT;
  ------------------
  |  |  159|    221|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UNAVAILABILITY_INFORMATION_PRESENT ((uint64_t)1<<39)
  ------------------
  522|    221|            decoded += size;
  523|    221|            break;
  524|    234|        case OGS_NAS_5GS_REGISTRATION_REQUEST_NON_3GPP_PATH_SWITCHING_INFORMATION_TYPE:
  ------------------
  |  |  203|    234|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NON_3GPP_PATH_SWITCHING_INFORMATION_TYPE 0x3F
  ------------------
  |  Branch (524:9): [True: 234, False: 23.9k]
  ------------------
  525|    234|            size = ogs_nas_5gs_decode_non_3gpp_path_switching_information(&registration_request->non_3gpp_path_switching_information, pkbuf);
  526|    234|            if (size < 0) {
  ------------------
  |  Branch (526:17): [True: 7, False: 227]
  ------------------
  527|      7|               ogs_error("ogs_nas_5gs_decode_non_3gpp_path_switching_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__) 
  |  |  ------------------
  ------------------
  528|      7|               return size;
  529|      7|            }
  530|       |
  531|    227|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_NON_3GPP_PATH_SWITCHING_INFORMATION_PRESENT;
  ------------------
  |  |  160|    227|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NON_3GPP_PATH_SWITCHING_INFORMATION_PRESENT ((uint64_t)1<<40)
  ------------------
  532|    227|            decoded += size;
  533|    227|            break;
  534|    213|        case OGS_NAS_5GS_REGISTRATION_REQUEST_AUN3_INDICATION_TYPE:
  ------------------
  |  |  204|    213|#define OGS_NAS_5GS_REGISTRATION_REQUEST_AUN3_INDICATION_TYPE 0x56
  ------------------
  |  Branch (534:9): [True: 213, False: 24.0k]
  ------------------
  535|    213|            size = ogs_nas_5gs_decode_aun3_indication(&registration_request->aun3_indication, pkbuf);
  536|    213|            if (size < 0) {
  ------------------
  |  Branch (536:17): [True: 6, False: 207]
  ------------------
  537|      6|               ogs_error("ogs_nas_5gs_decode_aun3_indication() 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__) 
  |  |  ------------------
  ------------------
  538|      6|               return size;
  539|      6|            }
  540|       |
  541|    207|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_AUN3_INDICATION_PRESENT;
  ------------------
  |  |  161|    207|#define OGS_NAS_5GS_REGISTRATION_REQUEST_AUN3_INDICATION_PRESENT ((uint64_t)1<<41)
  ------------------
  542|    207|            decoded += size;
  543|    207|            break;
  544|    207|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_LP_WUSPS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  205|    207|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_LP_WUSPS_ASSISTANCE_INFORMATION_TYPE 0x64
  ------------------
  |  Branch (544:9): [True: 207, False: 24.0k]
  ------------------
  545|    207|            size = ogs_nas_5gs_decode_lp_wusps_assistance_information(&registration_request->requested_lp_wusps_assistance_information, pkbuf);
  546|    207|            if (size < 0) {
  ------------------
  |  Branch (546:17): [True: 2, False: 205]
  ------------------
  547|      2|               ogs_error("ogs_nas_5gs_decode_lp_wusps_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__) 
  |  |  ------------------
  ------------------
  548|      2|               return size;
  549|      2|            }
  550|       |
  551|    205|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_LP_WUSPS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  162|    205|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_LP_WUSPS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<42)
  ------------------
  552|    205|            decoded += size;
  553|    205|            break;
  554|  12.1k|        default:
  ------------------
  |  Branch (554:9): [True: 12.1k, False: 12.0k]
  ------------------
  555|  12.1k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  12.1k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  12.1k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  12.1k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  12.1k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  12.1k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  12.1k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  556|  12.1k|            break;
  557|  24.2k|        }
  558|  24.2k|    }
  559|       |
  560|    477|    return decoded;
  561|    633|}
ogs_nas_5gs_decode_registration_accept:
  564|    980|{
  565|    980|    ogs_nas_5gs_registration_accept_t *registration_accept = &message->gmm.registration_accept;
  566|    980|    int decoded = 0;
  567|    980|    int size = 0;
  568|       |
  569|    980|    ogs_trace("[NAS] Decode REGISTRATION_ACCEPT\n");
  ------------------
  |  |   40|    980|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    980|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    980|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    980|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    980|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    980|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  570|       |
  571|    980|    size = ogs_nas_5gs_decode_5gs_registration_result(&registration_accept->registration_result, pkbuf);
  572|    980|    if (size < 0) {
  ------------------
  |  Branch (572:9): [True: 9, False: 971]
  ------------------
  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|    971|    decoded += size;
  578|       |
  579|  28.7k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (579:12): [True: 27.9k, False: 721]
  ------------------
  580|  27.9k|        uint8_t *buffer = pkbuf->data;
  581|  27.9k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (581:24): [True: 6.57k, False: 21.4k]
  ------------------
  582|       |
  583|  27.9k|        size = sizeof(uint8_t);
  584|  27.9k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (584:13): [True: 0, False: 27.9k]
  ------------------
  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|  27.9k|        decoded += size;
  589|       |
  590|  27.9k|        switch(type) {
  591|    224|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_5G_GUTI_TYPE:
  ------------------
  |  |  326|    224|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_5G_GUTI_TYPE 0x77
  ------------------
  |  Branch (591:9): [True: 224, False: 27.7k]
  ------------------
  592|    224|            size = ogs_nas_5gs_decode_5gs_mobile_identity(&registration_accept->guti, pkbuf);
  593|    224|            if (size < 0) {
  ------------------
  |  Branch (593:17): [True: 1, False: 223]
  ------------------
  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|    223|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_5G_GUTI_PRESENT;
  ------------------
  |  |  263|    223|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_5G_GUTI_PRESENT ((uint64_t)1<<0)
  ------------------
  599|    223|            decoded += size;
  600|    223|            break;
  601|    215|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_PLMNS_TYPE:
  ------------------
  |  |  327|    215|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_PLMNS_TYPE 0x4A
  ------------------
  |  Branch (601:9): [True: 215, False: 27.7k]
  ------------------
  602|    215|            size = ogs_nas_5gs_decode_plmn_list(&registration_accept->equivalent_plmns, pkbuf);
  603|    215|            if (size < 0) {
  ------------------
  |  Branch (603:17): [True: 8, False: 207]
  ------------------
  604|      8|               ogs_error("ogs_nas_5gs_decode_plmn_list() 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__) 
  |  |  ------------------
  ------------------
  605|      8|               return size;
  606|      8|            }
  607|       |
  608|    207|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_PLMNS_PRESENT;
  ------------------
  |  |  264|    207|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_PLMNS_PRESENT ((uint64_t)1<<1)
  ------------------
  609|    207|            decoded += size;
  610|    207|            break;
  611|    201|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_TAI_LIST_TYPE:
  ------------------
  |  |  328|    201|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_TAI_LIST_TYPE 0x54
  ------------------
  |  Branch (611:9): [True: 201, False: 27.7k]
  ------------------
  612|    201|            size = ogs_nas_5gs_decode_5gs_tracking_area_identity_list(&registration_accept->tai_list, pkbuf);
  613|    201|            if (size < 0) {
  ------------------
  |  Branch (613:17): [True: 1, False: 200]
  ------------------
  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|    200|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_TAI_LIST_PRESENT;
  ------------------
  |  |  265|    200|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_TAI_LIST_PRESENT ((uint64_t)1<<2)
  ------------------
  619|    200|            decoded += size;
  620|    200|            break;
  621|    226|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_ALLOWED_NSSAI_TYPE:
  ------------------
  |  |  329|    226|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_ALLOWED_NSSAI_TYPE 0x15
  ------------------
  |  Branch (621:9): [True: 226, False: 27.7k]
  ------------------
  622|    226|            size = ogs_nas_5gs_decode_nssai(&registration_accept->allowed_nssai, pkbuf);
  623|    226|            if (size < 0) {
  ------------------
  |  Branch (623:17): [True: 1, False: 225]
  ------------------
  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|    225|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_ALLOWED_NSSAI_PRESENT;
  ------------------
  |  |  266|    225|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_ALLOWED_NSSAI_PRESENT ((uint64_t)1<<3)
  ------------------
  629|    225|            decoded += size;
  630|    225|            break;
  631|    246|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  330|    246|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_REJECTED_NSSAI_TYPE 0x11
  ------------------
  |  Branch (631:9): [True: 246, False: 27.7k]
  ------------------
  632|    246|            size = ogs_nas_5gs_decode_rejected_nssai(&registration_accept->rejected_nssai, pkbuf);
  633|    246|            if (size < 0) {
  ------------------
  |  Branch (633:17): [True: 1, False: 245]
  ------------------
  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|    245|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  267|    245|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_REJECTED_NSSAI_PRESENT ((uint64_t)1<<4)
  ------------------
  639|    245|            decoded += size;
  640|    245|            break;
  641|    256|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_CONFIGURED_NSSAI_TYPE:
  ------------------
  |  |  331|    256|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_CONFIGURED_NSSAI_TYPE 0x31
  ------------------
  |  Branch (641:9): [True: 256, False: 27.7k]
  ------------------
  642|    256|            size = ogs_nas_5gs_decode_nssai(&registration_accept->configured_nssai, pkbuf);
  643|    256|            if (size < 0) {
  ------------------
  |  Branch (643:17): [True: 3, False: 253]
  ------------------
  644|      3|               ogs_error("ogs_nas_5gs_decode_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__) 
  |  |  ------------------
  ------------------
  645|      3|               return size;
  646|      3|            }
  647|       |
  648|    253|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_CONFIGURED_NSSAI_PRESENT;
  ------------------
  |  |  268|    253|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_CONFIGURED_NSSAI_PRESENT ((uint64_t)1<<5)
  ------------------
  649|    253|            decoded += size;
  650|    253|            break;
  651|    216|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_5GS_NETWORK_FEATURE_SUPPORT_TYPE:
  ------------------
  |  |  332|    216|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_5GS_NETWORK_FEATURE_SUPPORT_TYPE 0x21
  ------------------
  |  Branch (651:9): [True: 216, False: 27.7k]
  ------------------
  652|    216|            size = ogs_nas_5gs_decode_5gs_network_feature_support(&registration_accept->network_feature_support, pkbuf);
  653|    216|            if (size < 0) {
  ------------------
  |  Branch (653:17): [True: 5, False: 211]
  ------------------
  654|      5|               ogs_error("ogs_nas_5gs_decode_5gs_network_feature_support() 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__) 
  |  |  ------------------
  ------------------
  655|      5|               return size;
  656|      5|            }
  657|       |
  658|    211|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_5GS_NETWORK_FEATURE_SUPPORT_PRESENT;
  ------------------
  |  |  269|    211|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_5GS_NETWORK_FEATURE_SUPPORT_PRESENT ((uint64_t)1<<6)
  ------------------
  659|    211|            decoded += size;
  660|    211|            break;
  661|    217|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  |  333|    217|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_STATUS_TYPE 0x50
  ------------------
  |  Branch (661:9): [True: 217, False: 27.7k]
  ------------------
  662|    217|            size = ogs_nas_5gs_decode_pdu_session_status(&registration_accept->pdu_session_status, pkbuf);
  663|    217|            if (size < 0) {
  ------------------
  |  Branch (663:17): [True: 1, False: 216]
  ------------------
  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|    216|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  |  270|    216|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<7)
  ------------------
  669|    216|            decoded += size;
  670|    216|            break;
  671|    206|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_TYPE:
  ------------------
  |  |  334|    206|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_TYPE 0x26
  ------------------
  |  Branch (671:9): [True: 206, False: 27.7k]
  ------------------
  672|    206|            size = ogs_nas_5gs_decode_pdu_session_reactivation_result(&registration_accept->pdu_session_reactivation_result, pkbuf);
  673|    206|            if (size < 0) {
  ------------------
  |  Branch (673:17): [True: 2, False: 204]
  ------------------
  674|      2|               ogs_error("ogs_nas_5gs_decode_pdu_session_reactivation_result() 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__) 
  |  |  ------------------
  ------------------
  675|      2|               return size;
  676|      2|            }
  677|       |
  678|    204|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_PRESENT;
  ------------------
  |  |  271|    204|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_PRESENT ((uint64_t)1<<8)
  ------------------
  679|    204|            decoded += size;
  680|    204|            break;
  681|    230|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_TYPE:
  ------------------
  |  |  335|    230|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_TYPE 0x72
  ------------------
  |  Branch (681:9): [True: 230, False: 27.7k]
  ------------------
  682|    230|            size = ogs_nas_5gs_decode_pdu_session_reactivation_result_error_cause(&registration_accept->pdu_session_reactivation_result_error_cause, pkbuf);
  683|    230|            if (size < 0) {
  ------------------
  |  Branch (683:17): [True: 7, False: 223]
  ------------------
  684|      7|               ogs_error("ogs_nas_5gs_decode_pdu_session_reactivation_result_error_cause() 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__) 
  |  |  ------------------
  ------------------
  685|      7|               return size;
  686|      7|            }
  687|       |
  688|    223|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_PRESENT;
  ------------------
  |  |  272|    223|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_PRESENT ((uint64_t)1<<9)
  ------------------
  689|    223|            decoded += size;
  690|    223|            break;
  691|    206|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_LADN_INFORMATION_TYPE:
  ------------------
  |  |  336|    206|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_LADN_INFORMATION_TYPE 0x79
  ------------------
  |  Branch (691:9): [True: 206, False: 27.7k]
  ------------------
  692|    206|            size = ogs_nas_5gs_decode_ladn_information(&registration_accept->ladn_information, pkbuf);
  693|    206|            if (size < 0) {
  ------------------
  |  Branch (693:17): [True: 5, False: 201]
  ------------------
  694|      5|               ogs_error("ogs_nas_5gs_decode_ladn_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__) 
  |  |  ------------------
  ------------------
  695|      5|               return size;
  696|      5|            }
  697|       |
  698|    201|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_LADN_INFORMATION_PRESENT;
  ------------------
  |  |  273|    201|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_LADN_INFORMATION_PRESENT ((uint64_t)1<<10)
  ------------------
  699|    201|            decoded += size;
  700|    201|            break;
  701|    375|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_MICO_INDICATION_TYPE:
  ------------------
  |  |  337|    375|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_MICO_INDICATION_TYPE 0xB0
  ------------------
  |  Branch (701:9): [True: 375, False: 27.6k]
  ------------------
  702|    375|            decoded--;
  703|    375|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    375|    do { \
  |  |  114|    375|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    375|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 375, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    375|        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|    375|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 375]
  |  |  ------------------
  ------------------
  704|    375|            size = ogs_nas_5gs_decode_mico_indication(&registration_accept->mico_indication, pkbuf);
  705|    375|            if (size < 0) {
  ------------------
  |  Branch (705:17): [True: 0, False: 375]
  ------------------
  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|    375|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_MICO_INDICATION_PRESENT;
  ------------------
  |  |  274|    375|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_MICO_INDICATION_PRESENT ((uint64_t)1<<11)
  ------------------
  711|    375|            decoded += size;
  712|    375|            break;
  713|    763|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NETWORK_SLICING_INDICATION_TYPE:
  ------------------
  |  |  338|    763|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NETWORK_SLICING_INDICATION_TYPE 0x90
  ------------------
  |  Branch (713:9): [True: 763, False: 27.2k]
  ------------------
  714|    763|            decoded--;
  715|    763|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    763|    do { \
  |  |  114|    763|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    763|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 763, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    763|        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|    763|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 763]
  |  |  ------------------
  ------------------
  716|    763|            size = ogs_nas_5gs_decode_network_slicing_indication(&registration_accept->network_slicing_indication, pkbuf);
  717|    763|            if (size < 0) {
  ------------------
  |  Branch (717:17): [True: 0, False: 763]
  ------------------
  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|    763|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NETWORK_SLICING_INDICATION_PRESENT;
  ------------------
  |  |  275|    763|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NETWORK_SLICING_INDICATION_PRESENT ((uint64_t)1<<12)
  ------------------
  723|    763|            decoded += size;
  724|    763|            break;
  725|    215|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_AREA_LIST_TYPE:
  ------------------
  |  |  339|    215|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_AREA_LIST_TYPE 0x27
  ------------------
  |  Branch (725:9): [True: 215, False: 27.7k]
  ------------------
  726|    215|            size = ogs_nas_5gs_decode_service_area_list(&registration_accept->service_area_list, pkbuf);
  727|    215|            if (size < 0) {
  ------------------
  |  Branch (727:17): [True: 1, False: 214]
  ------------------
  728|      1|               ogs_error("ogs_nas_5gs_decode_service_area_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__) 
  |  |  ------------------
  ------------------
  729|      1|               return size;
  730|      1|            }
  731|       |
  732|    214|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_AREA_LIST_PRESENT;
  ------------------
  |  |  276|    214|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_AREA_LIST_PRESENT ((uint64_t)1<<13)
  ------------------
  733|    214|            decoded += size;
  734|    214|            break;
  735|    240|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_T3512_VALUE_TYPE:
  ------------------
  |  |  340|    240|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3512_VALUE_TYPE 0x5E
  ------------------
  |  Branch (735:9): [True: 240, False: 27.7k]
  ------------------
  736|    240|            size = ogs_nas_5gs_decode_gprs_timer_3(&registration_accept->t3512_value, pkbuf);
  737|    240|            if (size < 0) {
  ------------------
  |  Branch (737:17): [True: 3, False: 237]
  ------------------
  738|      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__) 
  |  |  ------------------
  ------------------
  739|      3|               return size;
  740|      3|            }
  741|       |
  742|    237|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_T3512_VALUE_PRESENT;
  ------------------
  |  |  277|    237|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3512_VALUE_PRESENT ((uint64_t)1<<14)
  ------------------
  743|    237|            decoded += size;
  744|    237|            break;
  745|    204|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_DE_REGISTRATION_TIMER_VALUE_TYPE:
  ------------------
  |  |  341|    204|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_DE_REGISTRATION_TIMER_VALUE_TYPE 0x5D
  ------------------
  |  Branch (745:9): [True: 204, False: 27.7k]
  ------------------
  746|    204|            size = ogs_nas_5gs_decode_gprs_timer_2(&registration_accept->non_3gpp_de_registration_timer_value, pkbuf);
  747|    204|            if (size < 0) {
  ------------------
  |  Branch (747:17): [True: 2, False: 202]
  ------------------
  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|    202|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_DE_REGISTRATION_TIMER_VALUE_PRESENT;
  ------------------
  |  |  278|    202|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_DE_REGISTRATION_TIMER_VALUE_PRESENT ((uint64_t)1<<15)
  ------------------
  753|    202|            decoded += size;
  754|    202|            break;
  755|    203|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_T3502_VALUE_TYPE:
  ------------------
  |  |  342|    203|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3502_VALUE_TYPE 0x16
  ------------------
  |  Branch (755:9): [True: 203, False: 27.7k]
  ------------------
  756|    203|            size = ogs_nas_5gs_decode_gprs_timer_2(&registration_accept->t3502_value, pkbuf);
  757|    203|            if (size < 0) {
  ------------------
  |  Branch (757:17): [True: 1, False: 202]
  ------------------
  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|    202|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_T3502_VALUE_PRESENT;
  ------------------
  |  |  279|    202|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3502_VALUE_PRESENT ((uint64_t)1<<16)
  ------------------
  763|    202|            decoded += size;
  764|    202|            break;
  765|    215|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EMERGENCY_NUMBER_LIST_TYPE:
  ------------------
  |  |  343|    215|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EMERGENCY_NUMBER_LIST_TYPE 0x34
  ------------------
  |  Branch (765:9): [True: 215, False: 27.7k]
  ------------------
  766|    215|            size = ogs_nas_5gs_decode_emergency_number_list(&registration_accept->emergency_number_list, pkbuf);
  767|    215|            if (size < 0) {
  ------------------
  |  Branch (767:17): [True: 5, False: 210]
  ------------------
  768|      5|               ogs_error("ogs_nas_5gs_decode_emergency_number_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__) 
  |  |  ------------------
  ------------------
  769|      5|               return size;
  770|      5|            }
  771|       |
  772|    210|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EMERGENCY_NUMBER_LIST_PRESENT;
  ------------------
  |  |  280|    210|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EMERGENCY_NUMBER_LIST_PRESENT ((uint64_t)1<<17)
  ------------------
  773|    210|            decoded += size;
  774|    210|            break;
  775|    246|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_EMERGENCY_NUMBER_LIST_TYPE:
  ------------------
  |  |  344|    246|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_EMERGENCY_NUMBER_LIST_TYPE 0x7A
  ------------------
  |  Branch (775:9): [True: 246, False: 27.7k]
  ------------------
  776|    246|            size = ogs_nas_5gs_decode_extended_emergency_number_list(&registration_accept->extended_emergency_number_list, pkbuf);
  777|    246|            if (size < 0) {
  ------------------
  |  Branch (777:17): [True: 21, False: 225]
  ------------------
  778|     21|               ogs_error("ogs_nas_5gs_decode_extended_emergency_number_list() 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__) 
  |  |  ------------------
  ------------------
  779|     21|               return size;
  780|     21|            }
  781|       |
  782|    225|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_EMERGENCY_NUMBER_LIST_PRESENT;
  ------------------
  |  |  281|    225|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_EMERGENCY_NUMBER_LIST_PRESENT ((uint64_t)1<<18)
  ------------------
  783|    225|            decoded += size;
  784|    225|            break;
  785|    206|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_SOR_TRANSPARENT_CONTAINER_TYPE:
  ------------------
  |  |  345|    206|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_SOR_TRANSPARENT_CONTAINER_TYPE 0x73
  ------------------
  |  Branch (785:9): [True: 206, False: 27.7k]
  ------------------
  786|    206|            size = ogs_nas_5gs_decode_sor_transparent_container(&registration_accept->sor_transparent_container, pkbuf);
  787|    206|            if (size < 0) {
  ------------------
  |  Branch (787:17): [True: 5, False: 201]
  ------------------
  788|      5|               ogs_error("ogs_nas_5gs_decode_sor_transparent_container() 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__) 
  |  |  ------------------
  ------------------
  789|      5|               return size;
  790|      5|            }
  791|       |
  792|    201|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_SOR_TRANSPARENT_CONTAINER_PRESENT;
  ------------------
  |  |  282|    201|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_SOR_TRANSPARENT_CONTAINER_PRESENT ((uint64_t)1<<19)
  ------------------
  793|    201|            decoded += size;
  794|    201|            break;
  795|    212|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EAP_MESSAGE_TYPE:
  ------------------
  |  |  346|    212|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (795:9): [True: 212, False: 27.7k]
  ------------------
  796|    212|            size = ogs_nas_5gs_decode_eap_message(&registration_accept->eap_message, pkbuf);
  797|    212|            if (size < 0) {
  ------------------
  |  Branch (797:17): [True: 2, False: 210]
  ------------------
  798|      2|               ogs_error("ogs_nas_5gs_decode_eap_message() 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__) 
  |  |  ------------------
  ------------------
  799|      2|               return size;
  800|      2|            }
  801|       |
  802|    210|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  283|    210|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EAP_MESSAGE_PRESENT ((uint64_t)1<<20)
  ------------------
  803|    210|            decoded += size;
  804|    210|            break;
  805|    839|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSAI_INCLUSION_MODE_TYPE:
  ------------------
  |  |  347|    839|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSAI_INCLUSION_MODE_TYPE 0xA0
  ------------------
  |  Branch (805:9): [True: 839, False: 27.1k]
  ------------------
  806|    839|            decoded--;
  807|    839|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    839|    do { \
  |  |  114|    839|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    839|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 839, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    839|        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|    839|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 839]
  |  |  ------------------
  ------------------
  808|    839|            size = ogs_nas_5gs_decode_nssai_inclusion_mode(&registration_accept->nssai_inclusion_mode, pkbuf);
  809|    839|            if (size < 0) {
  ------------------
  |  Branch (809:17): [True: 0, False: 839]
  ------------------
  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|    839|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSAI_INCLUSION_MODE_PRESENT;
  ------------------
  |  |  284|    839|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSAI_INCLUSION_MODE_PRESENT ((uint64_t)1<<21)
  ------------------
  815|    839|            decoded += size;
  816|    839|            break;
  817|    211|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_TYPE:
  ------------------
  |  |  348|    211|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_TYPE 0x76
  ------------------
  |  Branch (817:9): [True: 211, False: 27.7k]
  ------------------
  818|    211|            size = ogs_nas_5gs_decode_operator_defined_access_category_definitions(&registration_accept->operator_defined_access_category_definitions, pkbuf);
  819|    211|            if (size < 0) {
  ------------------
  |  Branch (819:17): [True: 4, False: 207]
  ------------------
  820|      4|               ogs_error("ogs_nas_5gs_decode_operator_defined_access_category_definitions() 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__) 
  |  |  ------------------
  ------------------
  821|      4|               return size;
  822|      4|            }
  823|       |
  824|    207|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_PRESENT;
  ------------------
  |  |  285|    207|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_PRESENT ((uint64_t)1<<22)
  ------------------
  825|    207|            decoded += size;
  826|    207|            break;
  827|    211|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_DRX_PARAMETERS_TYPE:
  ------------------
  |  |  349|    211|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_DRX_PARAMETERS_TYPE 0x51
  ------------------
  |  Branch (827:9): [True: 211, False: 27.7k]
  ------------------
  828|    211|            size = ogs_nas_5gs_decode_5gs_drx_parameters(&registration_accept->negotiated_drx_parameters, pkbuf);
  829|    211|            if (size < 0) {
  ------------------
  |  Branch (829:17): [True: 7, False: 204]
  ------------------
  830|      7|               ogs_error("ogs_nas_5gs_decode_5gs_drx_parameters() 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__) 
  |  |  ------------------
  ------------------
  831|      7|               return size;
  832|      7|            }
  833|       |
  834|    204|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_DRX_PARAMETERS_PRESENT;
  ------------------
  |  |  286|    204|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_DRX_PARAMETERS_PRESENT ((uint64_t)1<<23)
  ------------------
  835|    204|            decoded += size;
  836|    204|            break;
  837|    557|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_NW_POLICIES_TYPE:
  ------------------
  |  |  350|    557|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_NW_POLICIES_TYPE 0xD0
  ------------------
  |  Branch (837:9): [True: 557, False: 27.4k]
  ------------------
  838|    557|            decoded--;
  839|    557|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    557|    do { \
  |  |  114|    557|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    557|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 557, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    557|        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|    557|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 557]
  |  |  ------------------
  ------------------
  840|    557|            size = ogs_nas_5gs_decode_non_3gpp_nw_provided_policies(&registration_accept->non_3gpp_nw_policies, pkbuf);
  841|    557|            if (size < 0) {
  ------------------
  |  Branch (841:17): [True: 4, False: 553]
  ------------------
  842|      4|               ogs_error("ogs_nas_5gs_decode_non_3gpp_nw_provided_policies() 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__) 
  |  |  ------------------
  ------------------
  843|      4|               return size;
  844|      4|            }
  845|       |
  846|    553|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_NW_POLICIES_PRESENT;
  ------------------
  |  |  287|    553|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_NW_POLICIES_PRESENT ((uint64_t)1<<24)
  ------------------
  847|    553|            decoded += size;
  848|    553|            break;
  849|    240|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EPS_BEARER_CONTEXT_STATUS_TYPE:
  ------------------
  |  |  351|    240|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EPS_BEARER_CONTEXT_STATUS_TYPE 0x60
  ------------------
  |  Branch (849:9): [True: 240, False: 27.7k]
  ------------------
  850|    240|            size = ogs_nas_5gs_decode_eps_bearer_context_status(&registration_accept->eps_bearer_context_status, pkbuf);
  851|    240|            if (size < 0) {
  ------------------
  |  Branch (851:17): [True: 5, False: 235]
  ------------------
  852|      5|               ogs_error("ogs_nas_5gs_decode_eps_bearer_context_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__) 
  |  |  ------------------
  ------------------
  853|      5|               return size;
  854|      5|            }
  855|       |
  856|    235|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EPS_BEARER_CONTEXT_STATUS_PRESENT;
  ------------------
  |  |  288|    235|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EPS_BEARER_CONTEXT_STATUS_PRESENT ((uint64_t)1<<25)
  ------------------
  857|    235|            decoded += size;
  858|    235|            break;
  859|    211|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_EXTENDED_DRX_PARAMETERS_TYPE:
  ------------------
  |  |  352|    211|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_EXTENDED_DRX_PARAMETERS_TYPE 0x6E
  ------------------
  |  Branch (859:9): [True: 211, False: 27.7k]
  ------------------
  860|    211|            size = ogs_nas_5gs_decode_extended_drx_parameters(&registration_accept->negotiated_extended_drx_parameters, pkbuf);
  861|    211|            if (size < 0) {
  ------------------
  |  Branch (861:17): [True: 5, False: 206]
  ------------------
  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|    206|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_EXTENDED_DRX_PARAMETERS_PRESENT;
  ------------------
  |  |  289|    206|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_EXTENDED_DRX_PARAMETERS_PRESENT ((uint64_t)1<<26)
  ------------------
  867|    206|            decoded += size;
  868|    206|            break;
  869|    211|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_T3447_VALUE_TYPE:
  ------------------
  |  |  353|    211|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3447_VALUE_TYPE 0x6C
  ------------------
  |  Branch (869:9): [True: 211, False: 27.7k]
  ------------------
  870|    211|            size = ogs_nas_5gs_decode_gprs_timer_3(&registration_accept->t3447_value, pkbuf);
  871|    211|            if (size < 0) {
  ------------------
  |  Branch (871:17): [True: 1, False: 210]
  ------------------
  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|    210|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_T3447_VALUE_PRESENT;
  ------------------
  |  |  290|    210|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3447_VALUE_PRESENT ((uint64_t)1<<27)
  ------------------
  877|    210|            decoded += size;
  878|    210|            break;
  879|    201|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_T3448_VALUE_TYPE:
  ------------------
  |  |  354|    201|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3448_VALUE_TYPE 0x6B
  ------------------
  |  Branch (879:9): [True: 201, False: 27.7k]
  ------------------
  880|    201|            size = ogs_nas_5gs_decode_gprs_timer_2(&registration_accept->t3448_value, pkbuf);
  881|    201|            if (size < 0) {
  ------------------
  |  Branch (881:17): [True: 1, False: 200]
  ------------------
  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|    200|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_T3448_VALUE_PRESENT;
  ------------------
  |  |  291|    200|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3448_VALUE_PRESENT ((uint64_t)1<<28)
  ------------------
  887|    200|            decoded += size;
  888|    200|            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: 27.7k]
  ------------------
  890|    198|            size = ogs_nas_5gs_decode_gprs_timer_3(&registration_accept->t3324_value, pkbuf);
  891|    198|            if (size < 0) {
  ------------------
  |  Branch (891:17): [True: 1, False: 197]
  ------------------
  892|      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__) 
  |  |  ------------------
  ------------------
  893|      1|               return size;
  894|      1|            }
  895|       |
  896|    197|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_T3324_VALUE_PRESENT;
  ------------------
  |  |  292|    197|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3324_VALUE_PRESENT ((uint64_t)1<<29)
  ------------------
  897|    197|            decoded += size;
  898|    197|            break;
  899|    197|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_TYPE:
  ------------------
  |  |  356|    197|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_TYPE 0x67
  ------------------
  |  Branch (899:9): [True: 197, False: 27.7k]
  ------------------
  900|    197|            size = ogs_nas_5gs_decode_ue_radio_capability_id(&registration_accept->ue_radio_capability_id, pkbuf);
  901|    197|            if (size < 0) {
  ------------------
  |  Branch (901:17): [True: 2, False: 195]
  ------------------
  902|      2|               ogs_error("ogs_nas_5gs_decode_ue_radio_capability_id() 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__) 
  |  |  ------------------
  ------------------
  903|      2|               return size;
  904|      2|            }
  905|       |
  906|    195|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_PRESENT;
  ------------------
  |  |  293|    195|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_PRESENT ((uint64_t)1<<30)
  ------------------
  907|    195|            decoded += size;
  908|    195|            break;
  909|    474|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_TYPE:
  ------------------
  |  |  357|    474|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_TYPE 0xE0
  ------------------
  |  Branch (909:9): [True: 474, False: 27.5k]
  ------------------
  910|    474|            decoded--;
  911|    474|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    474|    do { \
  |  |  114|    474|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    474|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 474, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    474|        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|    474|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 474]
  |  |  ------------------
  ------------------
  912|    474|            size = ogs_nas_5gs_decode_ue_radio_capability_id_deletion_indication(&registration_accept->ue_radio_capability_id_deletion_indication, pkbuf);
  913|    474|            if (size < 0) {
  ------------------
  |  Branch (913:17): [True: 0, False: 474]
  ------------------
  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|    474|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_PRESENT;
  ------------------
  |  |  294|    474|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_PRESENT ((uint64_t)1<<31)
  ------------------
  919|    474|            decoded += size;
  920|    474|            break;
  921|    207|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_PENDING_NSSAI_TYPE:
  ------------------
  |  |  358|    207|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PENDING_NSSAI_TYPE 0x39
  ------------------
  |  Branch (921:9): [True: 207, False: 27.7k]
  ------------------
  922|    207|            size = ogs_nas_5gs_decode_nssai(&registration_accept->pending_nssai, pkbuf);
  923|    207|            if (size < 0) {
  ------------------
  |  Branch (923:17): [True: 1, False: 206]
  ------------------
  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|    206|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_PENDING_NSSAI_PRESENT;
  ------------------
  |  |  295|    206|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PENDING_NSSAI_PRESENT ((uint64_t)1<<32)
  ------------------
  929|    206|            decoded += size;
  930|    206|            break;
  931|    280|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_CIPHERING_KEY_DATA_TYPE:
  ------------------
  |  |  359|    280|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_CIPHERING_KEY_DATA_TYPE 0x74
  ------------------
  |  Branch (931:9): [True: 280, False: 27.7k]
  ------------------
  932|    280|            size = ogs_nas_5gs_decode_ciphering_key_data(&registration_accept->ciphering_key_data, pkbuf);
  933|    280|            if (size < 0) {
  ------------------
  |  Branch (933:17): [True: 28, False: 252]
  ------------------
  934|     28|               ogs_error("ogs_nas_5gs_decode_ciphering_key_data() failed");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  935|     28|               return size;
  936|     28|            }
  937|       |
  938|    252|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_CIPHERING_KEY_DATA_PRESENT;
  ------------------
  |  |  296|    252|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_CIPHERING_KEY_DATA_PRESENT ((uint64_t)1<<33)
  ------------------
  939|    252|            decoded += size;
  940|    252|            break;
  941|    206|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  360|    206|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_CAG_INFORMATION_LIST_TYPE 0x75
  ------------------
  |  Branch (941:9): [True: 206, False: 27.7k]
  ------------------
  942|    206|            size = ogs_nas_5gs_decode_cag_information_list(&registration_accept->cag_information_list, pkbuf);
  943|    206|            if (size < 0) {
  ------------------
  |  Branch (943:17): [True: 6, False: 200]
  ------------------
  944|      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__) 
  |  |  ------------------
  ------------------
  945|      6|               return size;
  946|      6|            }
  947|       |
  948|    200|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  297|    200|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<34)
  ------------------
  949|    200|            decoded += size;
  950|    200|            break;
  951|    200|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_TRUNCATED_5G_S_TMSI_CONFIGURATION_TYPE:
  ------------------
  |  |  361|    200|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_TRUNCATED_5G_S_TMSI_CONFIGURATION_TYPE 0x1B
  ------------------
  |  Branch (951:9): [True: 200, False: 27.7k]
  ------------------
  952|    200|            size = ogs_nas_5gs_decode_truncated_5g_s_tmsi_configuration(&registration_accept->truncated_s_tmsi_configuration, pkbuf);
  953|    200|            if (size < 0) {
  ------------------
  |  Branch (953:17): [True: 1, False: 199]
  ------------------
  954|      1|               ogs_error("ogs_nas_5gs_decode_truncated_5g_s_tmsi_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__) 
  |  |  ------------------
  ------------------
  955|      1|               return size;
  956|      1|            }
  957|       |
  958|    199|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_TRUNCATED_5G_S_TMSI_CONFIGURATION_PRESENT;
  ------------------
  |  |  298|    199|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_TRUNCATED_5G_S_TMSI_CONFIGURATION_PRESENT ((uint64_t)1<<35)
  ------------------
  959|    199|            decoded += size;
  960|    199|            break;
  961|    308|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_WUS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  362|    308|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_WUS_ASSISTANCE_INFORMATION_TYPE 0x1C
  ------------------
  |  Branch (961:9): [True: 308, False: 27.6k]
  ------------------
  962|    308|            size = ogs_nas_5gs_decode_wus_assistance_information(&registration_accept->negotiated_wus_assistance_information, pkbuf);
  963|    308|            if (size < 0) {
  ------------------
  |  Branch (963:17): [True: 8, False: 300]
  ------------------
  964|      8|               ogs_error("ogs_nas_5gs_decode_wus_assistance_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__) 
  |  |  ------------------
  ------------------
  965|      8|               return size;
  966|      8|            }
  967|       |
  968|    300|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_WUS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  299|    300|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_WUS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<36)
  ------------------
  969|    300|            decoded += size;
  970|    300|            break;
  971|    210|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_NB_N1_MODE_DRX_PARAMETERS_TYPE:
  ------------------
  |  |  363|    210|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_NB_N1_MODE_DRX_PARAMETERS_TYPE 0x29
  ------------------
  |  Branch (971:9): [True: 210, False: 27.7k]
  ------------------
  972|    210|            size = ogs_nas_5gs_decode_nb_n1_mode_drx_parameters(&registration_accept->negotiated_nb_n1_mode_drx_parameters, pkbuf);
  973|    210|            if (size < 0) {
  ------------------
  |  Branch (973:17): [True: 7, False: 203]
  ------------------
  974|      7|               ogs_error("ogs_nas_5gs_decode_nb_n1_mode_drx_parameters() 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__) 
  |  |  ------------------
  ------------------
  975|      7|               return size;
  976|      7|            }
  977|       |
  978|    203|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_NB_N1_MODE_DRX_PARAMETERS_PRESENT;
  ------------------
  |  |  300|    203|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_NB_N1_MODE_DRX_PARAMETERS_PRESENT ((uint64_t)1<<37)
  ------------------
  979|    203|            decoded += size;
  980|    203|            break;
  981|    207|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  364|    207|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_REJECTED_NSSAI_TYPE 0x68
  ------------------
  |  Branch (981:9): [True: 207, False: 27.7k]
  ------------------
  982|    207|            size = ogs_nas_5gs_decode_extended_rejected_nssai(&registration_accept->extended_rejected_nssai, pkbuf);
  983|    207|            if (size < 0) {
  ------------------
  |  Branch (983:17): [True: 1, False: 206]
  ------------------
  984|      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__) 
  |  |  ------------------
  ------------------
  985|      1|               return size;
  986|      1|            }
  987|       |
  988|    206|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  301|    206|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_REJECTED_NSSAI_PRESENT ((uint64_t)1<<38)
  ------------------
  989|    206|            decoded += size;
  990|    206|            break;
  991|    267|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  |  365|    267|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x7B
  ------------------
  |  Branch (991:9): [True: 267, False: 27.7k]
  ------------------
  992|    267|            size = ogs_nas_5gs_decode_service_level_aa_container(&registration_accept->service_level_aa_container, pkbuf);
  993|    267|            if (size < 0) {
  ------------------
  |  Branch (993:17): [True: 6, False: 261]
  ------------------
  994|      6|               ogs_error("ogs_nas_5gs_decode_service_level_aa_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__) 
  |  |  ------------------
  ------------------
  995|      6|               return size;
  996|      6|            }
  997|       |
  998|    261|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  |  302|    261|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<39)
  ------------------
  999|    261|            decoded += size;
 1000|    261|            break;
 1001|    218|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_PEIPS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  366|    218|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_PEIPS_ASSISTANCE_INFORMATION_TYPE 0x33
  ------------------
  |  Branch (1001:9): [True: 218, False: 27.7k]
  ------------------
 1002|    218|            size = ogs_nas_5gs_decode_peips_assistance_information(&registration_accept->negotiated_peips_assistance_information, pkbuf);
 1003|    218|            if (size < 0) {
  ------------------
  |  Branch (1003:17): [True: 2, False: 216]
  ------------------
 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|    216|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_PEIPS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  303|    216|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_PEIPS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<40)
  ------------------
 1009|    216|            decoded += size;
 1010|    216|            break;
 1011|    212|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_TYPE:
  ------------------
  |  |  367|    212|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_TYPE 0x35
  ------------------
  |  Branch (1011:9): [True: 212, False: 27.7k]
  ------------------
 1012|    212|            size = ogs_nas_5gs_decode_5gs_additional_request_result(&registration_accept->additional_request_result, pkbuf);
 1013|    212|            if (size < 0) {
  ------------------
  |  Branch (1013:17): [True: 2, False: 210]
  ------------------
 1014|      2|               ogs_error("ogs_nas_5gs_decode_5gs_additional_request_result() 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__) 
  |  |  ------------------
  ------------------
 1015|      2|               return size;
 1016|      2|            }
 1017|       |
 1018|    210|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_PRESENT;
  ------------------
  |  |  304|    210|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_PRESENT ((uint64_t)1<<41)
  ------------------
 1019|    210|            decoded += size;
 1020|    210|            break;
 1021|    364|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSRG_INFORMATION_TYPE:
  ------------------
  |  |  368|    364|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSRG_INFORMATION_TYPE 0x70
  ------------------
  |  Branch (1021:9): [True: 364, False: 27.6k]
  ------------------
 1022|    364|            size = ogs_nas_5gs_decode_nssrg_information(&registration_accept->nssrg_information, pkbuf);
 1023|    364|            if (size < 0) {
  ------------------
  |  Branch (1023:17): [True: 2, False: 362]
  ------------------
 1024|      2|               ogs_error("ogs_nas_5gs_decode_nssrg_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__) 
  |  |  ------------------
  ------------------
 1025|      2|               return size;
 1026|      2|            }
 1027|       |
 1028|    362|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSRG_INFORMATION_PRESENT;
  ------------------
  |  |  305|    362|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSRG_INFORMATION_PRESENT ((uint64_t)1<<42)
  ------------------
 1029|    362|            decoded += size;
 1030|    362|            break;
 1031|    209|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_ROAMING_WAIT_RANGE_TYPE:
  ------------------
  |  |  369|    209|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_ROAMING_WAIT_RANGE_TYPE 0x14
  ------------------
  |  Branch (1031:9): [True: 209, False: 27.7k]
  ------------------
 1032|    209|            size = ogs_nas_5gs_decode_registration_wait_range(&registration_accept->disaster_roaming_wait_range, pkbuf);
 1033|    209|            if (size < 0) {
  ------------------
  |  Branch (1033:17): [True: 1, False: 208]
  ------------------
 1034|      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__) 
  |  |  ------------------
  ------------------
 1035|      1|               return size;
 1036|      1|            }
 1037|       |
 1038|    208|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_ROAMING_WAIT_RANGE_PRESENT;
  ------------------
  |  |  306|    208|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_ROAMING_WAIT_RANGE_PRESENT ((uint64_t)1<<43)
  ------------------
 1039|    208|            decoded += size;
 1040|    208|            break;
 1041|    207|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_RETURN_WAIT_RANGE_TYPE:
  ------------------
  |  |  370|    207|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_RETURN_WAIT_RANGE_TYPE 0x2C
  ------------------
  |  Branch (1041:9): [True: 207, False: 27.7k]
  ------------------
 1042|    207|            size = ogs_nas_5gs_decode_registration_wait_range(&registration_accept->disaster_return_wait_range, pkbuf);
 1043|    207|            if (size < 0) {
  ------------------
  |  Branch (1043:17): [True: 2, False: 205]
  ------------------
 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|    205|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_RETURN_WAIT_RANGE_PRESENT;
  ------------------
  |  |  307|    205|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_RETURN_WAIT_RANGE_PRESENT ((uint64_t)1<<44)
  ------------------
 1049|    205|            decoded += size;
 1050|    205|            break;
 1051|    206|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION_TYPE:
  ------------------
  |  |  371|    206|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION_TYPE 0x13
  ------------------
  |  Branch (1051:9): [True: 206, False: 27.7k]
  ------------------
 1052|    206|            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|    206|            if (size < 0) {
  ------------------
  |  Branch (1053:17): [True: 2, False: 204]
  ------------------
 1054|      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__) 
  |  |  ------------------
  ------------------
 1055|      2|               return size;
 1056|      2|            }
 1057|       |
 1058|    204|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION_PRESENT;
  ------------------
  |  |  308|    204|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION_PRESENT ((uint64_t)1<<45)
  ------------------
 1059|    204|            decoded += size;
 1060|    204|            break;
 1061|    203|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE:
  ------------------
  |  |  372|    203|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE 0x1D
  ------------------
  |  Branch (1061:9): [True: 203, False: 27.7k]
  ------------------
 1062|    203|            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|    203|            if (size < 0) {
  ------------------
  |  Branch (1063:17): [True: 1, False: 202]
  ------------------
 1064|      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__) 
  |  |  ------------------
  ------------------
 1065|      1|               return size;
 1066|      1|            }
 1067|       |
 1068|    202|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT;
  ------------------
  |  |  309|    202|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT ((uint64_t)1<<46)
  ------------------
 1069|    202|            decoded += size;
 1070|    202|            break;
 1071|    209|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_TYPE:
  ------------------
  |  |  373|    209|#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: 209, False: 27.7k]
  ------------------
 1072|    209|            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|    209|            if (size < 0) {
  ------------------
  |  Branch (1073:17): [True: 1, False: 208]
  ------------------
 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|    208|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_PRESENT;
  ------------------
  |  |  310|    208|#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|    208|            decoded += size;
 1080|    208|            break;
 1081|    201|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  374|    201|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_CAG_INFORMATION_LIST_TYPE 0x71
  ------------------
  |  Branch (1081:9): [True: 201, False: 27.7k]
  ------------------
 1082|    201|            size = ogs_nas_5gs_decode_extended_cag_information_list(&registration_accept->extended_cag_information_list, pkbuf);
 1083|    201|            if (size < 0) {
  ------------------
  |  Branch (1083:17): [True: 1, False: 200]
  ------------------
 1084|      1|               ogs_error("ogs_nas_5gs_decode_extended_cag_information_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__) 
  |  |  ------------------
  ------------------
 1085|      1|               return size;
 1086|      1|            }
 1087|       |
 1088|    200|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  311|    200|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<48)
  ------------------
 1089|    200|            decoded += size;
 1090|    200|            break;
 1091|    233|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NSAG_INFORMATION_TYPE:
  ------------------
  |  |  375|    233|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NSAG_INFORMATION_TYPE 0x7C
  ------------------
  |  Branch (1091:9): [True: 233, False: 27.7k]
  ------------------
 1092|    233|            size = ogs_nas_5gs_decode_nsag_information(&registration_accept->nsag_information, pkbuf);
 1093|    233|            if (size < 0) {
  ------------------
  |  Branch (1093:17): [True: 13, False: 220]
  ------------------
 1094|     13|               ogs_error("ogs_nas_5gs_decode_nsag_information() 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__) 
  |  |  ------------------
  ------------------
 1095|     13|               return size;
 1096|     13|            }
 1097|       |
 1098|    220|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NSAG_INFORMATION_PRESENT;
  ------------------
  |  |  312|    220|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NSAG_INFORMATION_PRESENT ((uint64_t)1<<49)
  ------------------
 1099|    220|            decoded += size;
 1100|    220|            break;
 1101|    241|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_SNPNS_TYPE:
  ------------------
  |  |  376|    241|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_SNPNS_TYPE 0x3D
  ------------------
  |  Branch (1101:9): [True: 241, False: 27.7k]
  ------------------
 1102|    241|            size = ogs_nas_5gs_decode_snpn_list(&registration_accept->equivalent_snpns, pkbuf);
 1103|    241|            if (size < 0) {
  ------------------
  |  Branch (1103:17): [True: 7, False: 234]
  ------------------
 1104|      7|               ogs_error("ogs_nas_5gs_decode_snpn_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__) 
  |  |  ------------------
  ------------------
 1105|      7|               return size;
 1106|      7|            }
 1107|       |
 1108|    234|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_SNPNS_PRESENT;
  ------------------
  |  |  313|    234|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_SNPNS_PRESENT ((uint64_t)1<<50)
  ------------------
 1109|    234|            decoded += size;
 1110|    234|            break;
 1111|    222|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NID_TYPE:
  ------------------
  |  |  377|    222|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NID_TYPE 0x32
  ------------------
  |  Branch (1111:9): [True: 222, False: 27.7k]
  ------------------
 1112|    222|            size = ogs_nas_5gs_decode_nid(&registration_accept->nid, pkbuf);
 1113|    222|            if (size < 0) {
  ------------------
  |  Branch (1113:17): [True: 6, False: 216]
  ------------------
 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|    216|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NID_PRESENT;
  ------------------
  |  |  314|    216|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NID_PRESENT ((uint64_t)1<<51)
  ------------------
 1119|    216|            decoded += size;
 1120|    216|            break;
 1121|    249|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_REGISTRATION_ACCEPT_TYPE_6_IE_CONTAINER_TYPE:
  ------------------
  |  |  378|    249|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_REGISTRATION_ACCEPT_TYPE_6_IE_CONTAINER_TYPE 0x7D
  ------------------
  |  Branch (1121:9): [True: 249, False: 27.7k]
  ------------------
 1122|    249|            size = ogs_nas_5gs_decode_type_6_ie_container(&registration_accept->registration_accept_type_6_ie_container, pkbuf);
 1123|    249|            if (size < 0) {
  ------------------
  |  Branch (1123:17): [True: 29, False: 220]
  ------------------
 1124|     29|               ogs_error("ogs_nas_5gs_decode_type_6_ie_container() failed");
  ------------------
  |  |   36|     29|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     29|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     29|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     29|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     29|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     29|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1125|     29|               return size;
 1126|     29|            }
 1127|       |
 1128|    220|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_REGISTRATION_ACCEPT_TYPE_6_IE_CONTAINER_PRESENT;
  ------------------
  |  |  315|    220|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_REGISTRATION_ACCEPT_TYPE_6_IE_CONTAINER_PRESENT ((uint64_t)1<<52)
  ------------------
 1129|    220|            decoded += size;
 1130|    220|            break;
 1131|    205|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_RAN_TIMING_SYNCHRONIZATION_TYPE:
  ------------------
  |  |  379|    205|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_RAN_TIMING_SYNCHRONIZATION_TYPE 0x4B
  ------------------
  |  Branch (1131:9): [True: 205, False: 27.7k]
  ------------------
 1132|    205|            size = ogs_nas_5gs_decode_ran_timing_synchronization(&registration_accept->ran_timing_synchronization, pkbuf);
 1133|    205|            if (size < 0) {
  ------------------
  |  Branch (1133:17): [True: 2, False: 203]
  ------------------
 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|    203|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_RAN_TIMING_SYNCHRONIZATION_PRESENT;
  ------------------
  |  |  316|    203|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_RAN_TIMING_SYNCHRONIZATION_PRESENT ((uint64_t)1<<53)
  ------------------
 1139|    203|            decoded += size;
 1140|    203|            break;
 1141|    203|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_ALTERNATIVE_NSSAI_TYPE:
  ------------------
  |  |  380|    203|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_ALTERNATIVE_NSSAI_TYPE 0x4C
  ------------------
  |  Branch (1141:9): [True: 203, False: 27.7k]
  ------------------
 1142|    203|            size = ogs_nas_5gs_decode_alternative_nssai(&registration_accept->alternative_nssai, pkbuf);
 1143|    203|            if (size < 0) {
  ------------------
  |  Branch (1143:17): [True: 1, False: 202]
  ------------------
 1144|      1|               ogs_error("ogs_nas_5gs_decode_alternative_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__) 
  |  |  ------------------
  ------------------
 1145|      1|               return size;
 1146|      1|            }
 1147|       |
 1148|    202|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_ALTERNATIVE_NSSAI_PRESENT;
  ------------------
  |  |  317|    202|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_ALTERNATIVE_NSSAI_PRESENT ((uint64_t)1<<54)
  ------------------
 1149|    202|            decoded += size;
 1150|    202|            break;
 1151|    205|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_TYPE:
  ------------------
  |  |  381|    205|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_TYPE 0x4F
  ------------------
  |  Branch (1151:9): [True: 205, False: 27.7k]
  ------------------
 1152|    205|            size = ogs_nas_5gs_decode_gprs_timer_3(&registration_accept->discontinuous_coverage_maximum_time_offset, pkbuf);
 1153|    205|            if (size < 0) {
  ------------------
  |  Branch (1153:17): [True: 1, False: 204]
  ------------------
 1154|      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__) 
  |  |  ------------------
  ------------------
 1155|      1|               return size;
 1156|      1|            }
 1157|       |
 1158|    204|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_PRESENT;
  ------------------
  |  |  318|    204|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_PRESENT ((uint64_t)1<<55)
  ------------------
 1159|    204|            decoded += size;
 1160|    204|            break;
 1161|    202|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_S_NSSAI_TIME_VALIDITY_INFORMATION_TYPE:
  ------------------
  |  |  382|    202|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_S_NSSAI_TIME_VALIDITY_INFORMATION_TYPE 0x5B
  ------------------
  |  Branch (1161:9): [True: 202, False: 27.7k]
  ------------------
 1162|    202|            size = ogs_nas_5gs_decode_s_nssai_time_validity_information(&registration_accept->s_nssai_time_validity_information, pkbuf);
 1163|    202|            if (size < 0) {
  ------------------
  |  Branch (1163:17): [True: 2, False: 200]
  ------------------
 1164|      2|               ogs_error("ogs_nas_5gs_decode_s_nssai_time_validity_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__) 
  |  |  ------------------
  ------------------
 1165|      2|               return size;
 1166|      2|            }
 1167|       |
 1168|    200|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_S_NSSAI_TIME_VALIDITY_INFORMATION_PRESENT;
  ------------------
  |  |  319|    200|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_S_NSSAI_TIME_VALIDITY_INFORMATION_PRESENT ((uint64_t)1<<56)
  ------------------
 1169|    200|            decoded += size;
 1170|    200|            break;
 1171|    232|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_UNAVAILABILITY_CONFIGURATION_TYPE:
  ------------------
  |  |  383|    232|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_UNAVAILABILITY_CONFIGURATION_TYPE 0x3C
  ------------------
  |  Branch (1171:9): [True: 232, False: 27.7k]
  ------------------
 1172|    232|            size = ogs_nas_5gs_decode_unavailability_configuration(&registration_accept->unavailability_configuration, pkbuf);
 1173|    232|            if (size < 0) {
  ------------------
  |  Branch (1173:17): [True: 7, False: 225]
  ------------------
 1174|      7|               ogs_error("ogs_nas_5gs_decode_unavailability_configuration() 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__) 
  |  |  ------------------
  ------------------
 1175|      7|               return size;
 1176|      7|            }
 1177|       |
 1178|    225|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_UNAVAILABILITY_CONFIGURATION_PRESENT;
  ------------------
  |  |  320|    225|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_UNAVAILABILITY_CONFIGURATION_PRESENT ((uint64_t)1<<57)
  ------------------
 1179|    225|            decoded += size;
 1180|    225|            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: 27.7k]
  ------------------
 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: 1, False: 195]
  ------------------
 1184|      1|               ogs_error("ogs_nas_5gs_decode_feature_authorization_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__) 
  |  |  ------------------
  ------------------
 1185|      1|               return size;
 1186|      1|            }
 1187|       |
 1188|    195|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_FEATURE_AUTHORIZATION_INDICATION_PRESENT;
  ------------------
  |  |  321|    195|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_FEATURE_AUTHORIZATION_INDICATION_PRESENT ((uint64_t)1<<58)
  ------------------
 1189|    195|            decoded += size;
 1190|    195|            break;
 1191|    204|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_ON_DEMAND_NSSAI_TYPE:
  ------------------
  |  |  385|    204|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_ON_DEMAND_NSSAI_TYPE 0x61
  ------------------
  |  Branch (1191:9): [True: 204, False: 27.7k]
  ------------------
 1192|    204|            size = ogs_nas_5gs_decode_on_demand_nssai(&registration_accept->on_demand_nssai, pkbuf);
 1193|    204|            if (size < 0) {
  ------------------
  |  Branch (1193:17): [True: 2, False: 202]
  ------------------
 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|    202|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_ON_DEMAND_NSSAI_PRESENT;
  ------------------
  |  |  322|    202|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_ON_DEMAND_NSSAI_PRESENT ((uint64_t)1<<59)
  ------------------
 1199|    202|            decoded += size;
 1200|    202|            break;
 1201|    203|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE:
  ------------------
  |  |  386|    203|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE 0x63
  ------------------
  |  Branch (1201:9): [True: 203, False: 27.7k]
  ------------------
 1202|    203|            size = ogs_nas_5gs_decode_access_technology_utilization_control(&registration_accept->access_technology_utilization_control, pkbuf);
 1203|    203|            if (size < 0) {
  ------------------
  |  Branch (1203:17): [True: 1, False: 202]
  ------------------
 1204|      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__) 
  |  |  ------------------
  ------------------
 1205|      1|               return size;
 1206|      1|            }
 1207|       |
 1208|    202|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT;
  ------------------
  |  |  323|    202|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT ((uint64_t)1<<60)
  ------------------
 1209|    202|            decoded += size;
 1210|    202|            break;
 1211|    202|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_LP_WUSPS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  387|    202|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_LP_WUSPS_ASSISTANCE_INFORMATION_TYPE 0x64
  ------------------
  |  Branch (1211:9): [True: 202, False: 27.7k]
  ------------------
 1212|    202|            size = ogs_nas_5gs_decode_lp_wusps_assistance_information(&registration_accept->negotiated_lp_wusps_assistance_information, pkbuf);
 1213|    202|            if (size < 0) {
  ------------------
  |  Branch (1213:17): [True: 1, False: 201]
  ------------------
 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|    201|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_LP_WUSPS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  324|    201|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_LP_WUSPS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<61)
  ------------------
 1219|    201|            decoded += size;
 1220|    201|            break;
 1221|    784|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_LP_WUS_STATUS_TYPE:
  ------------------
  |  |  388|    784|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_LP_WUS_STATUS_TYPE 0x80
  ------------------
  |  Branch (1221:9): [True: 784, False: 27.1k]
  ------------------
 1222|    784|            decoded--;
 1223|    784|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    784|    do { \
  |  |  114|    784|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    784|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 784, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    784|        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|    784|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 784]
  |  |  ------------------
  ------------------
 1224|    784|            size = ogs_nas_5gs_decode_lp_wus_status(&registration_accept->lp_wus_status, pkbuf);
 1225|    784|            if (size < 0) {
  ------------------
  |  Branch (1225:17): [True: 0, False: 784]
  ------------------
 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|    784|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_LP_WUS_STATUS_PRESENT;
  ------------------
  |  |  325|    784|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_LP_WUS_STATUS_PRESENT ((uint64_t)1<<62)
  ------------------
 1231|    784|            decoded += size;
 1232|    784|            break;
 1233|  11.6k|        default:
  ------------------
  |  Branch (1233:9): [True: 11.6k, False: 16.3k]
  ------------------
 1234|  11.6k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  11.6k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  11.6k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  11.6k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  11.6k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  11.6k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  11.6k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1235|  11.6k|            break;
 1236|  27.9k|        }
 1237|  27.9k|    }
 1238|       |
 1239|    721|    return decoded;
 1240|    971|}
ogs_nas_5gs_decode_registration_complete:
 1243|     76|{
 1244|     76|    ogs_nas_5gs_registration_complete_t *registration_complete = &message->gmm.registration_complete;
 1245|     76|    int decoded = 0;
 1246|     76|    int size = 0;
 1247|       |
 1248|     76|    ogs_trace("[NAS] Decode REGISTRATION_COMPLETE\n");
  ------------------
  |  |   40|     76|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     76|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     76|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     76|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     76|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     76|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1249|       |
 1250|  2.04k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (1250:12): [True: 1.99k, False: 54]
  ------------------
 1251|  1.99k|        uint8_t *buffer = pkbuf->data;
 1252|  1.99k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (1252:24): [True: 708, False: 1.28k]
  ------------------
 1253|       |
 1254|  1.99k|        size = sizeof(uint8_t);
 1255|  1.99k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1255:13): [True: 0, False: 1.99k]
  ------------------
 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.99k|        decoded += size;
 1260|       |
 1261|  1.99k|        switch(type) {
 1262|    405|        case OGS_NAS_5GS_REGISTRATION_COMPLETE_SOR_TRANSPARENT_CONTAINER_TYPE:
  ------------------
  |  |  466|    405|#define OGS_NAS_5GS_REGISTRATION_COMPLETE_SOR_TRANSPARENT_CONTAINER_TYPE 0x73
  ------------------
  |  Branch (1262:9): [True: 405, False: 1.58k]
  ------------------
 1263|    405|            size = ogs_nas_5gs_decode_sor_transparent_container(&registration_complete->sor_transparent_container, pkbuf);
 1264|    405|            if (size < 0) {
  ------------------
  |  Branch (1264:17): [True: 22, False: 383]
  ------------------
 1265|     22|               ogs_error("ogs_nas_5gs_decode_sor_transparent_container() 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__) 
  |  |  ------------------
  ------------------
 1266|     22|               return size;
 1267|     22|            }
 1268|       |
 1269|    383|            registration_complete->presencemask |= OGS_NAS_5GS_REGISTRATION_COMPLETE_SOR_TRANSPARENT_CONTAINER_PRESENT;
  ------------------
  |  |  465|    383|#define OGS_NAS_5GS_REGISTRATION_COMPLETE_SOR_TRANSPARENT_CONTAINER_PRESENT ((uint64_t)1<<0)
  ------------------
 1270|    383|            decoded += size;
 1271|    383|            break;
 1272|  1.58k|        default:
  ------------------
  |  Branch (1272:9): [True: 1.58k, False: 405]
  ------------------
 1273|  1.58k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.58k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.58k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.58k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.58k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.58k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.58k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1274|  1.58k|            break;
 1275|  1.99k|        }
 1276|  1.99k|    }
 1277|       |
 1278|     54|    return decoded;
 1279|     76|}
ogs_nas_5gs_decode_registration_reject:
 1282|    220|{
 1283|    220|    ogs_nas_5gs_registration_reject_t *registration_reject = &message->gmm.registration_reject;
 1284|    220|    int decoded = 0;
 1285|    220|    int size = 0;
 1286|       |
 1287|    220|    ogs_trace("[NAS] Decode REGISTRATION_REJECT\n");
  ------------------
  |  |   40|    220|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    220|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    220|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    220|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    220|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    220|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1288|       |
 1289|    220|    size = ogs_nas_5gs_decode_5gmm_cause(&registration_reject->gmm_cause, pkbuf);
 1290|    220|    if (size < 0) {
  ------------------
  |  Branch (1290:9): [True: 0, False: 220]
  ------------------
 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|    220|    decoded += size;
 1296|       |
 1297|  5.82k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (1297:12): [True: 5.65k, False: 175]
  ------------------
 1298|  5.65k|        uint8_t *buffer = pkbuf->data;
 1299|  5.65k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (1299:24): [True: 1.20k, False: 4.45k]
  ------------------
 1300|       |
 1301|  5.65k|        size = sizeof(uint8_t);
 1302|  5.65k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1302:13): [True: 0, False: 5.65k]
  ------------------
 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.65k|        decoded += size;
 1307|       |
 1308|  5.65k|        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.45k]
  ------------------
 1310|    197|            size = ogs_nas_5gs_decode_gprs_timer_2(&registration_reject->t3346_value, pkbuf);
 1311|    197|            if (size < 0) {
  ------------------
  |  Branch (1311:17): [True: 3, False: 194]
  ------------------
 1312|      3|               ogs_error("ogs_nas_5gs_decode_gprs_timer_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__) 
  |  |  ------------------
  ------------------
 1313|      3|               return size;
 1314|      3|            }
 1315|       |
 1316|    194|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_T3346_VALUE_PRESENT;
  ------------------
  |  |  479|    194|#define OGS_NAS_5GS_REGISTRATION_REJECT_T3346_VALUE_PRESENT ((uint64_t)1<<0)
  ------------------
 1317|    194|            decoded += size;
 1318|    194|            break;
 1319|    200|        case OGS_NAS_5GS_REGISTRATION_REJECT_T3502_VALUE_TYPE:
  ------------------
  |  |  495|    200|#define OGS_NAS_5GS_REGISTRATION_REJECT_T3502_VALUE_TYPE 0x16
  ------------------
  |  Branch (1319:9): [True: 200, False: 5.45k]
  ------------------
 1320|    200|            size = ogs_nas_5gs_decode_gprs_timer_2(&registration_reject->t3502_value, pkbuf);
 1321|    200|            if (size < 0) {
  ------------------
  |  Branch (1321:17): [True: 1, False: 199]
  ------------------
 1322|      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__) 
  |  |  ------------------
  ------------------
 1323|      1|               return size;
 1324|      1|            }
 1325|       |
 1326|    199|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_T3502_VALUE_PRESENT;
  ------------------
  |  |  480|    199|#define OGS_NAS_5GS_REGISTRATION_REJECT_T3502_VALUE_PRESENT ((uint64_t)1<<1)
  ------------------
 1327|    199|            decoded += size;
 1328|    199|            break;
 1329|    197|        case OGS_NAS_5GS_REGISTRATION_REJECT_EAP_MESSAGE_TYPE:
  ------------------
  |  |  496|    197|#define OGS_NAS_5GS_REGISTRATION_REJECT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (1329:9): [True: 197, False: 5.45k]
  ------------------
 1330|    197|            size = ogs_nas_5gs_decode_eap_message(&registration_reject->eap_message, pkbuf);
 1331|    197|            if (size < 0) {
  ------------------
  |  Branch (1331:17): [True: 1, False: 196]
  ------------------
 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|    196|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  481|    196|#define OGS_NAS_5GS_REGISTRATION_REJECT_EAP_MESSAGE_PRESENT ((uint64_t)1<<2)
  ------------------
 1337|    196|            decoded += size;
 1338|    196|            break;
 1339|    203|        case OGS_NAS_5GS_REGISTRATION_REJECT_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  497|    203|#define OGS_NAS_5GS_REGISTRATION_REJECT_REJECTED_NSSAI_TYPE 0x69
  ------------------
  |  Branch (1339:9): [True: 203, False: 5.44k]
  ------------------
 1340|    203|            size = ogs_nas_5gs_decode_rejected_nssai(&registration_reject->rejected_nssai, pkbuf);
 1341|    203|            if (size < 0) {
  ------------------
  |  Branch (1341:17): [True: 1, False: 202]
  ------------------
 1342|      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__) 
  |  |  ------------------
  ------------------
 1343|      1|               return size;
 1344|      1|            }
 1345|       |
 1346|    202|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  482|    202|#define OGS_NAS_5GS_REGISTRATION_REJECT_REJECTED_NSSAI_PRESENT ((uint64_t)1<<3)
  ------------------
 1347|    202|            decoded += size;
 1348|    202|            break;
 1349|    201|        case OGS_NAS_5GS_REGISTRATION_REJECT_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  498|    201|#define OGS_NAS_5GS_REGISTRATION_REJECT_CAG_INFORMATION_LIST_TYPE 0x75
  ------------------
  |  Branch (1349:9): [True: 201, False: 5.45k]
  ------------------
 1350|    201|            size = ogs_nas_5gs_decode_cag_information_list(&registration_reject->cag_information_list, pkbuf);
 1351|    201|            if (size < 0) {
  ------------------
  |  Branch (1351:17): [True: 6, False: 195]
  ------------------
 1352|      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__) 
  |  |  ------------------
  ------------------
 1353|      6|               return size;
 1354|      6|            }
 1355|       |
 1356|    195|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  483|    195|#define OGS_NAS_5GS_REGISTRATION_REJECT_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<4)
  ------------------
 1357|    195|            decoded += size;
 1358|    195|            break;
 1359|    205|        case OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  499|    205|#define OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_REJECTED_NSSAI_TYPE 0x68
  ------------------
  |  Branch (1359:9): [True: 205, False: 5.44k]
  ------------------
 1360|    205|            size = ogs_nas_5gs_decode_extended_rejected_nssai(&registration_reject->extended_rejected_nssai, pkbuf);
 1361|    205|            if (size < 0) {
  ------------------
  |  Branch (1361:17): [True: 3, False: 202]
  ------------------
 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|    202|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  484|    202|#define OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_REJECTED_NSSAI_PRESENT ((uint64_t)1<<5)
  ------------------
 1367|    202|            decoded += size;
 1368|    202|            break;
 1369|    201|        case OGS_NAS_5GS_REGISTRATION_REJECT_DISASTER_RETURN_WAIT_RANGE_TYPE:
  ------------------
  |  |  500|    201|#define OGS_NAS_5GS_REGISTRATION_REJECT_DISASTER_RETURN_WAIT_RANGE_TYPE 0x2C
  ------------------
  |  Branch (1369:9): [True: 201, False: 5.45k]
  ------------------
 1370|    201|            size = ogs_nas_5gs_decode_registration_wait_range(&registration_reject->disaster_return_wait_range, pkbuf);
 1371|    201|            if (size < 0) {
  ------------------
  |  Branch (1371:17): [True: 2, False: 199]
  ------------------
 1372|      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__) 
  |  |  ------------------
  ------------------
 1373|      2|               return size;
 1374|      2|            }
 1375|       |
 1376|    199|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_DISASTER_RETURN_WAIT_RANGE_PRESENT;
  ------------------
  |  |  485|    199|#define OGS_NAS_5GS_REGISTRATION_REJECT_DISASTER_RETURN_WAIT_RANGE_PRESENT ((uint64_t)1<<6)
  ------------------
 1377|    199|            decoded += size;
 1378|    199|            break;
 1379|    230|        case OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  501|    230|#define OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_CAG_INFORMATION_LIST_TYPE 0x71
  ------------------
  |  Branch (1379:9): [True: 230, False: 5.42k]
  ------------------
 1380|    230|            size = ogs_nas_5gs_decode_extended_cag_information_list(&registration_reject->extended_cag_information_list, pkbuf);
 1381|    230|            if (size < 0) {
  ------------------
  |  Branch (1381:17): [True: 6, False: 224]
  ------------------
 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|    224|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  486|    224|#define OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<7)
  ------------------
 1387|    224|            decoded += size;
 1388|    224|            break;
 1389|    196|        case OGS_NAS_5GS_REGISTRATION_REJECT_LOWER_BOUND_TIMER_VALUE_TYPE:
  ------------------
  |  |  502|    196|#define OGS_NAS_5GS_REGISTRATION_REJECT_LOWER_BOUND_TIMER_VALUE_TYPE 0x3A
  ------------------
  |  Branch (1389:9): [True: 196, False: 5.45k]
  ------------------
 1390|    196|            size = ogs_nas_5gs_decode_gprs_timer_3(&registration_reject->lower_bound_timer_value, pkbuf);
 1391|    196|            if (size < 0) {
  ------------------
  |  Branch (1391:17): [True: 1, False: 195]
  ------------------
 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|    195|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_LOWER_BOUND_TIMER_VALUE_PRESENT;
  ------------------
  |  |  487|    195|#define OGS_NAS_5GS_REGISTRATION_REJECT_LOWER_BOUND_TIMER_VALUE_PRESENT ((uint64_t)1<<8)
  ------------------
 1397|    195|            decoded += size;
 1398|    195|            break;
 1399|    213|        case OGS_NAS_5GS_REGISTRATION_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE:
  ------------------
  |  |  503|    213|#define OGS_NAS_5GS_REGISTRATION_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE 0x1D
  ------------------
  |  Branch (1399:9): [True: 213, False: 5.43k]
  ------------------
 1400|    213|            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|    213|            if (size < 0) {
  ------------------
  |  Branch (1401:17): [True: 1, False: 212]
  ------------------
 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|    212|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT;
  ------------------
  |  |  488|    212|#define OGS_NAS_5GS_REGISTRATION_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT ((uint64_t)1<<9)
  ------------------
 1407|    212|            decoded += size;
 1408|    212|            break;
 1409|    196|        case OGS_NAS_5GS_REGISTRATION_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_TYPE:
  ------------------
  |  |  504|    196|#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: 196, False: 5.45k]
  ------------------
 1410|    196|            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|    196|            if (size < 0) {
  ------------------
  |  Branch (1411:17): [True: 1, False: 195]
  ------------------
 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|    195|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_PRESENT;
  ------------------
  |  |  489|    195|#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|    195|            decoded += size;
 1418|    195|            break;
 1419|    227|        case OGS_NAS_5GS_REGISTRATION_REJECT_N3IWF_IDENTIFIER_TYPE:
  ------------------
  |  |  505|    227|#define OGS_NAS_5GS_REGISTRATION_REJECT_N3IWF_IDENTIFIER_TYPE 0x3E
  ------------------
  |  Branch (1419:9): [True: 227, False: 5.42k]
  ------------------
 1420|    227|            size = ogs_nas_5gs_decode_n3iwf_identifier(&registration_reject->n3iwf_identifier, pkbuf);
 1421|    227|            if (size < 0) {
  ------------------
  |  Branch (1421:17): [True: 9, False: 218]
  ------------------
 1422|      9|               ogs_error("ogs_nas_5gs_decode_n3iwf_identifier() 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__) 
  |  |  ------------------
  ------------------
 1423|      9|               return size;
 1424|      9|            }
 1425|       |
 1426|    218|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_N3IWF_IDENTIFIER_PRESENT;
  ------------------
  |  |  490|    218|#define OGS_NAS_5GS_REGISTRATION_REJECT_N3IWF_IDENTIFIER_PRESENT ((uint64_t)1<<11)
  ------------------
 1427|    218|            decoded += size;
 1428|    218|            break;
 1429|    208|        case OGS_NAS_5GS_REGISTRATION_REJECT_TNAN_INFORMATION_TYPE:
  ------------------
  |  |  506|    208|#define OGS_NAS_5GS_REGISTRATION_REJECT_TNAN_INFORMATION_TYPE 0x4D
  ------------------
  |  Branch (1429:9): [True: 208, False: 5.44k]
  ------------------
 1430|    208|            size = ogs_nas_5gs_decode_tnan_information(&registration_reject->tnan_information, pkbuf);
 1431|    208|            if (size < 0) {
  ------------------
  |  Branch (1431:17): [True: 5, False: 203]
  ------------------
 1432|      5|               ogs_error("ogs_nas_5gs_decode_tnan_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__) 
  |  |  ------------------
  ------------------
 1433|      5|               return size;
 1434|      5|            }
 1435|       |
 1436|    203|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_TNAN_INFORMATION_PRESENT;
  ------------------
  |  |  491|    203|#define OGS_NAS_5GS_REGISTRATION_REJECT_TNAN_INFORMATION_PRESENT ((uint64_t)1<<12)
  ------------------
 1437|    203|            decoded += size;
 1438|    203|            break;
 1439|    199|        case OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_5GMM_CAUSE_TYPE:
  ------------------
  |  |  507|    199|#define OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_5GMM_CAUSE_TYPE 0x62
  ------------------
  |  Branch (1439:9): [True: 199, False: 5.45k]
  ------------------
 1440|    199|            size = ogs_nas_5gs_decode_extended_5gmm_cause(&registration_reject->extended_gmm_cause, pkbuf);
 1441|    199|            if (size < 0) {
  ------------------
  |  Branch (1441:17): [True: 4, False: 195]
  ------------------
 1442|      4|               ogs_error("ogs_nas_5gs_decode_extended_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__) 
  |  |  ------------------
  ------------------
 1443|      4|               return size;
 1444|      4|            }
 1445|       |
 1446|    195|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_5GMM_CAUSE_PRESENT;
  ------------------
  |  |  492|    195|#define OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_5GMM_CAUSE_PRESENT ((uint64_t)1<<13)
  ------------------
 1447|    195|            decoded += size;
 1448|    195|            break;
 1449|    227|        case OGS_NAS_5GS_REGISTRATION_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE:
  ------------------
  |  |  508|    227|#define OGS_NAS_5GS_REGISTRATION_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE 0x63
  ------------------
  |  Branch (1449:9): [True: 227, False: 5.42k]
  ------------------
 1450|    227|            size = ogs_nas_5gs_decode_access_technology_utilization_control(&registration_reject->access_technology_utilization_control, pkbuf);
 1451|    227|            if (size < 0) {
  ------------------
  |  Branch (1451:17): [True: 1, False: 226]
  ------------------
 1452|      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__) 
  |  |  ------------------
  ------------------
 1453|      1|               return size;
 1454|      1|            }
 1455|       |
 1456|    226|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT;
  ------------------
  |  |  493|    226|#define OGS_NAS_5GS_REGISTRATION_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT ((uint64_t)1<<14)
  ------------------
 1457|    226|            decoded += size;
 1458|    226|            break;
 1459|  2.55k|        default:
  ------------------
  |  Branch (1459:9): [True: 2.55k, False: 3.10k]
  ------------------
 1460|  2.55k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.55k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.55k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.55k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.55k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.55k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.55k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1461|  2.55k|            break;
 1462|  5.65k|        }
 1463|  5.65k|    }
 1464|       |
 1465|    175|    return decoded;
 1466|    220|}
ogs_nas_5gs_decode_deregistration_request_from_ue:
 1469|     56|{
 1470|     56|    ogs_nas_5gs_deregistration_request_from_ue_t *deregistration_request_from_ue = &message->gmm.deregistration_request_from_ue;
 1471|     56|    int decoded = 0;
 1472|     56|    int size = 0;
 1473|       |
 1474|     56|    ogs_trace("[NAS] Decode DEREGISTRATION_REQUEST_FROM_UE\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__) 
  |  |  ------------------
  ------------------
 1475|       |
 1476|     56|    size = ogs_nas_5gs_decode_de_registration_type(&deregistration_request_from_ue->de_registration_type, pkbuf);
 1477|     56|    if (size < 0) {
  ------------------
  |  Branch (1477:9): [True: 0, False: 56]
  ------------------
 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|     56|    decoded += size;
 1483|       |
 1484|     56|    size = ogs_nas_5gs_decode_5gs_mobile_identity(&deregistration_request_from_ue->mobile_identity, pkbuf);
 1485|     56|    if (size < 0) {
  ------------------
  |  Branch (1485:9): [True: 1, False: 55]
  ------------------
 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|     55|    decoded += size;
 1491|       |
 1492|  2.60k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (1492:12): [True: 2.55k, False: 52]
  ------------------
 1493|  2.55k|        uint8_t *buffer = pkbuf->data;
 1494|  2.55k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (1494:24): [True: 793, False: 1.76k]
  ------------------
 1495|       |
 1496|  2.55k|        size = sizeof(uint8_t);
 1497|  2.55k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1497:13): [True: 0, False: 2.55k]
  ------------------
 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.55k|        decoded += size;
 1502|       |
 1503|  2.55k|        switch(type) {
 1504|    197|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_UNAVAILABILITY_INFORMATION_TYPE:
  ------------------
  |  |  539|    197|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_UNAVAILABILITY_INFORMATION_TYPE 0x3C
  ------------------
  |  Branch (1504:9): [True: 197, False: 2.35k]
  ------------------
 1505|    197|            size = ogs_nas_5gs_decode_unavailability_information(&deregistration_request_from_ue->unavailability_information, pkbuf);
 1506|    197|            if (size < 0) {
  ------------------
  |  Branch (1506:17): [True: 2, False: 195]
  ------------------
 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|    195|            deregistration_request_from_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_UNAVAILABILITY_INFORMATION_PRESENT;
  ------------------
  |  |  537|    195|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_UNAVAILABILITY_INFORMATION_PRESENT ((uint64_t)1<<0)
  ------------------
 1512|    195|            decoded += size;
 1513|    195|            break;
 1514|    201|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_NAS_MESSAGE_CONTAINER_TYPE:
  ------------------
  |  |  540|    201|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_NAS_MESSAGE_CONTAINER_TYPE 0x71
  ------------------
  |  Branch (1514:9): [True: 201, False: 2.35k]
  ------------------
 1515|    201|            size = ogs_nas_5gs_decode_message_container(&deregistration_request_from_ue->nas_message_container, pkbuf);
 1516|    201|            if (size < 0) {
  ------------------
  |  Branch (1516:17): [True: 1, False: 200]
  ------------------
 1517|      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__) 
  |  |  ------------------
  ------------------
 1518|      1|               return size;
 1519|      1|            }
 1520|       |
 1521|    200|            deregistration_request_from_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_NAS_MESSAGE_CONTAINER_PRESENT;
  ------------------
  |  |  538|    200|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_NAS_MESSAGE_CONTAINER_PRESENT ((uint64_t)1<<1)
  ------------------
 1522|    200|            decoded += size;
 1523|    200|            break;
 1524|  2.15k|        default:
  ------------------
  |  Branch (1524:9): [True: 2.15k, False: 398]
  ------------------
 1525|  2.15k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.15k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.15k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.15k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.15k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.15k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.15k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1526|  2.15k|            break;
 1527|  2.55k|        }
 1528|  2.55k|    }
 1529|       |
 1530|     52|    return decoded;
 1531|     55|}
ogs_nas_5gs_decode_deregistration_request_to_ue:
 1534|    178|{
 1535|    178|    ogs_nas_5gs_deregistration_request_to_ue_t *deregistration_request_to_ue = &message->gmm.deregistration_request_to_ue;
 1536|    178|    int decoded = 0;
 1537|    178|    int size = 0;
 1538|       |
 1539|    178|    ogs_trace("[NAS] Decode DEREGISTRATION_REQUEST_TO_UE\n");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1540|       |
 1541|    178|    size = ogs_nas_5gs_decode_de_registration_type(&deregistration_request_to_ue->de_registration_type, pkbuf);
 1542|    178|    if (size < 0) {
  ------------------
  |  Branch (1542:9): [True: 0, False: 178]
  ------------------
 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|    178|    decoded += size;
 1548|       |
 1549|  4.29k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (1549:12): [True: 4.14k, False: 150]
  ------------------
 1550|  4.14k|        uint8_t *buffer = pkbuf->data;
 1551|  4.14k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (1551:24): [True: 791, False: 3.35k]
  ------------------
 1552|       |
 1553|  4.14k|        size = sizeof(uint8_t);
 1554|  4.14k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1554:13): [True: 0, False: 4.14k]
  ------------------
 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.14k|        decoded += size;
 1559|       |
 1560|  4.14k|        switch(type) {
 1561|    221|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_5GMM_CAUSE_TYPE:
  ------------------
  |  |  568|    221|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_5GMM_CAUSE_TYPE 0x58
  ------------------
  |  Branch (1561:9): [True: 221, False: 3.92k]
  ------------------
 1562|    221|            size = ogs_nas_5gs_decode_5gmm_cause(&deregistration_request_to_ue->gmm_cause, pkbuf);
 1563|    221|            if (size < 0) {
  ------------------
  |  Branch (1563:17): [True: 5, False: 216]
  ------------------
 1564|      5|               ogs_error("ogs_nas_5gs_decode_5gmm_cause() 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__) 
  |  |  ------------------
  ------------------
 1565|      5|               return size;
 1566|      5|            }
 1567|       |
 1568|    216|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_5GMM_CAUSE_PRESENT;
  ------------------
  |  |  557|    216|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_5GMM_CAUSE_PRESENT ((uint64_t)1<<0)
  ------------------
 1569|    216|            decoded += size;
 1570|    216|            break;
 1571|    198|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_T3346_VALUE_TYPE:
  ------------------
  |  |  569|    198|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_T3346_VALUE_TYPE 0x5F
  ------------------
  |  Branch (1571:9): [True: 198, False: 3.94k]
  ------------------
 1572|    198|            size = ogs_nas_5gs_decode_gprs_timer_2(&deregistration_request_to_ue->t3346_value, pkbuf);
 1573|    198|            if (size < 0) {
  ------------------
  |  Branch (1573:17): [True: 1, False: 197]
  ------------------
 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|    197|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_T3346_VALUE_PRESENT;
  ------------------
  |  |  558|    197|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_T3346_VALUE_PRESENT ((uint64_t)1<<1)
  ------------------
 1579|    197|            decoded += size;
 1580|    197|            break;
 1581|    213|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  570|    213|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_REJECTED_NSSAI_TYPE 0x6D
  ------------------
  |  Branch (1581:9): [True: 213, False: 3.93k]
  ------------------
 1582|    213|            size = ogs_nas_5gs_decode_rejected_nssai(&deregistration_request_to_ue->rejected_nssai, pkbuf);
 1583|    213|            if (size < 0) {
  ------------------
  |  Branch (1583:17): [True: 2, False: 211]
  ------------------
 1584|      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__) 
  |  |  ------------------
  ------------------
 1585|      2|               return size;
 1586|      2|            }
 1587|       |
 1588|    211|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  559|    211|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_REJECTED_NSSAI_PRESENT ((uint64_t)1<<2)
  ------------------
 1589|    211|            decoded += size;
 1590|    211|            break;
 1591|    218|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  571|    218|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_CAG_INFORMATION_LIST_TYPE 0x75
  ------------------
  |  Branch (1591:9): [True: 218, False: 3.92k]
  ------------------
 1592|    218|            size = ogs_nas_5gs_decode_cag_information_list(&deregistration_request_to_ue->cag_information_list, pkbuf);
 1593|    218|            if (size < 0) {
  ------------------
  |  Branch (1593:17): [True: 6, False: 212]
  ------------------
 1594|      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__) 
  |  |  ------------------
  ------------------
 1595|      6|               return size;
 1596|      6|            }
 1597|       |
 1598|    212|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  560|    212|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<3)
  ------------------
 1599|    212|            decoded += size;
 1600|    212|            break;
 1601|    232|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  572|    232|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_REJECTED_NSSAI_TYPE 0x68
  ------------------
  |  Branch (1601:9): [True: 232, False: 3.91k]
  ------------------
 1602|    232|            size = ogs_nas_5gs_decode_extended_rejected_nssai(&deregistration_request_to_ue->extended_rejected_nssai, pkbuf);
 1603|    232|            if (size < 0) {
  ------------------
  |  Branch (1603:17): [True: 1, False: 231]
  ------------------
 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|    231|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  561|    231|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_REJECTED_NSSAI_PRESENT ((uint64_t)1<<4)
  ------------------
 1609|    231|            decoded += size;
 1610|    231|            break;
 1611|    198|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_DISASTER_RETURN_WAIT_RANGE_TYPE:
  ------------------
  |  |  573|    198|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_DISASTER_RETURN_WAIT_RANGE_TYPE 0x2C
  ------------------
  |  Branch (1611:9): [True: 198, False: 3.94k]
  ------------------
 1612|    198|            size = ogs_nas_5gs_decode_registration_wait_range(&deregistration_request_to_ue->disaster_return_wait_range, pkbuf);
 1613|    198|            if (size < 0) {
  ------------------
  |  Branch (1613:17): [True: 3, False: 195]
  ------------------
 1614|      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__) 
  |  |  ------------------
  ------------------
 1615|      3|               return size;
 1616|      3|            }
 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|    206|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  574|    206|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_CAG_INFORMATION_LIST_TYPE 0x71
  ------------------
  |  Branch (1621:9): [True: 206, False: 3.93k]
  ------------------
 1622|    206|            size = ogs_nas_5gs_decode_extended_cag_information_list(&deregistration_request_to_ue->extended_cag_information_list, pkbuf);
 1623|    206|            if (size < 0) {
  ------------------
  |  Branch (1623:17): [True: 4, False: 202]
  ------------------
 1624|      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__) 
  |  |  ------------------
  ------------------
 1625|      4|               return size;
 1626|      4|            }
 1627|       |
 1628|    202|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  563|    202|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<6)
  ------------------
 1629|    202|            decoded += size;
 1630|    202|            break;
 1631|    204|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_LOWER_BOUND_TIMER_VALUE_TYPE:
  ------------------
  |  |  575|    204|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_LOWER_BOUND_TIMER_VALUE_TYPE 0x3A
  ------------------
  |  Branch (1631:9): [True: 204, False: 3.93k]
  ------------------
 1632|    204|            size = ogs_nas_5gs_decode_gprs_timer_3(&deregistration_request_to_ue->lower_bound_timer_value, pkbuf);
 1633|    204|            if (size < 0) {
  ------------------
  |  Branch (1633:17): [True: 2, False: 202]
  ------------------
 1634|      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__) 
  |  |  ------------------
  ------------------
 1635|      2|               return size;
 1636|      2|            }
 1637|       |
 1638|    202|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_LOWER_BOUND_TIMER_VALUE_PRESENT;
  ------------------
  |  |  564|    202|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_LOWER_BOUND_TIMER_VALUE_PRESENT ((uint64_t)1<<7)
  ------------------
 1639|    202|            decoded += size;
 1640|    202|            break;
 1641|    207|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE:
  ------------------
  |  |  576|    207|#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: 207, False: 3.93k]
  ------------------
 1642|    207|            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|    207|            if (size < 0) {
  ------------------
  |  Branch (1643:17): [True: 1, False: 206]
  ------------------
 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|    206|            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|    206|#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|    206|            decoded += size;
 1650|    206|            break;
 1651|    195|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_TYPE:
  ------------------
  |  |  577|    195|#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: 195, False: 3.94k]
  ------------------
 1652|    195|            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|    195|            if (size < 0) {
  ------------------
  |  Branch (1653:17): [True: 1, False: 194]
  ------------------
 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|    194|            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|    194|#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|    194|            decoded += size;
 1660|    194|            break;
 1661|    197|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE:
  ------------------
  |  |  578|    197|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE 0x63
  ------------------
  |  Branch (1661:9): [True: 197, False: 3.94k]
  ------------------
 1662|    197|            size = ogs_nas_5gs_decode_access_technology_utilization_control(&deregistration_request_to_ue->access_technology_utilization_control, pkbuf);
 1663|    197|            if (size < 0) {
  ------------------
  |  Branch (1663:17): [True: 2, False: 195]
  ------------------
 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|    195|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT;
  ------------------
  |  |  567|    195|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT ((uint64_t)1<<10)
  ------------------
 1669|    195|            decoded += size;
 1670|    195|            break;
 1671|  1.85k|        default:
  ------------------
  |  Branch (1671:9): [True: 1.85k, False: 2.28k]
  ------------------
 1672|  1.85k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.85k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 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__) 
  |  |  ------------------
  ------------------
 1673|  1.85k|            break;
 1674|  4.14k|        }
 1675|  4.14k|    }
 1676|       |
 1677|    150|    return decoded;
 1678|    178|}
ogs_nas_5gs_decode_service_request:
 1681|    118|{
 1682|    118|    ogs_nas_5gs_service_request_t *service_request = &message->gmm.service_request;
 1683|    118|    int decoded = 0;
 1684|    118|    int size = 0;
 1685|       |
 1686|    118|    ogs_trace("[NAS] Decode SERVICE_REQUEST\n");
  ------------------
  |  |   40|    118|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    118|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    118|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    118|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    118|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    118|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1687|       |
 1688|    118|    size = ogs_nas_5gs_decode_key_set_identifier(&service_request->ngksi, pkbuf);
 1689|    118|    if (size < 0) {
  ------------------
  |  Branch (1689:9): [True: 0, False: 118]
  ------------------
 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|    118|    decoded += size;
 1695|       |
 1696|    118|    size = ogs_nas_5gs_decode_5gs_mobile_identity(&service_request->s_tmsi, pkbuf);
 1697|    118|    if (size < 0) {
  ------------------
  |  Branch (1697:9): [True: 2, False: 116]
  ------------------
 1698|      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__) 
  |  |  ------------------
  ------------------
 1699|      2|        return size;
 1700|      2|    }
 1701|       |
 1702|    116|    decoded += size;
 1703|       |
 1704|  3.52k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (1704:12): [True: 3.42k, False: 99]
  ------------------
 1705|  3.42k|        uint8_t *buffer = pkbuf->data;
 1706|  3.42k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (1706:24): [True: 672, False: 2.75k]
  ------------------
 1707|       |
 1708|  3.42k|        size = sizeof(uint8_t);
 1709|  3.42k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1709:13): [True: 0, False: 3.42k]
  ------------------
 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|  3.42k|        decoded += size;
 1714|       |
 1715|  3.42k|        switch(type) {
 1716|    205|        case OGS_NAS_5GS_SERVICE_REQUEST_UPLINK_DATA_STATUS_TYPE:
  ------------------
  |  |  609|    205|#define OGS_NAS_5GS_SERVICE_REQUEST_UPLINK_DATA_STATUS_TYPE 0x40
  ------------------
  |  Branch (1716:9): [True: 205, False: 3.22k]
  ------------------
 1717|    205|            size = ogs_nas_5gs_decode_uplink_data_status(&service_request->uplink_data_status, pkbuf);
 1718|    205|            if (size < 0) {
  ------------------
  |  Branch (1718:17): [True: 2, False: 203]
  ------------------
 1719|      2|               ogs_error("ogs_nas_5gs_decode_uplink_data_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__) 
  |  |  ------------------
  ------------------
 1720|      2|               return size;
 1721|      2|            }
 1722|       |
 1723|    203|            service_request->presencemask |= OGS_NAS_5GS_SERVICE_REQUEST_UPLINK_DATA_STATUS_PRESENT;
  ------------------
  |  |  603|    203|#define OGS_NAS_5GS_SERVICE_REQUEST_UPLINK_DATA_STATUS_PRESENT ((uint64_t)1<<0)
  ------------------
 1724|    203|            decoded += size;
 1725|    203|            break;
 1726|    240|        case OGS_NAS_5GS_SERVICE_REQUEST_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  |  610|    240|#define OGS_NAS_5GS_SERVICE_REQUEST_PDU_SESSION_STATUS_TYPE 0x50
  ------------------
  |  Branch (1726:9): [True: 240, False: 3.18k]
  ------------------
 1727|    240|            size = ogs_nas_5gs_decode_pdu_session_status(&service_request->pdu_session_status, pkbuf);
 1728|    240|            if (size < 0) {
  ------------------
  |  Branch (1728:17): [True: 1, False: 239]
  ------------------
 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|    239|            service_request->presencemask |= OGS_NAS_5GS_SERVICE_REQUEST_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  |  604|    239|#define OGS_NAS_5GS_SERVICE_REQUEST_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<1)
  ------------------
 1734|    239|            decoded += size;
 1735|    239|            break;
 1736|    202|        case OGS_NAS_5GS_SERVICE_REQUEST_ALLOWED_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  |  611|    202|#define OGS_NAS_5GS_SERVICE_REQUEST_ALLOWED_PDU_SESSION_STATUS_TYPE 0x25
  ------------------
  |  Branch (1736:9): [True: 202, False: 3.22k]
  ------------------
 1737|    202|            size = ogs_nas_5gs_decode_allowed_pdu_session_status(&service_request->allowed_pdu_session_status, pkbuf);
 1738|    202|            if (size < 0) {
  ------------------
  |  Branch (1738:17): [True: 4, False: 198]
  ------------------
 1739|      4|               ogs_error("ogs_nas_5gs_decode_allowed_pdu_session_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__) 
  |  |  ------------------
  ------------------
 1740|      4|               return size;
 1741|      4|            }
 1742|       |
 1743|    198|            service_request->presencemask |= OGS_NAS_5GS_SERVICE_REQUEST_ALLOWED_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  |  605|    198|#define OGS_NAS_5GS_SERVICE_REQUEST_ALLOWED_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<2)
  ------------------
 1744|    198|            decoded += size;
 1745|    198|            break;
 1746|    206|        case OGS_NAS_5GS_SERVICE_REQUEST_NAS_MESSAGE_CONTAINER_TYPE:
  ------------------
  |  |  612|    206|#define OGS_NAS_5GS_SERVICE_REQUEST_NAS_MESSAGE_CONTAINER_TYPE 0x71
  ------------------
  |  Branch (1746:9): [True: 206, False: 3.22k]
  ------------------
 1747|    206|            size = ogs_nas_5gs_decode_message_container(&service_request->nas_message_container, pkbuf);
 1748|    206|            if (size < 0) {
  ------------------
  |  Branch (1748:17): [True: 2, False: 204]
  ------------------
 1749|      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__) 
  |  |  ------------------
  ------------------
 1750|      2|               return size;
 1751|      2|            }
 1752|       |
 1753|    204|            service_request->presencemask |= OGS_NAS_5GS_SERVICE_REQUEST_NAS_MESSAGE_CONTAINER_PRESENT;
  ------------------
  |  |  606|    204|#define OGS_NAS_5GS_SERVICE_REQUEST_NAS_MESSAGE_CONTAINER_PRESENT ((uint64_t)1<<3)
  ------------------
 1754|    204|            decoded += size;
 1755|    204|            break;
 1756|    206|        case OGS_NAS_5GS_SERVICE_REQUEST_UE_REQUEST_TYPE_TYPE:
  ------------------
  |  |  613|    206|#define OGS_NAS_5GS_SERVICE_REQUEST_UE_REQUEST_TYPE_TYPE 0x29
  ------------------
  |  Branch (1756:9): [True: 206, False: 3.22k]
  ------------------
 1757|    206|            size = ogs_nas_5gs_decode_ue_request_type(&service_request->ue_request_type, pkbuf);
 1758|    206|            if (size < 0) {
  ------------------
  |  Branch (1758:17): [True: 7, False: 199]
  ------------------
 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|    199|            service_request->presencemask |= OGS_NAS_5GS_SERVICE_REQUEST_UE_REQUEST_TYPE_PRESENT;
  ------------------
  |  |  607|    199|#define OGS_NAS_5GS_SERVICE_REQUEST_UE_REQUEST_TYPE_PRESENT ((uint64_t)1<<4)
  ------------------
 1764|    199|            decoded += size;
 1765|    199|            break;
 1766|    237|        case OGS_NAS_5GS_SERVICE_REQUEST_PAGING_RESTRICTION_TYPE:
  ------------------
  |  |  614|    237|#define OGS_NAS_5GS_SERVICE_REQUEST_PAGING_RESTRICTION_TYPE 0x28
  ------------------
  |  Branch (1766:9): [True: 237, False: 3.19k]
  ------------------
 1767|    237|            size = ogs_nas_5gs_decode_paging_restriction(&service_request->paging_restriction, pkbuf);
 1768|    237|            if (size < 0) {
  ------------------
  |  Branch (1768:17): [True: 1, False: 236]
  ------------------
 1769|      1|               ogs_error("ogs_nas_5gs_decode_paging_restriction() 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__) 
  |  |  ------------------
  ------------------
 1770|      1|               return size;
 1771|      1|            }
 1772|       |
 1773|    236|            service_request->presencemask |= OGS_NAS_5GS_SERVICE_REQUEST_PAGING_RESTRICTION_PRESENT;
  ------------------
  |  |  608|    236|#define OGS_NAS_5GS_SERVICE_REQUEST_PAGING_RESTRICTION_PRESENT ((uint64_t)1<<5)
  ------------------
 1774|    236|            decoded += size;
 1775|    236|            break;
 1776|  2.13k|        default:
  ------------------
  |  Branch (1776:9): [True: 2.13k, False: 1.29k]
  ------------------
 1777|  2.13k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.13k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.13k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.13k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.13k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.13k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.13k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1778|  2.13k|            break;
 1779|  3.42k|        }
 1780|  3.42k|    }
 1781|       |
 1782|     99|    return decoded;
 1783|    116|}
ogs_nas_5gs_decode_service_reject:
 1786|    162|{
 1787|    162|    ogs_nas_5gs_service_reject_t *service_reject = &message->gmm.service_reject;
 1788|    162|    int decoded = 0;
 1789|    162|    int size = 0;
 1790|       |
 1791|    162|    ogs_trace("[NAS] Decode SERVICE_REJECT\n");
  ------------------
  |  |   40|    162|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    162|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    162|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    162|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    162|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    162|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1792|       |
 1793|    162|    size = ogs_nas_5gs_decode_5gmm_cause(&service_reject->gmm_cause, pkbuf);
 1794|    162|    if (size < 0) {
  ------------------
  |  Branch (1794:9): [True: 0, False: 162]
  ------------------
 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|    162|    decoded += size;
 1800|       |
 1801|  3.72k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (1801:12): [True: 3.57k, False: 143]
  ------------------
 1802|  3.57k|        uint8_t *buffer = pkbuf->data;
 1803|  3.57k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (1803:24): [True: 636, False: 2.94k]
  ------------------
 1804|       |
 1805|  3.57k|        size = sizeof(uint8_t);
 1806|  3.57k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1806:13): [True: 0, False: 3.57k]
  ------------------
 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.57k|        decoded += size;
 1811|       |
 1812|  3.57k|        switch(type) {
 1813|    198|        case OGS_NAS_5GS_SERVICE_REJECT_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  |  646|    198|#define OGS_NAS_5GS_SERVICE_REJECT_PDU_SESSION_STATUS_TYPE 0x50
  ------------------
  |  Branch (1813:9): [True: 198, False: 3.38k]
  ------------------
 1814|    198|            size = ogs_nas_5gs_decode_pdu_session_status(&service_reject->pdu_session_status, pkbuf);
 1815|    198|            if (size < 0) {
  ------------------
  |  Branch (1815:17): [True: 1, False: 197]
  ------------------
 1816|      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__) 
  |  |  ------------------
  ------------------
 1817|      1|               return size;
 1818|      1|            }
 1819|       |
 1820|    197|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  |  635|    197|#define OGS_NAS_5GS_SERVICE_REJECT_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<0)
  ------------------
 1821|    197|            decoded += size;
 1822|    197|            break;
 1823|    201|        case OGS_NAS_5GS_SERVICE_REJECT_T3346_VALUE_TYPE:
  ------------------
  |  |  647|    201|#define OGS_NAS_5GS_SERVICE_REJECT_T3346_VALUE_TYPE 0x5F
  ------------------
  |  Branch (1823:9): [True: 201, False: 3.37k]
  ------------------
 1824|    201|            size = ogs_nas_5gs_decode_gprs_timer_2(&service_reject->t3346_value, pkbuf);
 1825|    201|            if (size < 0) {
  ------------------
  |  Branch (1825:17): [True: 1, False: 200]
  ------------------
 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|    200|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_T3346_VALUE_PRESENT;
  ------------------
  |  |  636|    200|#define OGS_NAS_5GS_SERVICE_REJECT_T3346_VALUE_PRESENT ((uint64_t)1<<1)
  ------------------
 1831|    200|            decoded += size;
 1832|    200|            break;
 1833|    203|        case OGS_NAS_5GS_SERVICE_REJECT_EAP_MESSAGE_TYPE:
  ------------------
  |  |  648|    203|#define OGS_NAS_5GS_SERVICE_REJECT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (1833:9): [True: 203, False: 3.37k]
  ------------------
 1834|    203|            size = ogs_nas_5gs_decode_eap_message(&service_reject->eap_message, pkbuf);
 1835|    203|            if (size < 0) {
  ------------------
  |  Branch (1835:17): [True: 1, False: 202]
  ------------------
 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|    202|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  637|    202|#define OGS_NAS_5GS_SERVICE_REJECT_EAP_MESSAGE_PRESENT ((uint64_t)1<<2)
  ------------------
 1841|    202|            decoded += size;
 1842|    202|            break;
 1843|    197|        case OGS_NAS_5GS_SERVICE_REJECT_T3448_VALUE_TYPE:
  ------------------
  |  |  649|    197|#define OGS_NAS_5GS_SERVICE_REJECT_T3448_VALUE_TYPE 0x6B
  ------------------
  |  Branch (1843:9): [True: 197, False: 3.38k]
  ------------------
 1844|    197|            size = ogs_nas_5gs_decode_gprs_timer_2(&service_reject->t3448_value, pkbuf);
 1845|    197|            if (size < 0) {
  ------------------
  |  Branch (1845:17): [True: 2, False: 195]
  ------------------
 1846|      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__) 
  |  |  ------------------
  ------------------
 1847|      2|               return size;
 1848|      2|            }
 1849|       |
 1850|    195|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_T3448_VALUE_PRESENT;
  ------------------
  |  |  638|    195|#define OGS_NAS_5GS_SERVICE_REJECT_T3448_VALUE_PRESENT ((uint64_t)1<<3)
  ------------------
 1851|    195|            decoded += size;
 1852|    195|            break;
 1853|    206|        case OGS_NAS_5GS_SERVICE_REJECT_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  650|    206|#define OGS_NAS_5GS_SERVICE_REJECT_CAG_INFORMATION_LIST_TYPE 0x75
  ------------------
  |  Branch (1853:9): [True: 206, False: 3.37k]
  ------------------
 1854|    206|            size = ogs_nas_5gs_decode_cag_information_list(&service_reject->cag_information_list, pkbuf);
 1855|    206|            if (size < 0) {
  ------------------
  |  Branch (1855:17): [True: 3, False: 203]
  ------------------
 1856|      3|               ogs_error("ogs_nas_5gs_decode_cag_information_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__) 
  |  |  ------------------
  ------------------
 1857|      3|               return size;
 1858|      3|            }
 1859|       |
 1860|    203|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  639|    203|#define OGS_NAS_5GS_SERVICE_REJECT_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<4)
  ------------------
 1861|    203|            decoded += size;
 1862|    203|            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.38k]
  ------------------
 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|    202|        case OGS_NAS_5GS_SERVICE_REJECT_EXTENDED_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  652|    202|#define OGS_NAS_5GS_SERVICE_REJECT_EXTENDED_CAG_INFORMATION_LIST_TYPE 0x71
  ------------------
  |  Branch (1873:9): [True: 202, False: 3.37k]
  ------------------
 1874|    202|            size = ogs_nas_5gs_decode_extended_cag_information_list(&service_reject->extended_cag_information_list, pkbuf);
 1875|    202|            if (size < 0) {
  ------------------
  |  Branch (1875:17): [True: 5, False: 197]
  ------------------
 1876|      5|               ogs_error("ogs_nas_5gs_decode_extended_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__) 
  |  |  ------------------
  ------------------
 1877|      5|               return size;
 1878|      5|            }
 1879|       |
 1880|    197|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_EXTENDED_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  641|    197|#define OGS_NAS_5GS_SERVICE_REJECT_EXTENDED_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<6)
  ------------------
 1881|    197|            decoded += size;
 1882|    197|            break;
 1883|    196|        case OGS_NAS_5GS_SERVICE_REJECT_LOWER_BOUND_TIMER_VALUE_TYPE:
  ------------------
  |  |  653|    196|#define OGS_NAS_5GS_SERVICE_REJECT_LOWER_BOUND_TIMER_VALUE_TYPE 0x3A
  ------------------
  |  Branch (1883:9): [True: 196, False: 3.38k]
  ------------------
 1884|    196|            size = ogs_nas_5gs_decode_gprs_timer_3(&service_reject->lower_bound_timer_value, pkbuf);
 1885|    196|            if (size < 0) {
  ------------------
  |  Branch (1885:17): [True: 1, False: 195]
  ------------------
 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|    195|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_LOWER_BOUND_TIMER_VALUE_PRESENT;
  ------------------
  |  |  642|    195|#define OGS_NAS_5GS_SERVICE_REJECT_LOWER_BOUND_TIMER_VALUE_PRESENT ((uint64_t)1<<7)
  ------------------
 1891|    195|            decoded += size;
 1892|    195|            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.37k]
  ------------------
 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.38k]
  ------------------
 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|    201|        case OGS_NAS_5GS_SERVICE_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE:
  ------------------
  |  |  656|    201|#define OGS_NAS_5GS_SERVICE_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE 0x63
  ------------------
  |  Branch (1913:9): [True: 201, False: 3.37k]
  ------------------
 1914|    201|            size = ogs_nas_5gs_decode_access_technology_utilization_control(&service_reject->access_technology_utilization_control, pkbuf);
 1915|    201|            if (size < 0) {
  ------------------
  |  Branch (1915:17): [True: 2, False: 199]
  ------------------
 1916|      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__) 
  |  |  ------------------
  ------------------
 1917|      2|               return size;
 1918|      2|            }
 1919|       |
 1920|    199|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT;
  ------------------
  |  |  645|    199|#define OGS_NAS_5GS_SERVICE_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT ((uint64_t)1<<10)
  ------------------
 1921|    199|            decoded += size;
 1922|    199|            break;
 1923|  1.38k|        default:
  ------------------
  |  Branch (1923:9): [True: 1.38k, False: 2.19k]
  ------------------
 1924|  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__) 
  |  |  ------------------
  ------------------
 1925|  1.38k|            break;
 1926|  3.57k|        }
 1927|  3.57k|    }
 1928|       |
 1929|    143|    return decoded;
 1930|    162|}
ogs_nas_5gs_decode_service_accept:
 1933|    181|{
 1934|    181|    ogs_nas_5gs_service_accept_t *service_accept = &message->gmm.service_accept;
 1935|    181|    int decoded = 0;
 1936|    181|    int size = 0;
 1937|       |
 1938|    181|    ogs_trace("[NAS] Decode SERVICE_ACCEPT\n");
  ------------------
  |  |   40|    181|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    181|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    181|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    181|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    181|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    181|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1939|       |
 1940|  5.50k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (1940:12): [True: 5.37k, False: 128]
  ------------------
 1941|  5.37k|        uint8_t *buffer = pkbuf->data;
 1942|  5.37k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (1942:24): [True: 1.20k, False: 4.17k]
  ------------------
 1943|       |
 1944|  5.37k|        size = sizeof(uint8_t);
 1945|  5.37k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1945:13): [True: 0, False: 5.37k]
  ------------------
 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|  5.37k|        decoded += size;
 1950|       |
 1951|  5.37k|        switch(type) {
 1952|    222|        case OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  |  689|    222|#define OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_STATUS_TYPE 0x50
  ------------------
  |  Branch (1952:9): [True: 222, False: 5.15k]
  ------------------
 1953|    222|            size = ogs_nas_5gs_decode_pdu_session_status(&service_accept->pdu_session_status, pkbuf);
 1954|    222|            if (size < 0) {
  ------------------
  |  Branch (1954:17): [True: 4, False: 218]
  ------------------
 1955|      4|               ogs_error("ogs_nas_5gs_decode_pdu_session_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__) 
  |  |  ------------------
  ------------------
 1956|      4|               return size;
 1957|      4|            }
 1958|       |
 1959|    218|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  |  681|    218|#define OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<0)
  ------------------
 1960|    218|            decoded += size;
 1961|    218|            break;
 1962|    326|        case OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_TYPE:
  ------------------
  |  |  690|    326|#define OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_TYPE 0x26
  ------------------
  |  Branch (1962:9): [True: 326, False: 5.04k]
  ------------------
 1963|    326|            size = ogs_nas_5gs_decode_pdu_session_reactivation_result(&service_accept->pdu_session_reactivation_result, pkbuf);
 1964|    326|            if (size < 0) {
  ------------------
  |  Branch (1964:17): [True: 9, False: 317]
  ------------------
 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|    317|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_PRESENT;
  ------------------
  |  |  682|    317|#define OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_PRESENT ((uint64_t)1<<1)
  ------------------
 1970|    317|            decoded += size;
 1971|    317|            break;
 1972|    252|        case OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_TYPE:
  ------------------
  |  |  691|    252|#define OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_TYPE 0x72
  ------------------
  |  Branch (1972:9): [True: 252, False: 5.12k]
  ------------------
 1973|    252|            size = ogs_nas_5gs_decode_pdu_session_reactivation_result_error_cause(&service_accept->pdu_session_reactivation_result_error_cause, pkbuf);
 1974|    252|            if (size < 0) {
  ------------------
  |  Branch (1974:17): [True: 22, False: 230]
  ------------------
 1975|     22|               ogs_error("ogs_nas_5gs_decode_pdu_session_reactivation_result_error_cause() 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__) 
  |  |  ------------------
  ------------------
 1976|     22|               return size;
 1977|     22|            }
 1978|       |
 1979|    230|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_PRESENT;
  ------------------
  |  |  683|    230|#define OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_PRESENT ((uint64_t)1<<2)
  ------------------
 1980|    230|            decoded += size;
 1981|    230|            break;
 1982|    198|        case OGS_NAS_5GS_SERVICE_ACCEPT_EAP_MESSAGE_TYPE:
  ------------------
  |  |  692|    198|#define OGS_NAS_5GS_SERVICE_ACCEPT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (1982:9): [True: 198, False: 5.17k]
  ------------------
 1983|    198|            size = ogs_nas_5gs_decode_eap_message(&service_accept->eap_message, pkbuf);
 1984|    198|            if (size < 0) {
  ------------------
  |  Branch (1984:17): [True: 3, False: 195]
  ------------------
 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|    195|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  684|    195|#define OGS_NAS_5GS_SERVICE_ACCEPT_EAP_MESSAGE_PRESENT ((uint64_t)1<<3)
  ------------------
 1990|    195|            decoded += size;
 1991|    195|            break;
 1992|    225|        case OGS_NAS_5GS_SERVICE_ACCEPT_T3448_VALUE_TYPE:
  ------------------
  |  |  693|    225|#define OGS_NAS_5GS_SERVICE_ACCEPT_T3448_VALUE_TYPE 0x6B
  ------------------
  |  Branch (1992:9): [True: 225, False: 5.15k]
  ------------------
 1993|    225|            size = ogs_nas_5gs_decode_gprs_timer_2(&service_accept->t3448_value, pkbuf);
 1994|    225|            if (size < 0) {
  ------------------
  |  Branch (1994:17): [True: 4, False: 221]
  ------------------
 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|    221|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_T3448_VALUE_PRESENT;
  ------------------
  |  |  685|    221|#define OGS_NAS_5GS_SERVICE_ACCEPT_T3448_VALUE_PRESENT ((uint64_t)1<<4)
  ------------------
 2000|    221|            decoded += size;
 2001|    221|            break;
 2002|    207|        case OGS_NAS_5GS_SERVICE_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_TYPE:
  ------------------
  |  |  694|    207|#define OGS_NAS_5GS_SERVICE_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_TYPE 0x34
  ------------------
  |  Branch (2002:9): [True: 207, False: 5.16k]
  ------------------
 2003|    207|            size = ogs_nas_5gs_decode_5gs_additional_request_result(&service_accept->additional_request_result, pkbuf);
 2004|    207|            if (size < 0) {
  ------------------
  |  Branch (2004:17): [True: 4, False: 203]
  ------------------
 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|    203|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_PRESENT;
  ------------------
  |  |  686|    203|#define OGS_NAS_5GS_SERVICE_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_PRESENT ((uint64_t)1<<5)
  ------------------
 2010|    203|            decoded += size;
 2011|    203|            break;
 2012|    213|        case OGS_NAS_5GS_SERVICE_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE:
  ------------------
  |  |  695|    213|#define OGS_NAS_5GS_SERVICE_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE 0x1D
  ------------------
  |  Branch (2012:9): [True: 213, False: 5.16k]
  ------------------
 2013|    213|            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|    213|            if (size < 0) {
  ------------------
  |  Branch (2014:17): [True: 5, False: 208]
  ------------------
 2015|      5|               ogs_error("ogs_nas_5gs_decode_5gs_tracking_area_identity_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__) 
  |  |  ------------------
  ------------------
 2016|      5|               return size;
 2017|      5|            }
 2018|       |
 2019|    208|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT;
  ------------------
  |  |  687|    208|#define OGS_NAS_5GS_SERVICE_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT ((uint64_t)1<<6)
  ------------------
 2020|    208|            decoded += size;
 2021|    208|            break;
 2022|    210|        case OGS_NAS_5GS_SERVICE_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_TYPE:
  ------------------
  |  |  696|    210|#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: 210, False: 5.16k]
  ------------------
 2023|    210|            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|    210|            if (size < 0) {
  ------------------
  |  Branch (2024:17): [True: 2, False: 208]
  ------------------
 2025|      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__) 
  |  |  ------------------
  ------------------
 2026|      2|               return size;
 2027|      2|            }
 2028|       |
 2029|    208|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_PRESENT;
  ------------------
  |  |  688|    208|#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|    208|            decoded += size;
 2031|    208|            break;
 2032|  3.52k|        default:
  ------------------
  |  Branch (2032:9): [True: 3.52k, False: 1.85k]
  ------------------
 2033|  3.52k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  3.52k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  3.52k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  3.52k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  3.52k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  3.52k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  3.52k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2034|  3.52k|            break;
 2035|  5.37k|        }
 2036|  5.37k|    }
 2037|       |
 2038|    128|    return decoded;
 2039|    181|}
ogs_nas_5gs_decode_configuration_update_command:
 2042|  1.07k|{
 2043|  1.07k|    ogs_nas_5gs_configuration_update_command_t *configuration_update_command = &message->gmm.configuration_update_command;
 2044|  1.07k|    int decoded = 0;
 2045|  1.07k|    int size = 0;
 2046|       |
 2047|  1.07k|    ogs_trace("[NAS] Decode CONFIGURATION_UPDATE_COMMAND\n");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 2048|       |
 2049|  45.3k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (2049:12): [True: 44.5k, False: 739]
  ------------------
 2050|  44.5k|        uint8_t *buffer = pkbuf->data;
 2051|  44.5k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (2051:24): [True: 17.2k, False: 27.3k]
  ------------------
 2052|       |
 2053|  44.5k|        size = sizeof(uint8_t);
 2054|  44.5k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2054:13): [True: 0, False: 44.5k]
  ------------------
 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|  44.5k|        decoded += size;
 2059|       |
 2060|  44.5k|        switch(type) {
 2061|  1.83k|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CONFIGURATION_UPDATE_INDICATION_TYPE:
  ------------------
  |  |  763|  1.83k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CONFIGURATION_UPDATE_INDICATION_TYPE 0xD0
  ------------------
  |  Branch (2061:9): [True: 1.83k, False: 42.7k]
  ------------------
 2062|  1.83k|            decoded--;
 2063|  1.83k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.83k|    do { \
  |  |  114|  1.83k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.83k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.83k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.83k|        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.83k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.83k]
  |  |  ------------------
  ------------------
 2064|  1.83k|            size = ogs_nas_5gs_decode_configuration_update_indication(&configuration_update_command->configuration_update_indication, pkbuf);
 2065|  1.83k|            if (size < 0) {
  ------------------
  |  Branch (2065:17): [True: 0, False: 1.83k]
  ------------------
 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.83k|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CONFIGURATION_UPDATE_INDICATION_PRESENT;
  ------------------
  |  |  716|  1.83k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CONFIGURATION_UPDATE_INDICATION_PRESENT ((uint64_t)1<<0)
  ------------------
 2071|  1.83k|            decoded += size;
 2072|  1.83k|            break;
 2073|    220|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5G_GUTI_TYPE:
  ------------------
  |  |  764|    220|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5G_GUTI_TYPE 0x77
  ------------------
  |  Branch (2073:9): [True: 220, False: 44.3k]
  ------------------
 2074|    220|            size = ogs_nas_5gs_decode_5gs_mobile_identity(&configuration_update_command->guti, pkbuf);
 2075|    220|            if (size < 0) {
  ------------------
  |  Branch (2075:17): [True: 2, False: 218]
  ------------------
 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|    218|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5G_GUTI_PRESENT;
  ------------------
  |  |  717|    218|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5G_GUTI_PRESENT ((uint64_t)1<<1)
  ------------------
 2081|    218|            decoded += size;
 2082|    218|            break;
 2083|    243|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TAI_LIST_TYPE:
  ------------------
  |  |  765|    243|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TAI_LIST_TYPE 0x54
  ------------------
  |  Branch (2083:9): [True: 243, False: 44.3k]
  ------------------
 2084|    243|            size = ogs_nas_5gs_decode_5gs_tracking_area_identity_list(&configuration_update_command->tai_list, pkbuf);
 2085|    243|            if (size < 0) {
  ------------------
  |  Branch (2085:17): [True: 1, False: 242]
  ------------------
 2086|      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__) 
  |  |  ------------------
  ------------------
 2087|      1|               return size;
 2088|      1|            }
 2089|       |
 2090|    242|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TAI_LIST_PRESENT;
  ------------------
  |  |  718|    242|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TAI_LIST_PRESENT ((uint64_t)1<<2)
  ------------------
 2091|    242|            decoded += size;
 2092|    242|            break;
 2093|    265|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALLOWED_NSSAI_TYPE:
  ------------------
  |  |  766|    265|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALLOWED_NSSAI_TYPE 0x15
  ------------------
  |  Branch (2093:9): [True: 265, False: 44.2k]
  ------------------
 2094|    265|            size = ogs_nas_5gs_decode_nssai(&configuration_update_command->allowed_nssai, pkbuf);
 2095|    265|            if (size < 0) {
  ------------------
  |  Branch (2095:17): [True: 4, False: 261]
  ------------------
 2096|      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__) 
  |  |  ------------------
  ------------------
 2097|      4|               return size;
 2098|      4|            }
 2099|       |
 2100|    261|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALLOWED_NSSAI_PRESENT;
  ------------------
  |  |  719|    261|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALLOWED_NSSAI_PRESENT ((uint64_t)1<<3)
  ------------------
 2101|    261|            decoded += size;
 2102|    261|            break;
 2103|    299|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_AREA_LIST_TYPE:
  ------------------
  |  |  767|    299|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_AREA_LIST_TYPE 0x27
  ------------------
  |  Branch (2103:9): [True: 299, False: 44.2k]
  ------------------
 2104|    299|            size = ogs_nas_5gs_decode_service_area_list(&configuration_update_command->service_area_list, pkbuf);
 2105|    299|            if (size < 0) {
  ------------------
  |  Branch (2105:17): [True: 3, False: 296]
  ------------------
 2106|      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__) 
  |  |  ------------------
  ------------------
 2107|      3|               return size;
 2108|      3|            }
 2109|       |
 2110|    296|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_AREA_LIST_PRESENT;
  ------------------
  |  |  720|    296|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_AREA_LIST_PRESENT ((uint64_t)1<<4)
  ------------------
 2111|    296|            decoded += size;
 2112|    296|            break;
 2113|    224|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FULL_NAME_FOR_NETWORK_TYPE:
  ------------------
  |  |  768|    224|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FULL_NAME_FOR_NETWORK_TYPE 0x43
  ------------------
  |  Branch (2113:9): [True: 224, False: 44.3k]
  ------------------
 2114|    224|            size = ogs_nas_5gs_decode_network_name(&configuration_update_command->full_name_for_network, pkbuf);
 2115|    224|            if (size < 0) {
  ------------------
  |  Branch (2115:17): [True: 4, False: 220]
  ------------------
 2116|      4|               ogs_error("ogs_nas_5gs_decode_network_name() 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__) 
  |  |  ------------------
  ------------------
 2117|      4|               return size;
 2118|      4|            }
 2119|       |
 2120|    220|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FULL_NAME_FOR_NETWORK_PRESENT;
  ------------------
  |  |  721|    220|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FULL_NAME_FOR_NETWORK_PRESENT ((uint64_t)1<<5)
  ------------------
 2121|    220|            decoded += size;
 2122|    220|            break;
 2123|    364|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SHORT_NAME_FOR_NETWORK_TYPE:
  ------------------
  |  |  769|    364|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SHORT_NAME_FOR_NETWORK_TYPE 0x45
  ------------------
  |  Branch (2123:9): [True: 364, False: 44.1k]
  ------------------
 2124|    364|            size = ogs_nas_5gs_decode_network_name(&configuration_update_command->short_name_for_network, pkbuf);
 2125|    364|            if (size < 0) {
  ------------------
  |  Branch (2125:17): [True: 4, False: 360]
  ------------------
 2126|      4|               ogs_error("ogs_nas_5gs_decode_network_name() 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__) 
  |  |  ------------------
  ------------------
 2127|      4|               return size;
 2128|      4|            }
 2129|       |
 2130|    360|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SHORT_NAME_FOR_NETWORK_PRESENT;
  ------------------
  |  |  722|    360|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SHORT_NAME_FOR_NETWORK_PRESENT ((uint64_t)1<<6)
  ------------------
 2131|    360|            decoded += size;
 2132|    360|            break;
 2133|    270|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LOCAL_TIME_ZONE_TYPE:
  ------------------
  |  |  770|    270|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LOCAL_TIME_ZONE_TYPE 0x46
  ------------------
  |  Branch (2133:9): [True: 270, False: 44.2k]
  ------------------
 2134|    270|            size = ogs_nas_5gs_decode_time_zone(&configuration_update_command->local_time_zone, pkbuf);
 2135|    270|            if (size < 0) {
  ------------------
  |  Branch (2135:17): [True: 4, False: 266]
  ------------------
 2136|      4|               ogs_error("ogs_nas_5gs_decode_time_zone() 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__) 
  |  |  ------------------
  ------------------
 2137|      4|               return size;
 2138|      4|            }
 2139|       |
 2140|    266|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LOCAL_TIME_ZONE_PRESENT;
  ------------------
  |  |  723|    266|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LOCAL_TIME_ZONE_PRESENT ((uint64_t)1<<7)
  ------------------
 2141|    266|            decoded += size;
 2142|    266|            break;
 2143|    232|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UNIVERSAL_TIME_AND_LOCAL_TIME_ZONE_TYPE:
  ------------------
  |  |  771|    232|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UNIVERSAL_TIME_AND_LOCAL_TIME_ZONE_TYPE 0x47
  ------------------
  |  Branch (2143:9): [True: 232, False: 44.3k]
  ------------------
 2144|    232|            size = ogs_nas_5gs_decode_time_zone_and_time(&configuration_update_command->universal_time_and_local_time_zone, pkbuf);
 2145|    232|            if (size < 0) {
  ------------------
  |  Branch (2145:17): [True: 11, False: 221]
  ------------------
 2146|     11|               ogs_error("ogs_nas_5gs_decode_time_zone_and_time() 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__) 
  |  |  ------------------
  ------------------
 2147|     11|               return size;
 2148|     11|            }
 2149|       |
 2150|    221|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UNIVERSAL_TIME_AND_LOCAL_TIME_ZONE_PRESENT;
  ------------------
  |  |  724|    221|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UNIVERSAL_TIME_AND_LOCAL_TIME_ZONE_PRESENT ((uint64_t)1<<8)
  ------------------
 2151|    221|            decoded += size;
 2152|    221|            break;
 2153|    388|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_DAYLIGHT_SAVING_TIME_TYPE:
  ------------------
  |  |  772|    388|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_DAYLIGHT_SAVING_TIME_TYPE 0x49
  ------------------
  |  Branch (2153:9): [True: 388, False: 44.1k]
  ------------------
 2154|    388|            size = ogs_nas_5gs_decode_daylight_saving_time(&configuration_update_command->network_daylight_saving_time, pkbuf);
 2155|    388|            if (size < 0) {
  ------------------
  |  Branch (2155:17): [True: 12, False: 376]
  ------------------
 2156|     12|               ogs_error("ogs_nas_5gs_decode_daylight_saving_time() 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__) 
  |  |  ------------------
  ------------------
 2157|     12|               return size;
 2158|     12|            }
 2159|       |
 2160|    376|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_DAYLIGHT_SAVING_TIME_PRESENT;
  ------------------
  |  |  725|    376|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_DAYLIGHT_SAVING_TIME_PRESENT ((uint64_t)1<<9)
  ------------------
 2161|    376|            decoded += size;
 2162|    376|            break;
 2163|    272|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LADN_INFORMATION_TYPE:
  ------------------
  |  |  773|    272|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LADN_INFORMATION_TYPE 0x79
  ------------------
  |  Branch (2163:9): [True: 272, False: 44.2k]
  ------------------
 2164|    272|            size = ogs_nas_5gs_decode_ladn_information(&configuration_update_command->ladn_information, pkbuf);
 2165|    272|            if (size < 0) {
  ------------------
  |  Branch (2165:17): [True: 25, False: 247]
  ------------------
 2166|     25|               ogs_error("ogs_nas_5gs_decode_ladn_information() 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__) 
  |  |  ------------------
  ------------------
 2167|     25|               return size;
 2168|     25|            }
 2169|       |
 2170|    247|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LADN_INFORMATION_PRESENT;
  ------------------
  |  |  726|    247|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LADN_INFORMATION_PRESENT ((uint64_t)1<<10)
  ------------------
 2171|    247|            decoded += size;
 2172|    247|            break;
 2173|  1.21k|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_MICO_INDICATION_TYPE:
  ------------------
  |  |  774|  1.21k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_MICO_INDICATION_TYPE 0xB0
  ------------------
  |  Branch (2173:9): [True: 1.21k, False: 43.3k]
  ------------------
 2174|  1.21k|            decoded--;
 2175|  1.21k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.21k|    do { \
  |  |  114|  1.21k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.21k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.21k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.21k|        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.21k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.21k]
  |  |  ------------------
  ------------------
 2176|  1.21k|            size = ogs_nas_5gs_decode_mico_indication(&configuration_update_command->mico_indication, pkbuf);
 2177|  1.21k|            if (size < 0) {
  ------------------
  |  Branch (2177:17): [True: 0, False: 1.21k]
  ------------------
 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.21k|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_MICO_INDICATION_PRESENT;
  ------------------
  |  |  727|  1.21k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_MICO_INDICATION_PRESENT ((uint64_t)1<<11)
  ------------------
 2183|  1.21k|            decoded += size;
 2184|  1.21k|            break;
 2185|  1.73k|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_SLICING_INDICATION_TYPE:
  ------------------
  |  |  775|  1.73k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_SLICING_INDICATION_TYPE 0x90
  ------------------
  |  Branch (2185:9): [True: 1.73k, False: 42.8k]
  ------------------
 2186|  1.73k|            decoded--;
 2187|  1.73k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.73k|    do { \
  |  |  114|  1.73k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.73k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.73k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.73k|        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.73k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.73k]
  |  |  ------------------
  ------------------
 2188|  1.73k|            size = ogs_nas_5gs_decode_network_slicing_indication(&configuration_update_command->network_slicing_indication, pkbuf);
 2189|  1.73k|            if (size < 0) {
  ------------------
  |  Branch (2189:17): [True: 0, False: 1.73k]
  ------------------
 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.73k|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_SLICING_INDICATION_PRESENT;
  ------------------
  |  |  728|  1.73k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_SLICING_INDICATION_PRESENT ((uint64_t)1<<12)
  ------------------
 2195|  1.73k|            decoded += size;
 2196|  1.73k|            break;
 2197|    235|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CONFIGURED_NSSAI_TYPE:
  ------------------
  |  |  776|    235|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CONFIGURED_NSSAI_TYPE 0x31
  ------------------
  |  Branch (2197:9): [True: 235, False: 44.3k]
  ------------------
 2198|    235|            size = ogs_nas_5gs_decode_nssai(&configuration_update_command->configured_nssai, pkbuf);
 2199|    235|            if (size < 0) {
  ------------------
  |  Branch (2199:17): [True: 2, False: 233]
  ------------------
 2200|      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__) 
  |  |  ------------------
  ------------------
 2201|      2|               return size;
 2202|      2|            }
 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|    295|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  777|    295|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_REJECTED_NSSAI_TYPE 0x11
  ------------------
  |  Branch (2207:9): [True: 295, False: 44.2k]
  ------------------
 2208|    295|            size = ogs_nas_5gs_decode_rejected_nssai(&configuration_update_command->rejected_nssai, pkbuf);
 2209|    295|            if (size < 0) {
  ------------------
  |  Branch (2209:17): [True: 4, False: 291]
  ------------------
 2210|      4|               ogs_error("ogs_nas_5gs_decode_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__) 
  |  |  ------------------
  ------------------
 2211|      4|               return size;
 2212|      4|            }
 2213|       |
 2214|    291|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  730|    291|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_REJECTED_NSSAI_PRESENT ((uint64_t)1<<14)
  ------------------
 2215|    291|            decoded += size;
 2216|    291|            break;
 2217|    250|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_TYPE:
  ------------------
  |  |  778|    250|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_TYPE 0x76
  ------------------
  |  Branch (2217:9): [True: 250, False: 44.3k]
  ------------------
 2218|    250|            size = ogs_nas_5gs_decode_operator_defined_access_category_definitions(&configuration_update_command->operator_defined_access_category_definitions, pkbuf);
 2219|    250|            if (size < 0) {
  ------------------
  |  Branch (2219:17): [True: 23, False: 227]
  ------------------
 2220|     23|               ogs_error("ogs_nas_5gs_decode_operator_defined_access_category_definitions() 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__) 
  |  |  ------------------
  ------------------
 2221|     23|               return size;
 2222|     23|            }
 2223|       |
 2224|    227|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_PRESENT;
  ------------------
  |  |  731|    227|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_PRESENT ((uint64_t)1<<15)
  ------------------
 2225|    227|            decoded += size;
 2226|    227|            break;
 2227|  7.35k|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SMS_INDICATION_TYPE:
  ------------------
  |  |  779|  7.35k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SMS_INDICATION_TYPE 0xF0
  ------------------
  |  Branch (2227:9): [True: 7.35k, False: 37.2k]
  ------------------
 2228|  7.35k|            decoded--;
 2229|  7.35k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  7.35k|    do { \
  |  |  114|  7.35k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  7.35k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 7.35k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  7.35k|        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|  7.35k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 7.35k]
  |  |  ------------------
  ------------------
 2230|  7.35k|            size = ogs_nas_5gs_decode_sms_indication(&configuration_update_command->sms_indication, pkbuf);
 2231|  7.35k|            if (size < 0) {
  ------------------
  |  Branch (2231:17): [True: 0, False: 7.35k]
  ------------------
 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|  7.35k|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SMS_INDICATION_PRESENT;
  ------------------
  |  |  732|  7.35k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SMS_INDICATION_PRESENT ((uint64_t)1<<16)
  ------------------
 2237|  7.35k|            decoded += size;
 2238|  7.35k|            break;
 2239|    237|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_T3447_VALUE_TYPE:
  ------------------
  |  |  780|    237|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_T3447_VALUE_TYPE 0x6C
  ------------------
  |  Branch (2239:9): [True: 237, False: 44.3k]
  ------------------
 2240|    237|            size = ogs_nas_5gs_decode_gprs_timer_3(&configuration_update_command->t3447_value, pkbuf);
 2241|    237|            if (size < 0) {
  ------------------
  |  Branch (2241:17): [True: 4, False: 233]
  ------------------
 2242|      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__) 
  |  |  ------------------
  ------------------
 2243|      4|               return size;
 2244|      4|            }
 2245|       |
 2246|    233|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_T3447_VALUE_PRESENT;
  ------------------
  |  |  733|    233|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_T3447_VALUE_PRESENT ((uint64_t)1<<17)
  ------------------
 2247|    233|            decoded += size;
 2248|    233|            break;
 2249|    248|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  781|    248|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CAG_INFORMATION_LIST_TYPE 0x75
  ------------------
  |  Branch (2249:9): [True: 248, False: 44.3k]
  ------------------
 2250|    248|            size = ogs_nas_5gs_decode_cag_information_list(&configuration_update_command->cag_information_list, pkbuf);
 2251|    248|            if (size < 0) {
  ------------------
  |  Branch (2251:17): [True: 9, False: 239]
  ------------------
 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|    239|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  734|    239|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<18)
  ------------------
 2257|    239|            decoded += size;
 2258|    239|            break;
 2259|    211|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_TYPE:
  ------------------
  |  |  782|    211|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_TYPE 0x67
  ------------------
  |  Branch (2259:9): [True: 211, False: 44.3k]
  ------------------
 2260|    211|            size = ogs_nas_5gs_decode_ue_radio_capability_id(&configuration_update_command->ue_radio_capability_id, pkbuf);
 2261|    211|            if (size < 0) {
  ------------------
  |  Branch (2261:17): [True: 3, False: 208]
  ------------------
 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|    208|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_PRESENT;
  ------------------
  |  |  735|    208|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_PRESENT ((uint64_t)1<<19)
  ------------------
 2267|    208|            decoded += size;
 2268|    208|            break;
 2269|  1.22k|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_TYPE:
  ------------------
  |  |  783|  1.22k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_TYPE 0xA0
  ------------------
  |  Branch (2269:9): [True: 1.22k, False: 43.3k]
  ------------------
 2270|  1.22k|            decoded--;
 2271|  1.22k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.22k|    do { \
  |  |  114|  1.22k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.22k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.22k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.22k|        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.22k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.22k]
  |  |  ------------------
  ------------------
 2272|  1.22k|            size = ogs_nas_5gs_decode_ue_radio_capability_id_deletion_indication(&configuration_update_command->ue_radio_capability_id_deletion_indication, pkbuf);
 2273|  1.22k|            if (size < 0) {
  ------------------
  |  Branch (2273:17): [True: 0, False: 1.22k]
  ------------------
 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.22k|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_PRESENT;
  ------------------
  |  |  736|  1.22k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_PRESENT ((uint64_t)1<<20)
  ------------------
 2279|  1.22k|            decoded += size;
 2280|  1.22k|            break;
 2281|    208|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5GS_REGISTRATION_RESULT_TYPE:
  ------------------
  |  |  784|    208|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5GS_REGISTRATION_RESULT_TYPE 0x44
  ------------------
  |  Branch (2281:9): [True: 208, False: 44.3k]
  ------------------
 2282|    208|            size = ogs_nas_5gs_decode_5gs_registration_result(&configuration_update_command->registration_result, pkbuf);
 2283|    208|            if (size < 0) {
  ------------------
  |  Branch (2283:17): [True: 2, False: 206]
  ------------------
 2284|      2|               ogs_error("ogs_nas_5gs_decode_5gs_registration_result() 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__) 
  |  |  ------------------
  ------------------
 2285|      2|               return size;
 2286|      2|            }
 2287|       |
 2288|    206|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5GS_REGISTRATION_RESULT_PRESENT;
  ------------------
  |  |  737|    206|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5GS_REGISTRATION_RESULT_PRESENT ((uint64_t)1<<21)
  ------------------
 2289|    206|            decoded += size;
 2290|    206|            break;
 2291|    291|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TRUNCATED_5G_S_TMSI_CONFIGURATION_TYPE:
  ------------------
  |  |  785|    291|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TRUNCATED_5G_S_TMSI_CONFIGURATION_TYPE 0x1B
  ------------------
  |  Branch (2291:9): [True: 291, False: 44.2k]
  ------------------
 2292|    291|            size = ogs_nas_5gs_decode_truncated_5g_s_tmsi_configuration(&configuration_update_command->truncated_s_tmsi_configuration, pkbuf);
 2293|    291|            if (size < 0) {
  ------------------
  |  Branch (2293:17): [True: 6, False: 285]
  ------------------
 2294|      6|               ogs_error("ogs_nas_5gs_decode_truncated_5g_s_tmsi_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__) 
  |  |  ------------------
  ------------------
 2295|      6|               return size;
 2296|      6|            }
 2297|       |
 2298|    285|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TRUNCATED_5G_S_TMSI_CONFIGURATION_PRESENT;
  ------------------
  |  |  738|    285|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TRUNCATED_5G_S_TMSI_CONFIGURATION_PRESENT ((uint64_t)1<<22)
  ------------------
 2299|    285|            decoded += size;
 2300|    285|            break;
 2301|    887|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ADDITIONAL_CONFIGURATION_INDICATION_TYPE:
  ------------------
  |  |  786|    887|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ADDITIONAL_CONFIGURATION_INDICATION_TYPE 0xC0
  ------------------
  |  Branch (2301:9): [True: 887, False: 43.6k]
  ------------------
 2302|    887|            decoded--;
 2303|    887|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    887|    do { \
  |  |  114|    887|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    887|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 887, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    887|        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|    887|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 887]
  |  |  ------------------
  ------------------
 2304|    887|            size = ogs_nas_5gs_decode_additional_configuration_indication(&configuration_update_command->additional_configuration_indication, pkbuf);
 2305|    887|            if (size < 0) {
  ------------------
  |  Branch (2305:17): [True: 0, False: 887]
  ------------------
 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|    887|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ADDITIONAL_CONFIGURATION_INDICATION_PRESENT;
  ------------------
  |  |  739|    887|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ADDITIONAL_CONFIGURATION_INDICATION_PRESENT ((uint64_t)1<<23)
  ------------------
 2311|    887|            decoded += size;
 2312|    887|            break;
 2313|    239|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  787|    239|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_REJECTED_NSSAI_TYPE 0x68
  ------------------
  |  Branch (2313:9): [True: 239, False: 44.3k]
  ------------------
 2314|    239|            size = ogs_nas_5gs_decode_extended_rejected_nssai(&configuration_update_command->extended_rejected_nssai, pkbuf);
 2315|    239|            if (size < 0) {
  ------------------
  |  Branch (2315:17): [True: 5, False: 234]
  ------------------
 2316|      5|               ogs_error("ogs_nas_5gs_decode_extended_rejected_nssai() 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__) 
  |  |  ------------------
  ------------------
 2317|      5|               return size;
 2318|      5|            }
 2319|       |
 2320|    234|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  740|    234|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_REJECTED_NSSAI_PRESENT ((uint64_t)1<<24)
  ------------------
 2321|    234|            decoded += size;
 2322|    234|            break;
 2323|    220|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  |  788|    220|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (2323:9): [True: 220, False: 44.3k]
  ------------------
 2324|    220|            size = ogs_nas_5gs_decode_service_level_aa_container(&configuration_update_command->service_level_aa_container, pkbuf);
 2325|    220|            if (size < 0) {
  ------------------
  |  Branch (2325:17): [True: 11, False: 209]
  ------------------
 2326|     11|               ogs_error("ogs_nas_5gs_decode_service_level_aa_container() 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__) 
  |  |  ------------------
  ------------------
 2327|     11|               return size;
 2328|     11|            }
 2329|       |
 2330|    209|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  |  741|    209|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<25)
  ------------------
 2331|    209|            decoded += size;
 2332|    209|            break;
 2333|    235|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSSRG_INFORMATION_TYPE:
  ------------------
  |  |  789|    235|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSSRG_INFORMATION_TYPE 0x70
  ------------------
  |  Branch (2333:9): [True: 235, False: 44.3k]
  ------------------
 2334|    235|            size = ogs_nas_5gs_decode_nssrg_information(&configuration_update_command->nssrg_information, pkbuf);
 2335|    235|            if (size < 0) {
  ------------------
  |  Branch (2335:17): [True: 8, False: 227]
  ------------------
 2336|      8|               ogs_error("ogs_nas_5gs_decode_nssrg_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__) 
  |  |  ------------------
  ------------------
 2337|      8|               return size;
 2338|      8|            }
 2339|       |
 2340|    227|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSSRG_INFORMATION_PRESENT;
  ------------------
  |  |  742|    227|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSSRG_INFORMATION_PRESENT ((uint64_t)1<<26)
  ------------------
 2341|    227|            decoded += size;
 2342|    227|            break;
 2343|    350|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_ROAMING_WAIT_RANGE_TYPE:
  ------------------
  |  |  790|    350|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_ROAMING_WAIT_RANGE_TYPE 0x14
  ------------------
  |  Branch (2343:9): [True: 350, False: 44.2k]
  ------------------
 2344|    350|            size = ogs_nas_5gs_decode_registration_wait_range(&configuration_update_command->disaster_roaming_wait_range, pkbuf);
 2345|    350|            if (size < 0) {
  ------------------
  |  Branch (2345:17): [True: 3, False: 347]
  ------------------
 2346|      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__) 
  |  |  ------------------
  ------------------
 2347|      3|               return size;
 2348|      3|            }
 2349|       |
 2350|    347|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_ROAMING_WAIT_RANGE_PRESENT;
  ------------------
  |  |  743|    347|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_ROAMING_WAIT_RANGE_PRESENT ((uint64_t)1<<27)
  ------------------
 2351|    347|            decoded += size;
 2352|    347|            break;
 2353|    223|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_RETURN_WAIT_RANGE_TYPE:
  ------------------
  |  |  791|    223|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_RETURN_WAIT_RANGE_TYPE 0x2C
  ------------------
  |  Branch (2353:9): [True: 223, False: 44.3k]
  ------------------
 2354|    223|            size = ogs_nas_5gs_decode_registration_wait_range(&configuration_update_command->disaster_return_wait_range, pkbuf);
 2355|    223|            if (size < 0) {
  ------------------
  |  Branch (2355:17): [True: 4, False: 219]
  ------------------
 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|    219|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_RETURN_WAIT_RANGE_PRESENT;
  ------------------
  |  |  744|    219|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_RETURN_WAIT_RANGE_PRESENT ((uint64_t)1<<28)
  ------------------
 2361|    219|            decoded += size;
 2362|    219|            break;
 2363|    393|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION_TYPE:
  ------------------
  |  |  792|    393|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION_TYPE 0x13
  ------------------
  |  Branch (2363:9): [True: 393, False: 44.1k]
  ------------------
 2364|    393|            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|    393|            if (size < 0) {
  ------------------
  |  Branch (2365:17): [True: 5, False: 388]
  ------------------
 2366|      5|               ogs_error("ogs_nas_5gs_decode_list_of_plmns_to_be_used_in_disaster_condition() 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__) 
  |  |  ------------------
  ------------------
 2367|      5|               return size;
 2368|      5|            }
 2369|       |
 2370|    388|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION_PRESENT;
  ------------------
  |  |  745|    388|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION_PRESENT ((uint64_t)1<<29)
  ------------------
 2371|    388|            decoded += size;
 2372|    388|            break;
 2373|    260|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  793|    260|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_CAG_INFORMATION_LIST_TYPE 0x71
  ------------------
  |  Branch (2373:9): [True: 260, False: 44.3k]
  ------------------
 2374|    260|            size = ogs_nas_5gs_decode_extended_cag_information_list(&configuration_update_command->extended_cag_information_list, pkbuf);
 2375|    260|            if (size < 0) {
  ------------------
  |  Branch (2375:17): [True: 16, False: 244]
  ------------------
 2376|     16|               ogs_error("ogs_nas_5gs_decode_extended_cag_information_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__) 
  |  |  ------------------
  ------------------
 2377|     16|               return size;
 2378|     16|            }
 2379|       |
 2380|    244|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  746|    244|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<30)
  ------------------
 2381|    244|            decoded += size;
 2382|    244|            break;
 2383|    301|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_PEIPS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  794|    301|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_PEIPS_ASSISTANCE_INFORMATION_TYPE 0x1F
  ------------------
  |  Branch (2383:9): [True: 301, False: 44.2k]
  ------------------
 2384|    301|            size = ogs_nas_5gs_decode_peips_assistance_information(&configuration_update_command->updated_peips_assistance_information, pkbuf);
 2385|    301|            if (size < 0) {
  ------------------
  |  Branch (2385:17): [True: 4, False: 297]
  ------------------
 2386|      4|               ogs_error("ogs_nas_5gs_decode_peips_assistance_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__) 
  |  |  ------------------
  ------------------
 2387|      4|               return size;
 2388|      4|            }
 2389|       |
 2390|    297|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_PEIPS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  747|    297|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_PEIPS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<31)
  ------------------
 2391|    297|            decoded += size;
 2392|    297|            break;
 2393|    264|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSAG_INFORMATION_TYPE:
  ------------------
  |  |  795|    264|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSAG_INFORMATION_TYPE 0x73
  ------------------
  |  Branch (2393:9): [True: 264, False: 44.2k]
  ------------------
 2394|    264|            size = ogs_nas_5gs_decode_nsag_information(&configuration_update_command->nsag_information, pkbuf);
 2395|    264|            if (size < 0) {
  ------------------
  |  Branch (2395:17): [True: 17, False: 247]
  ------------------
 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|    247|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSAG_INFORMATION_PRESENT;
  ------------------
  |  |  748|    247|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSAG_INFORMATION_PRESENT ((uint64_t)1<<32)
  ------------------
 2401|    247|            decoded += size;
 2402|    247|            break;
 2403|  1.03k|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PRIORITY_INDICATOR_TYPE:
  ------------------
  |  |  796|  1.03k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PRIORITY_INDICATOR_TYPE 0xE0
  ------------------
  |  Branch (2403:9): [True: 1.03k, False: 43.5k]
  ------------------
 2404|  1.03k|            decoded--;
 2405|  1.03k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.03k|    do { \
  |  |  114|  1.03k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.03k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.03k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.03k|        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.03k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.03k]
  |  |  ------------------
  ------------------
 2406|  1.03k|            size = ogs_nas_5gs_decode_priority_indicator(&configuration_update_command->priority_indicator, pkbuf);
 2407|  1.03k|            if (size < 0) {
  ------------------
  |  Branch (2407:17): [True: 0, False: 1.03k]
  ------------------
 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.03k|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PRIORITY_INDICATOR_PRESENT;
  ------------------
  |  |  749|  1.03k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PRIORITY_INDICATOR_PRESENT ((uint64_t)1<<33)
  ------------------
 2413|  1.03k|            decoded += size;
 2414|  1.03k|            break;
 2415|    246|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_RAN_TIMING_SYNCHRONIZATION_TYPE:
  ------------------
  |  |  797|    246|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_RAN_TIMING_SYNCHRONIZATION_TYPE 0x4B
  ------------------
  |  Branch (2415:9): [True: 246, False: 44.3k]
  ------------------
 2416|    246|            size = ogs_nas_5gs_decode_ran_timing_synchronization(&configuration_update_command->ran_timing_synchronization, pkbuf);
 2417|    246|            if (size < 0) {
  ------------------
  |  Branch (2417:17): [True: 7, False: 239]
  ------------------
 2418|      7|               ogs_error("ogs_nas_5gs_decode_ran_timing_synchronization() 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__) 
  |  |  ------------------
  ------------------
 2419|      7|               return size;
 2420|      7|            }
 2421|       |
 2422|    239|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_RAN_TIMING_SYNCHRONIZATION_PRESENT;
  ------------------
  |  |  750|    239|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_RAN_TIMING_SYNCHRONIZATION_PRESENT ((uint64_t)1<<34)
  ------------------
 2423|    239|            decoded += size;
 2424|    239|            break;
 2425|    257|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_LADN_INFORMATION_TYPE:
  ------------------
  |  |  798|    257|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_LADN_INFORMATION_TYPE 0x78
  ------------------
  |  Branch (2425:9): [True: 257, False: 44.3k]
  ------------------
 2426|    257|            size = ogs_nas_5gs_decode_extended_ladn_information(&configuration_update_command->extended_ladn_information, pkbuf);
 2427|    257|            if (size < 0) {
  ------------------
  |  Branch (2427:17): [True: 19, False: 238]
  ------------------
 2428|     19|               ogs_error("ogs_nas_5gs_decode_extended_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__) 
  |  |  ------------------
  ------------------
 2429|     19|               return size;
 2430|     19|            }
 2431|       |
 2432|    238|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_LADN_INFORMATION_PRESENT;
  ------------------
  |  |  751|    238|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_LADN_INFORMATION_PRESENT ((uint64_t)1<<35)
  ------------------
 2433|    238|            decoded += size;
 2434|    238|            break;
 2435|    226|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALTERNATIVE_NSSAI_TYPE:
  ------------------
  |  |  799|    226|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALTERNATIVE_NSSAI_TYPE 0x4C
  ------------------
  |  Branch (2435:9): [True: 226, False: 44.3k]
  ------------------
 2436|    226|            size = ogs_nas_5gs_decode_alternative_nssai(&configuration_update_command->alternative_nssai, pkbuf);
 2437|    226|            if (size < 0) {
  ------------------
  |  Branch (2437:17): [True: 8, False: 218]
  ------------------
 2438|      8|               ogs_error("ogs_nas_5gs_decode_alternative_nssai() 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__) 
  |  |  ------------------
  ------------------
 2439|      8|               return size;
 2440|      8|            }
 2441|       |
 2442|    218|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALTERNATIVE_NSSAI_PRESENT;
  ------------------
  |  |  752|    218|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALTERNATIVE_NSSAI_PRESENT ((uint64_t)1<<36)
  ------------------
 2443|    218|            decoded += size;
 2444|    218|            break;
 2445|    541|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_LOCATION_VALIDITY_INFORMATION_TYPE:
  ------------------
  |  |  800|    541|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_LOCATION_VALIDITY_INFORMATION_TYPE 0x7B
  ------------------
  |  Branch (2445:9): [True: 541, False: 44.0k]
  ------------------
 2446|    541|            size = ogs_nas_5gs_decode_s_nssai_location_validity_information(&configuration_update_command->s_nssai_location_validity_information, pkbuf);
 2447|    541|            if (size < 0) {
  ------------------
  |  Branch (2447:17): [True: 27, False: 514]
  ------------------
 2448|     27|               ogs_error("ogs_nas_5gs_decode_s_nssai_location_validity_information() 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__) 
  |  |  ------------------
  ------------------
 2449|     27|               return size;
 2450|     27|            }
 2451|       |
 2452|    514|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_LOCATION_VALIDITY_INFORMATION_PRESENT;
  ------------------
  |  |  753|    514|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_LOCATION_VALIDITY_INFORMATION_PRESENT ((uint64_t)1<<37)
  ------------------
 2453|    514|            decoded += size;
 2454|    514|            break;
 2455|    245|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_TIME_VALIDITY_INFORMATION_TYPE:
  ------------------
  |  |  801|    245|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_TIME_VALIDITY_INFORMATION_TYPE 0x5B
  ------------------
  |  Branch (2455:9): [True: 245, False: 44.3k]
  ------------------
 2456|    245|            size = ogs_nas_5gs_decode_s_nssai_time_validity_information(&configuration_update_command->s_nssai_time_validity_information, pkbuf);
 2457|    245|            if (size < 0) {
  ------------------
  |  Branch (2457:17): [True: 5, False: 240]
  ------------------
 2458|      5|               ogs_error("ogs_nas_5gs_decode_s_nssai_time_validity_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__) 
  |  |  ------------------
  ------------------
 2459|      5|               return size;
 2460|      5|            }
 2461|       |
 2462|    240|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_TIME_VALIDITY_INFORMATION_PRESENT;
  ------------------
  |  |  754|    240|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_TIME_VALIDITY_INFORMATION_PRESENT ((uint64_t)1<<38)
  ------------------
 2463|    240|            decoded += size;
 2464|    240|            break;
 2465|    310|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_TYPE:
  ------------------
  |  |  802|    310|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_TYPE 0x4F
  ------------------
  |  Branch (2465:9): [True: 310, False: 44.2k]
  ------------------
 2466|    310|            size = ogs_nas_5gs_decode_gprs_timer_3(&configuration_update_command->discontinuous_coverage_maximum_time_offset, pkbuf);
 2467|    310|            if (size < 0) {
  ------------------
  |  Branch (2467:17): [True: 6, False: 304]
  ------------------
 2468|      6|               ogs_error("ogs_nas_5gs_decode_gprs_timer_3() 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__) 
  |  |  ------------------
  ------------------
 2469|      6|               return size;
 2470|      6|            }
 2471|       |
 2472|    304|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_PRESENT;
  ------------------
  |  |  755|    304|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_PRESENT ((uint64_t)1<<39)
  ------------------
 2473|    304|            decoded += size;
 2474|    304|            break;
 2475|    230|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_ALLOWED_NSSAI_TYPE:
  ------------------
  |  |  803|    230|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_ALLOWED_NSSAI_TYPE 0x74
  ------------------
  |  Branch (2475:9): [True: 230, False: 44.3k]
  ------------------
 2476|    230|            size = ogs_nas_5gs_decode_partial_nssai(&configuration_update_command->partially_allowed_nssai, pkbuf);
 2477|    230|            if (size < 0) {
  ------------------
  |  Branch (2477:17): [True: 16, False: 214]
  ------------------
 2478|     16|               ogs_error("ogs_nas_5gs_decode_partial_nssai() 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__) 
  |  |  ------------------
  ------------------
 2479|     16|               return size;
 2480|     16|            }
 2481|       |
 2482|    214|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_ALLOWED_NSSAI_PRESENT;
  ------------------
  |  |  756|    214|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_ALLOWED_NSSAI_PRESENT ((uint64_t)1<<40)
  ------------------
 2483|    214|            decoded += size;
 2484|    214|            break;
 2485|    301|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  804|    301|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_REJECTED_NSSAI_TYPE 0x7A
  ------------------
  |  Branch (2485:9): [True: 301, False: 44.2k]
  ------------------
 2486|    301|            size = ogs_nas_5gs_decode_partial_nssai(&configuration_update_command->partially_rejected_nssai, pkbuf);
 2487|    301|            if (size < 0) {
  ------------------
  |  Branch (2487:17): [True: 14, False: 287]
  ------------------
 2488|     14|               ogs_error("ogs_nas_5gs_decode_partial_nssai() failed");
  ------------------
  |  |   36|     14|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     14|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     14|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     14|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     14|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     14|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2489|     14|               return size;
 2490|     14|            }
 2491|       |
 2492|    287|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  757|    287|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_REJECTED_NSSAI_PRESENT ((uint64_t)1<<41)
  ------------------
 2493|    287|            decoded += size;
 2494|    287|            break;
 2495|    241|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FEATURE_AUTHORIZATION_INDICATION_TYPE:
  ------------------
  |  |  805|    241|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FEATURE_AUTHORIZATION_INDICATION_TYPE 0x5C
  ------------------
  |  Branch (2495:9): [True: 241, False: 44.3k]
  ------------------
 2496|    241|            size = ogs_nas_5gs_decode_feature_authorization_indication(&configuration_update_command->feature_authorization_indication, pkbuf);
 2497|    241|            if (size < 0) {
  ------------------
  |  Branch (2497:17): [True: 11, False: 230]
  ------------------
 2498|     11|               ogs_error("ogs_nas_5gs_decode_feature_authorization_indication() 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__) 
  |  |  ------------------
  ------------------
 2499|     11|               return size;
 2500|     11|            }
 2501|       |
 2502|    230|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FEATURE_AUTHORIZATION_INDICATION_PRESENT;
  ------------------
  |  |  758|    230|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FEATURE_AUTHORIZATION_INDICATION_PRESENT ((uint64_t)1<<42)
  ------------------
 2503|    230|            decoded += size;
 2504|    230|            break;
 2505|    292|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ON_DEMAND_NSSAI_TYPE:
  ------------------
  |  |  806|    292|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ON_DEMAND_NSSAI_TYPE 0x61
  ------------------
  |  Branch (2505:9): [True: 292, False: 44.2k]
  ------------------
 2506|    292|            size = ogs_nas_5gs_decode_on_demand_nssai(&configuration_update_command->on_demand_nssai, pkbuf);
 2507|    292|            if (size < 0) {
  ------------------
  |  Branch (2507:17): [True: 12, False: 280]
  ------------------
 2508|     12|               ogs_error("ogs_nas_5gs_decode_on_demand_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__) 
  |  |  ------------------
  ------------------
 2509|     12|               return size;
 2510|     12|            }
 2511|       |
 2512|    280|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ON_DEMAND_NSSAI_PRESENT;
  ------------------
  |  |  759|    280|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ON_DEMAND_NSSAI_PRESENT ((uint64_t)1<<43)
  ------------------
 2513|    280|            decoded += size;
 2514|    280|            break;
 2515|    224|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE:
  ------------------
  |  |  807|    224|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE 0x63
  ------------------
  |  Branch (2515:9): [True: 224, False: 44.3k]
  ------------------
 2516|    224|            size = ogs_nas_5gs_decode_access_technology_utilization_control(&configuration_update_command->access_technology_utilization_control, pkbuf);
 2517|    224|            if (size < 0) {
  ------------------
  |  Branch (2517:17): [True: 8, False: 216]
  ------------------
 2518|      8|               ogs_error("ogs_nas_5gs_decode_access_technology_utilization_control() 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__) 
  |  |  ------------------
  ------------------
 2519|      8|               return size;
 2520|      8|            }
 2521|       |
 2522|    216|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT;
  ------------------
  |  |  760|    216|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT ((uint64_t)1<<44)
  ------------------
 2523|    216|            decoded += size;
 2524|    216|            break;
 2525|    234|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_LP_WUSPS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  808|    234|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_LP_WUSPS_ASSISTANCE_INFORMATION_TYPE 0x64
  ------------------
  |  Branch (2525:9): [True: 234, False: 44.3k]
  ------------------
 2526|    234|            size = ogs_nas_5gs_decode_lp_wusps_assistance_information(&configuration_update_command->updated_lp_wusps_assistance_information, pkbuf);
 2527|    234|            if (size < 0) {
  ------------------
  |  Branch (2527:17): [True: 5, False: 229]
  ------------------
 2528|      5|               ogs_error("ogs_nas_5gs_decode_lp_wusps_assistance_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__) 
  |  |  ------------------
  ------------------
 2529|      5|               return size;
 2530|      5|            }
 2531|       |
 2532|    229|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_LP_WUSPS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  761|    229|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_LP_WUSPS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<45)
  ------------------
 2533|    229|            decoded += size;
 2534|    229|            break;
 2535|  1.96k|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LP_WUS_STATUS_TYPE:
  ------------------
  |  |  809|  1.96k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LP_WUS_STATUS_TYPE 0x80
  ------------------
  |  Branch (2535:9): [True: 1.96k, False: 42.5k]
  ------------------
 2536|  1.96k|            decoded--;
 2537|  1.96k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.96k|    do { \
  |  |  114|  1.96k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.96k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.96k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.96k|        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.96k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.96k]
  |  |  ------------------
  ------------------
 2538|  1.96k|            size = ogs_nas_5gs_decode_lp_wus_status(&configuration_update_command->lp_wus_status, pkbuf);
 2539|  1.96k|            if (size < 0) {
  ------------------
  |  Branch (2539:17): [True: 0, False: 1.96k]
  ------------------
 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.96k|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LP_WUS_STATUS_PRESENT;
  ------------------
  |  |  762|  1.96k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LP_WUS_STATUS_PRESENT ((uint64_t)1<<46)
  ------------------
 2545|  1.96k|            decoded += size;
 2546|  1.96k|            break;
 2547|  16.7k|        default:
  ------------------
  |  Branch (2547:9): [True: 16.7k, False: 27.8k]
  ------------------
 2548|  16.7k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  16.7k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  16.7k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  16.7k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  16.7k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  16.7k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  16.7k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2549|  16.7k|            break;
 2550|  44.5k|        }
 2551|  44.5k|    }
 2552|       |
 2553|    739|    return decoded;
 2554|  1.07k|}
ogs_nas_5gs_decode_authentication_request:
 2557|    109|{
 2558|    109|    ogs_nas_5gs_authentication_request_t *authentication_request = &message->gmm.authentication_request;
 2559|    109|    int decoded = 0;
 2560|    109|    int size = 0;
 2561|       |
 2562|    109|    ogs_trace("[NAS] Decode AUTHENTICATION_REQUEST\n");
  ------------------
  |  |   40|    109|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    109|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    109|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    109|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    109|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    109|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2563|       |
 2564|    109|    size = ogs_nas_5gs_decode_key_set_identifier(&authentication_request->ngksi, pkbuf);
 2565|    109|    if (size < 0) {
  ------------------
  |  Branch (2565:9): [True: 0, False: 109]
  ------------------
 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|    109|    decoded += size;
 2571|       |
 2572|    109|    size = ogs_nas_5gs_decode_abba(&authentication_request->abba, pkbuf);
 2573|    109|    if (size < 0) {
  ------------------
  |  Branch (2573:9): [True: 9, False: 100]
  ------------------
 2574|      9|        ogs_error("ogs_nas_5gs_decode_abba() 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__) 
  |  |  ------------------
  ------------------
 2575|      9|        return size;
 2576|      9|    }
 2577|       |
 2578|    100|    decoded += size;
 2579|       |
 2580|  6.33k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (2580:12): [True: 6.25k, False: 80]
  ------------------
 2581|  6.25k|        uint8_t *buffer = pkbuf->data;
 2582|  6.25k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (2582:24): [True: 1.86k, False: 4.39k]
  ------------------
 2583|       |
 2584|  6.25k|        size = sizeof(uint8_t);
 2585|  6.25k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2585:13): [True: 0, False: 6.25k]
  ------------------
 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|  6.25k|        decoded += size;
 2590|       |
 2591|  6.25k|        switch(type) {
 2592|    147|        case OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_RAND_TYPE:
  ------------------
  |  |  871|    147|#define OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_RAND_TYPE 0x21
  ------------------
  |  Branch (2592:9): [True: 147, False: 6.11k]
  ------------------
 2593|    147|            size = ogs_nas_5gs_decode_authentication_parameter_rand(&authentication_request->authentication_parameter_rand, pkbuf);
 2594|    147|            if (size < 0) {
  ------------------
  |  Branch (2594:17): [True: 13, False: 134]
  ------------------
 2595|     13|               ogs_error("ogs_nas_5gs_decode_authentication_parameter_rand() 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__) 
  |  |  ------------------
  ------------------
 2596|     13|               return size;
 2597|     13|            }
 2598|       |
 2599|    134|            authentication_request->presencemask |= OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_RAND_PRESENT;
  ------------------
  |  |  868|    134|#define OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_RAND_PRESENT ((uint64_t)1<<0)
  ------------------
 2600|    134|            decoded += size;
 2601|    134|            break;
 2602|    224|        case OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_AUTN_TYPE:
  ------------------
  |  |  872|    224|#define OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_AUTN_TYPE 0x20
  ------------------
  |  Branch (2602:9): [True: 224, False: 6.03k]
  ------------------
 2603|    224|            size = ogs_nas_5gs_decode_authentication_parameter_autn(&authentication_request->authentication_parameter_autn, pkbuf);
 2604|    224|            if (size < 0) {
  ------------------
  |  Branch (2604:17): [True: 6, False: 218]
  ------------------
 2605|      6|               ogs_error("ogs_nas_5gs_decode_authentication_parameter_autn() 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__) 
  |  |  ------------------
  ------------------
 2606|      6|               return size;
 2607|      6|            }
 2608|       |
 2609|    218|            authentication_request->presencemask |= OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_AUTN_PRESENT;
  ------------------
  |  |  869|    218|#define OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_AUTN_PRESENT ((uint64_t)1<<1)
  ------------------
 2610|    218|            decoded += size;
 2611|    218|            break;
 2612|    197|        case OGS_NAS_5GS_AUTHENTICATION_REQUEST_EAP_MESSAGE_TYPE:
  ------------------
  |  |  873|    197|#define OGS_NAS_5GS_AUTHENTICATION_REQUEST_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (2612:9): [True: 197, False: 6.06k]
  ------------------
 2613|    197|            size = ogs_nas_5gs_decode_eap_message(&authentication_request->eap_message, pkbuf);
 2614|    197|            if (size < 0) {
  ------------------
  |  Branch (2614:17): [True: 1, False: 196]
  ------------------
 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|    196|            authentication_request->presencemask |= OGS_NAS_5GS_AUTHENTICATION_REQUEST_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  870|    196|#define OGS_NAS_5GS_AUTHENTICATION_REQUEST_EAP_MESSAGE_PRESENT ((uint64_t)1<<2)
  ------------------
 2620|    196|            decoded += size;
 2621|    196|            break;
 2622|  5.68k|        default:
  ------------------
  |  Branch (2622:9): [True: 5.68k, False: 568]
  ------------------
 2623|  5.68k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  5.68k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  5.68k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  5.68k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  5.68k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  5.68k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  5.68k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2624|  5.68k|            break;
 2625|  6.25k|        }
 2626|  6.25k|    }
 2627|       |
 2628|     80|    return decoded;
 2629|    100|}
ogs_nas_5gs_decode_authentication_response:
 2632|     69|{
 2633|     69|    ogs_nas_5gs_authentication_response_t *authentication_response = &message->gmm.authentication_response;
 2634|     69|    int decoded = 0;
 2635|     69|    int size = 0;
 2636|       |
 2637|     69|    ogs_trace("[NAS] Decode AUTHENTICATION_RESPONSE\n");
  ------------------
  |  |   40|     69|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     69|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     69|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     69|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     69|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     69|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2638|       |
 2639|  2.54k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (2639:12): [True: 2.47k, False: 62]
  ------------------
 2640|  2.47k|        uint8_t *buffer = pkbuf->data;
 2641|  2.47k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (2641:24): [True: 733, False: 1.74k]
  ------------------
 2642|       |
 2643|  2.47k|        size = sizeof(uint8_t);
 2644|  2.47k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2644:13): [True: 0, False: 2.47k]
  ------------------
 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.47k|        decoded += size;
 2649|       |
 2650|  2.47k|        switch(type) {
 2651|    227|        case OGS_NAS_5GS_AUTHENTICATION_RESPONSE_AUTHENTICATION_RESPONSE_PARAMETER_TYPE:
  ------------------
  |  |  893|    227|#define OGS_NAS_5GS_AUTHENTICATION_RESPONSE_AUTHENTICATION_RESPONSE_PARAMETER_TYPE 0x2D
  ------------------
  |  Branch (2651:9): [True: 227, False: 2.25k]
  ------------------
 2652|    227|            size = ogs_nas_5gs_decode_authentication_response_parameter(&authentication_response->authentication_response_parameter, pkbuf);
 2653|    227|            if (size < 0) {
  ------------------
  |  Branch (2653:17): [True: 6, False: 221]
  ------------------
 2654|      6|               ogs_error("ogs_nas_5gs_decode_authentication_response_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__) 
  |  |  ------------------
  ------------------
 2655|      6|               return size;
 2656|      6|            }
 2657|       |
 2658|    221|            authentication_response->presencemask |= OGS_NAS_5GS_AUTHENTICATION_RESPONSE_AUTHENTICATION_RESPONSE_PARAMETER_PRESENT;
  ------------------
  |  |  891|    221|#define OGS_NAS_5GS_AUTHENTICATION_RESPONSE_AUTHENTICATION_RESPONSE_PARAMETER_PRESENT ((uint64_t)1<<0)
  ------------------
 2659|    221|            decoded += size;
 2660|    221|            break;
 2661|    207|        case OGS_NAS_5GS_AUTHENTICATION_RESPONSE_EAP_MESSAGE_TYPE:
  ------------------
  |  |  894|    207|#define OGS_NAS_5GS_AUTHENTICATION_RESPONSE_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (2661:9): [True: 207, False: 2.27k]
  ------------------
 2662|    207|            size = ogs_nas_5gs_decode_eap_message(&authentication_response->eap_message, pkbuf);
 2663|    207|            if (size < 0) {
  ------------------
  |  Branch (2663:17): [True: 1, False: 206]
  ------------------
 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|    206|            authentication_response->presencemask |= OGS_NAS_5GS_AUTHENTICATION_RESPONSE_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  892|    206|#define OGS_NAS_5GS_AUTHENTICATION_RESPONSE_EAP_MESSAGE_PRESENT ((uint64_t)1<<1)
  ------------------
 2669|    206|            decoded += size;
 2670|    206|            break;
 2671|  2.04k|        default:
  ------------------
  |  Branch (2671:9): [True: 2.04k, False: 434]
  ------------------
 2672|  2.04k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.04k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.04k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.04k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.04k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.04k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.04k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2673|  2.04k|            break;
 2674|  2.47k|        }
 2675|  2.47k|    }
 2676|       |
 2677|     62|    return decoded;
 2678|     69|}
ogs_nas_5gs_decode_authentication_reject:
 2681|     55|{
 2682|     55|    ogs_nas_5gs_authentication_reject_t *authentication_reject = &message->gmm.authentication_reject;
 2683|     55|    int decoded = 0;
 2684|     55|    int size = 0;
 2685|       |
 2686|     55|    ogs_trace("[NAS] Decode AUTHENTICATION_REJECT\n");
  ------------------
  |  |   40|     55|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     55|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     55|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     55|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     55|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     55|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2687|       |
 2688|  1.67k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (2688:12): [True: 1.62k, False: 52]
  ------------------
 2689|  1.62k|        uint8_t *buffer = pkbuf->data;
 2690|  1.62k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (2690:24): [True: 733, False: 887]
  ------------------
 2691|       |
 2692|  1.62k|        size = sizeof(uint8_t);
 2693|  1.62k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2693:13): [True: 0, False: 1.62k]
  ------------------
 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.62k|        decoded += size;
 2698|       |
 2699|  1.62k|        switch(type) {
 2700|    218|        case OGS_NAS_5GS_AUTHENTICATION_REJECT_EAP_MESSAGE_TYPE:
  ------------------
  |  |  909|    218|#define OGS_NAS_5GS_AUTHENTICATION_REJECT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (2700:9): [True: 218, False: 1.40k]
  ------------------
 2701|    218|            size = ogs_nas_5gs_decode_eap_message(&authentication_reject->eap_message, pkbuf);
 2702|    218|            if (size < 0) {
  ------------------
  |  Branch (2702:17): [True: 3, False: 215]
  ------------------
 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|    215|            authentication_reject->presencemask |= OGS_NAS_5GS_AUTHENTICATION_REJECT_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  908|    215|#define OGS_NAS_5GS_AUTHENTICATION_REJECT_EAP_MESSAGE_PRESENT ((uint64_t)1<<0)
  ------------------
 2708|    215|            decoded += size;
 2709|    215|            break;
 2710|  1.40k|        default:
  ------------------
  |  Branch (2710:9): [True: 1.40k, False: 218]
  ------------------
 2711|  1.40k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.40k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.40k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.40k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.40k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.40k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.40k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2712|  1.40k|            break;
 2713|  1.62k|        }
 2714|  1.62k|    }
 2715|       |
 2716|     52|    return decoded;
 2717|     55|}
ogs_nas_5gs_decode_authentication_failure:
 2720|     52|{
 2721|     52|    ogs_nas_5gs_authentication_failure_t *authentication_failure = &message->gmm.authentication_failure;
 2722|     52|    int decoded = 0;
 2723|     52|    int size = 0;
 2724|       |
 2725|     52|    ogs_trace("[NAS] Decode AUTHENTICATION_FAILURE\n");
  ------------------
  |  |   40|     52|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 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__) 
  |  |  ------------------
  ------------------
 2726|       |
 2727|     52|    size = ogs_nas_5gs_decode_5gmm_cause(&authentication_failure->gmm_cause, pkbuf);
 2728|     52|    if (size < 0) {
  ------------------
  |  Branch (2728:9): [True: 0, False: 52]
  ------------------
 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|     52|    decoded += size;
 2734|       |
 2735|  1.63k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (2735:12): [True: 1.58k, False: 48]
  ------------------
 2736|  1.58k|        uint8_t *buffer = pkbuf->data;
 2737|  1.58k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (2737:24): [True: 376, False: 1.21k]
  ------------------
 2738|       |
 2739|  1.58k|        size = sizeof(uint8_t);
 2740|  1.58k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2740:13): [True: 0, False: 1.58k]
  ------------------
 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|  1.58k|        decoded += size;
 2745|       |
 2746|  1.58k|        switch(type) {
 2747|    202|        case OGS_NAS_5GS_AUTHENTICATION_FAILURE_AUTHENTICATION_FAILURE_PARAMETER_TYPE:
  ------------------
  |  |  923|    202|#define OGS_NAS_5GS_AUTHENTICATION_FAILURE_AUTHENTICATION_FAILURE_PARAMETER_TYPE 0x30
  ------------------
  |  Branch (2747:9): [True: 202, False: 1.38k]
  ------------------
 2748|    202|            size = ogs_nas_5gs_decode_authentication_failure_parameter(&authentication_failure->authentication_failure_parameter, pkbuf);
 2749|    202|            if (size < 0) {
  ------------------
  |  Branch (2749:17): [True: 4, False: 198]
  ------------------
 2750|      4|               ogs_error("ogs_nas_5gs_decode_authentication_failure_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__) 
  |  |  ------------------
  ------------------
 2751|      4|               return size;
 2752|      4|            }
 2753|       |
 2754|    198|            authentication_failure->presencemask |= OGS_NAS_5GS_AUTHENTICATION_FAILURE_AUTHENTICATION_FAILURE_PARAMETER_PRESENT;
  ------------------
  |  |  922|    198|#define OGS_NAS_5GS_AUTHENTICATION_FAILURE_AUTHENTICATION_FAILURE_PARAMETER_PRESENT ((uint64_t)1<<0)
  ------------------
 2755|    198|            decoded += size;
 2756|    198|            break;
 2757|  1.38k|        default:
  ------------------
  |  Branch (2757:9): [True: 1.38k, False: 202]
  ------------------
 2758|  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__) 
  |  |  ------------------
  ------------------
 2759|  1.38k|            break;
 2760|  1.58k|        }
 2761|  1.58k|    }
 2762|       |
 2763|     48|    return decoded;
 2764|     52|}
ogs_nas_5gs_decode_authentication_result:
 2767|     73|{
 2768|     73|    ogs_nas_5gs_authentication_result_t *authentication_result = &message->gmm.authentication_result;
 2769|     73|    int decoded = 0;
 2770|     73|    int size = 0;
 2771|       |
 2772|     73|    ogs_trace("[NAS] Decode AUTHENTICATION_RESULT\n");
  ------------------
  |  |   40|     73|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     73|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     73|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     73|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     73|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     73|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2773|       |
 2774|     73|    size = ogs_nas_5gs_decode_key_set_identifier(&authentication_result->ngksi, pkbuf);
 2775|     73|    if (size < 0) {
  ------------------
  |  Branch (2775:9): [True: 0, False: 73]
  ------------------
 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|     73|    decoded += size;
 2781|       |
 2782|     73|    size = ogs_nas_5gs_decode_eap_message(&authentication_result->eap_message, pkbuf);
 2783|     73|    if (size < 0) {
  ------------------
  |  Branch (2783:9): [True: 13, False: 60]
  ------------------
 2784|     13|        ogs_error("ogs_nas_5gs_decode_eap_message() 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__) 
  |  |  ------------------
  ------------------
 2785|     13|        return size;
 2786|     13|    }
 2787|       |
 2788|     60|    decoded += size;
 2789|       |
 2790|  2.90k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (2790:12): [True: 2.85k, False: 57]
  ------------------
 2791|  2.85k|        uint8_t *buffer = pkbuf->data;
 2792|  2.85k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (2792:24): [True: 984, False: 1.86k]
  ------------------
 2793|       |
 2794|  2.85k|        size = sizeof(uint8_t);
 2795|  2.85k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2795:13): [True: 0, False: 2.85k]
  ------------------
 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.85k|        decoded += size;
 2800|       |
 2801|  2.85k|        switch(type) {
 2802|    197|        case OGS_NAS_5GS_AUTHENTICATION_RESULT_ABBA_TYPE:
  ------------------
  |  |  940|    197|#define OGS_NAS_5GS_AUTHENTICATION_RESULT_ABBA_TYPE 0x38
  ------------------
  |  Branch (2802:9): [True: 197, False: 2.65k]
  ------------------
 2803|    197|            size = ogs_nas_5gs_decode_abba(&authentication_result->abba, pkbuf);
 2804|    197|            if (size < 0) {
  ------------------
  |  Branch (2804:17): [True: 1, False: 196]
  ------------------
 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|    196|            authentication_result->presencemask |= OGS_NAS_5GS_AUTHENTICATION_RESULT_ABBA_PRESENT;
  ------------------
  |  |  938|    196|#define OGS_NAS_5GS_AUTHENTICATION_RESULT_ABBA_PRESENT ((uint64_t)1<<0)
  ------------------
 2810|    196|            decoded += size;
 2811|    196|            break;
 2812|    203|        case OGS_NAS_5GS_AUTHENTICATION_RESULT_AUN3_DEVICE_SECURITY_KEY_TYPE:
  ------------------
  |  |  941|    203|#define OGS_NAS_5GS_AUTHENTICATION_RESULT_AUN3_DEVICE_SECURITY_KEY_TYPE 0x55
  ------------------
  |  Branch (2812:9): [True: 203, False: 2.64k]
  ------------------
 2813|    203|            size = ogs_nas_5gs_decode_aun3_device_security_key(&authentication_result->aun3_device_security_key, pkbuf);
 2814|    203|            if (size < 0) {
  ------------------
  |  Branch (2814:17): [True: 2, False: 201]
  ------------------
 2815|      2|               ogs_error("ogs_nas_5gs_decode_aun3_device_security_key() 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__) 
  |  |  ------------------
  ------------------
 2816|      2|               return size;
 2817|      2|            }
 2818|       |
 2819|    201|            authentication_result->presencemask |= OGS_NAS_5GS_AUTHENTICATION_RESULT_AUN3_DEVICE_SECURITY_KEY_PRESENT;
  ------------------
  |  |  939|    201|#define OGS_NAS_5GS_AUTHENTICATION_RESULT_AUN3_DEVICE_SECURITY_KEY_PRESENT ((uint64_t)1<<1)
  ------------------
 2820|    201|            decoded += size;
 2821|    201|            break;
 2822|  2.45k|        default:
  ------------------
  |  Branch (2822:9): [True: 2.45k, False: 400]
  ------------------
 2823|  2.45k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.45k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.45k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.45k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.45k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.45k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.45k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2824|  2.45k|            break;
 2825|  2.85k|        }
 2826|  2.85k|    }
 2827|       |
 2828|     57|    return decoded;
 2829|     60|}
ogs_nas_5gs_decode_identity_request:
 2832|      2|{
 2833|      2|    ogs_nas_5gs_identity_request_t *identity_request = &message->gmm.identity_request;
 2834|      2|    int decoded = 0;
 2835|      2|    int size = 0;
 2836|       |
 2837|      2|    ogs_trace("[NAS] Decode IDENTITY_REQUEST\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__) 
  |  |  ------------------
  ------------------
 2838|       |
 2839|      2|    size = ogs_nas_5gs_decode_5gs_identity_type(&identity_request->identity_type, pkbuf);
 2840|      2|    if (size < 0) {
  ------------------
  |  Branch (2840:9): [True: 0, False: 2]
  ------------------
 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|      2|    decoded += size;
 2846|       |
 2847|      2|    return decoded;
 2848|      2|}
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: 18, False: 4]
  ------------------
 2860|     18|        ogs_error("ogs_nas_5gs_decode_5gs_mobile_identity() 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__) 
  |  |  ------------------
  ------------------
 2861|     18|        return size;
 2862|     18|    }
 2863|       |
 2864|      4|    decoded += size;
 2865|       |
 2866|      4|    return decoded;
 2867|     22|}
ogs_nas_5gs_decode_security_mode_command:
 2870|    146|{
 2871|    146|    ogs_nas_5gs_security_mode_command_t *security_mode_command = &message->gmm.security_mode_command;
 2872|    146|    int decoded = 0;
 2873|    146|    int size = 0;
 2874|       |
 2875|    146|    ogs_trace("[NAS] Decode SECURITY_MODE_COMMAND\n");
  ------------------
  |  |   40|    146|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    146|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    146|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    146|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    146|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    146|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2876|       |
 2877|    146|    size = ogs_nas_5gs_decode_security_algorithms(&security_mode_command->selected_nas_security_algorithms, pkbuf);
 2878|    146|    if (size < 0) {
  ------------------
  |  Branch (2878:9): [True: 0, False: 146]
  ------------------
 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|    146|    decoded += size;
 2884|       |
 2885|    146|    size = ogs_nas_5gs_decode_key_set_identifier(&security_mode_command->ngksi, pkbuf);
 2886|    146|    if (size < 0) {
  ------------------
  |  Branch (2886:9): [True: 1, False: 145]
  ------------------
 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|    145|    decoded += size;
 2892|       |
 2893|    145|    size = ogs_nas_5gs_decode_ue_security_capability(&security_mode_command->replayed_ue_security_capabilities, pkbuf);
 2894|    145|    if (size < 0) {
  ------------------
  |  Branch (2894:9): [True: 9, False: 136]
  ------------------
 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|    136|    decoded += size;
 2900|       |
 2901|  7.09k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (2901:12): [True: 6.97k, False: 116]
  ------------------
 2902|  6.97k|        uint8_t *buffer = pkbuf->data;
 2903|  6.97k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (2903:24): [True: 2.21k, False: 4.76k]
  ------------------
 2904|       |
 2905|  6.97k|        size = sizeof(uint8_t);
 2906|  6.97k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2906:13): [True: 0, False: 6.97k]
  ------------------
 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|  6.97k|        decoded += size;
 2911|       |
 2912|  6.97k|        switch(type) {
 2913|    510|        case OGS_NAS_5GS_SECURITY_MODE_COMMAND_IMEISV_REQUEST_TYPE:
  ------------------
  |  |  985|    510|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_IMEISV_REQUEST_TYPE 0xE0
  ------------------
  |  Branch (2913:9): [True: 510, False: 6.46k]
  ------------------
 2914|    510|            decoded--;
 2915|    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]
  |  |  ------------------
  ------------------
 2916|    510|            size = ogs_nas_5gs_decode_imeisv_request(&security_mode_command->imeisv_request, pkbuf);
 2917|    510|            if (size < 0) {
  ------------------
  |  Branch (2917:17): [True: 0, False: 510]
  ------------------
 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|    510|            security_mode_command->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMMAND_IMEISV_REQUEST_PRESENT;
  ------------------
  |  |  978|    510|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_IMEISV_REQUEST_PRESENT ((uint64_t)1<<0)
  ------------------
 2923|    510|            decoded += size;
 2924|    510|            break;
 2925|    216|        case OGS_NAS_5GS_SECURITY_MODE_COMMAND_SELECTED_EPS_NAS_SECURITY_ALGORITHMS_TYPE:
  ------------------
  |  |  986|    216|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_SELECTED_EPS_NAS_SECURITY_ALGORITHMS_TYPE 0x57
  ------------------
  |  Branch (2925:9): [True: 216, False: 6.76k]
  ------------------
 2926|    216|            size = ogs_nas_5gs_decode_eps_nas_security_algorithms(&security_mode_command->selected_eps_nas_security_algorithms, pkbuf);
 2927|    216|            if (size < 0) {
  ------------------
  |  Branch (2927:17): [True: 2, False: 214]
  ------------------
 2928|      2|               ogs_error("ogs_nas_5gs_decode_eps_nas_security_algorithms() 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__) 
  |  |  ------------------
  ------------------
 2929|      2|               return size;
 2930|      2|            }
 2931|       |
 2932|    214|            security_mode_command->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMMAND_SELECTED_EPS_NAS_SECURITY_ALGORITHMS_PRESENT;
  ------------------
  |  |  979|    214|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_SELECTED_EPS_NAS_SECURITY_ALGORITHMS_PRESENT ((uint64_t)1<<1)
  ------------------
 2933|    214|            decoded += size;
 2934|    214|            break;
 2935|    198|        case OGS_NAS_5GS_SECURITY_MODE_COMMAND_ADDITIONAL_5G_SECURITY_INFORMATION_TYPE:
  ------------------
  |  |  987|    198|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_ADDITIONAL_5G_SECURITY_INFORMATION_TYPE 0x36
  ------------------
  |  Branch (2935:9): [True: 198, False: 6.78k]
  ------------------
 2936|    198|            size = ogs_nas_5gs_decode_additional_5g_security_information(&security_mode_command->additional_security_information, pkbuf);
 2937|    198|            if (size < 0) {
  ------------------
  |  Branch (2937:17): [True: 3, False: 195]
  ------------------
 2938|      3|               ogs_error("ogs_nas_5gs_decode_additional_5g_security_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__) 
  |  |  ------------------
  ------------------
 2939|      3|               return size;
 2940|      3|            }
 2941|       |
 2942|    195|            security_mode_command->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMMAND_ADDITIONAL_5G_SECURITY_INFORMATION_PRESENT;
  ------------------
  |  |  980|    195|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_ADDITIONAL_5G_SECURITY_INFORMATION_PRESENT ((uint64_t)1<<2)
  ------------------
 2943|    195|            decoded += size;
 2944|    195|            break;
 2945|    206|        case OGS_NAS_5GS_SECURITY_MODE_COMMAND_EAP_MESSAGE_TYPE:
  ------------------
  |  |  988|    206|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (2945:9): [True: 206, False: 6.77k]
  ------------------
 2946|    206|            size = ogs_nas_5gs_decode_eap_message(&security_mode_command->eap_message, pkbuf);
 2947|    206|            if (size < 0) {
  ------------------
  |  Branch (2947:17): [True: 1, False: 205]
  ------------------
 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|    205|            security_mode_command->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMMAND_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  981|    205|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_EAP_MESSAGE_PRESENT ((uint64_t)1<<3)
  ------------------
 2953|    205|            decoded += size;
 2954|    205|            break;
 2955|    212|        case OGS_NAS_5GS_SECURITY_MODE_COMMAND_ABBA_TYPE:
  ------------------
  |  |  989|    212|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_ABBA_TYPE 0x38
  ------------------
  |  Branch (2955:9): [True: 212, False: 6.76k]
  ------------------
 2956|    212|            size = ogs_nas_5gs_decode_abba(&security_mode_command->abba, pkbuf);
 2957|    212|            if (size < 0) {
  ------------------
  |  Branch (2957:17): [True: 2, False: 210]
  ------------------
 2958|      2|               ogs_error("ogs_nas_5gs_decode_abba() 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__) 
  |  |  ------------------
  ------------------
 2959|      2|               return size;
 2960|      2|            }
 2961|       |
 2962|    210|            security_mode_command->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMMAND_ABBA_PRESENT;
  ------------------
  |  |  982|    210|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_ABBA_PRESENT ((uint64_t)1<<4)
  ------------------
 2963|    210|            decoded += size;
 2964|    210|            break;
 2965|    213|        case OGS_NAS_5GS_SECURITY_MODE_COMMAND_REPLAYED_S1_UE_SECURITY_CAPABILITIES_TYPE:
  ------------------
  |  |  990|    213|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_REPLAYED_S1_UE_SECURITY_CAPABILITIES_TYPE 0x19
  ------------------
  |  Branch (2965:9): [True: 213, False: 6.76k]
  ------------------
 2966|    213|            size = ogs_nas_5gs_decode_s1_ue_security_capability(&security_mode_command->replayed_s1_ue_security_capabilities, pkbuf);
 2967|    213|            if (size < 0) {
  ------------------
  |  Branch (2967:17): [True: 6, False: 207]
  ------------------
 2968|      6|               ogs_error("ogs_nas_5gs_decode_s1_ue_security_capability() 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__) 
  |  |  ------------------
  ------------------
 2969|      6|               return size;
 2970|      6|            }
 2971|       |
 2972|    207|            security_mode_command->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMMAND_REPLAYED_S1_UE_SECURITY_CAPABILITIES_PRESENT;
  ------------------
  |  |  983|    207|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_REPLAYED_S1_UE_SECURITY_CAPABILITIES_PRESENT ((uint64_t)1<<5)
  ------------------
 2973|    207|            decoded += size;
 2974|    207|            break;
 2975|    245|        case OGS_NAS_5GS_SECURITY_MODE_COMMAND_AUN3_DEVICE_SECURITY_KEY_TYPE:
  ------------------
  |  |  991|    245|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_AUN3_DEVICE_SECURITY_KEY_TYPE 0x55
  ------------------
  |  Branch (2975:9): [True: 245, False: 6.73k]
  ------------------
 2976|    245|            size = ogs_nas_5gs_decode_aun3_device_security_key(&security_mode_command->aun3_device_security_key, pkbuf);
 2977|    245|            if (size < 0) {
  ------------------
  |  Branch (2977:17): [True: 6, False: 239]
  ------------------
 2978|      6|               ogs_error("ogs_nas_5gs_decode_aun3_device_security_key() 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__) 
  |  |  ------------------
  ------------------
 2979|      6|               return size;
 2980|      6|            }
 2981|       |
 2982|    239|            security_mode_command->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMMAND_AUN3_DEVICE_SECURITY_KEY_PRESENT;
  ------------------
  |  |  984|    239|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_AUN3_DEVICE_SECURITY_KEY_PRESENT ((uint64_t)1<<6)
  ------------------
 2983|    239|            decoded += size;
 2984|    239|            break;
 2985|  5.17k|        default:
  ------------------
  |  Branch (2985:9): [True: 5.17k, False: 1.80k]
  ------------------
 2986|  5.17k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  5.17k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  5.17k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  5.17k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  5.17k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  5.17k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  5.17k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2987|  5.17k|            break;
 2988|  6.97k|        }
 2989|  6.97k|    }
 2990|       |
 2991|    116|    return decoded;
 2992|    136|}
ogs_nas_5gs_decode_security_mode_complete:
 2995|    101|{
 2996|    101|    ogs_nas_5gs_security_mode_complete_t *security_mode_complete = &message->gmm.security_mode_complete;
 2997|    101|    int decoded = 0;
 2998|    101|    int size = 0;
 2999|       |
 3000|    101|    ogs_trace("[NAS] Decode SECURITY_MODE_COMPLETE\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__) 
  |  |  ------------------
  ------------------
 3001|       |
 3002|  2.82k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (3002:12): [True: 2.75k, False: 70]
  ------------------
 3003|  2.75k|        uint8_t *buffer = pkbuf->data;
 3004|  2.75k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (3004:24): [True: 732, False: 2.02k]
  ------------------
 3005|       |
 3006|  2.75k|        size = sizeof(uint8_t);
 3007|  2.75k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3007:13): [True: 0, False: 2.75k]
  ------------------
 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.75k|        decoded += size;
 3012|       |
 3013|  2.75k|        switch(type) {
 3014|    228|        case OGS_NAS_5GS_SECURITY_MODE_COMPLETE_IMEISV_TYPE:
  ------------------
  |  | 1017|    228|#define OGS_NAS_5GS_SECURITY_MODE_COMPLETE_IMEISV_TYPE 0x77
  ------------------
  |  Branch (3014:9): [True: 228, False: 2.52k]
  ------------------
 3015|    228|            size = ogs_nas_5gs_decode_5gs_mobile_identity(&security_mode_complete->imeisv, pkbuf);
 3016|    228|            if (size < 0) {
  ------------------
  |  Branch (3016:17): [True: 4, False: 224]
  ------------------
 3017|      4|               ogs_error("ogs_nas_5gs_decode_5gs_mobile_identity() 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__) 
  |  |  ------------------
  ------------------
 3018|      4|               return size;
 3019|      4|            }
 3020|       |
 3021|    224|            security_mode_complete->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMPLETE_IMEISV_PRESENT;
  ------------------
  |  | 1014|    224|#define OGS_NAS_5GS_SECURITY_MODE_COMPLETE_IMEISV_PRESENT ((uint64_t)1<<0)
  ------------------
 3022|    224|            decoded += size;
 3023|    224|            break;
 3024|    276|        case OGS_NAS_5GS_SECURITY_MODE_COMPLETE_NAS_MESSAGE_CONTAINER_TYPE:
  ------------------
  |  | 1018|    276|#define OGS_NAS_5GS_SECURITY_MODE_COMPLETE_NAS_MESSAGE_CONTAINER_TYPE 0x71
  ------------------
  |  Branch (3024:9): [True: 276, False: 2.48k]
  ------------------
 3025|    276|            size = ogs_nas_5gs_decode_message_container(&security_mode_complete->nas_message_container, pkbuf);
 3026|    276|            if (size < 0) {
  ------------------
  |  Branch (3026:17): [True: 25, False: 251]
  ------------------
 3027|     25|               ogs_error("ogs_nas_5gs_decode_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__) 
  |  |  ------------------
  ------------------
 3028|     25|               return size;
 3029|     25|            }
 3030|       |
 3031|    251|            security_mode_complete->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMPLETE_NAS_MESSAGE_CONTAINER_PRESENT;
  ------------------
  |  | 1015|    251|#define OGS_NAS_5GS_SECURITY_MODE_COMPLETE_NAS_MESSAGE_CONTAINER_PRESENT ((uint64_t)1<<1)
  ------------------
 3032|    251|            decoded += size;
 3033|    251|            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.55k]
  ------------------
 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|  2.04k|        default:
  ------------------
  |  Branch (3044:9): [True: 2.04k, False: 710]
  ------------------
 3045|  2.04k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.04k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.04k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.04k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.04k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.04k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.04k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3046|  2.04k|            break;
 3047|  2.75k|        }
 3048|  2.75k|    }
 3049|       |
 3050|     70|    return decoded;
 3051|    101|}
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|      6|{
 3093|      6|    ogs_nas_5gs_notification_t *notification = &message->gmm.notification;
 3094|      6|    int decoded = 0;
 3095|      6|    int size = 0;
 3096|       |
 3097|      6|    ogs_trace("[NAS] Decode NOTIFICATION\n");
  ------------------
  |  |   40|      6|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 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__) 
  |  |  ------------------
  ------------------
 3098|       |
 3099|      6|    size = ogs_nas_5gs_decode_access_type(&notification->access_type, pkbuf);
 3100|      6|    if (size < 0) {
  ------------------
  |  Branch (3100:9): [True: 0, False: 6]
  ------------------
 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|      6|    decoded += size;
 3106|       |
 3107|      6|    return decoded;
 3108|      6|}
ogs_nas_5gs_decode_notification_response:
 3111|     61|{
 3112|     61|    ogs_nas_5gs_notification_response_t *notification_response = &message->gmm.notification_response;
 3113|     61|    int decoded = 0;
 3114|     61|    int size = 0;
 3115|       |
 3116|     61|    ogs_trace("[NAS] Decode NOTIFICATION_RESPONSE\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__) 
  |  |  ------------------
  ------------------
 3117|       |
 3118|  2.33k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (3118:12): [True: 2.28k, False: 55]
  ------------------
 3119|  2.28k|        uint8_t *buffer = pkbuf->data;
 3120|  2.28k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (3120:24): [True: 803, False: 1.47k]
  ------------------
 3121|       |
 3122|  2.28k|        size = sizeof(uint8_t);
 3123|  2.28k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3123:13): [True: 0, False: 2.28k]
  ------------------
 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|  2.28k|        decoded += size;
 3128|       |
 3129|  2.28k|        switch(type) {
 3130|    274|        case OGS_NAS_5GS_NOTIFICATION_RESPONSE_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  | 1065|    274|#define OGS_NAS_5GS_NOTIFICATION_RESPONSE_PDU_SESSION_STATUS_TYPE 0x50
  ------------------
  |  Branch (3130:9): [True: 274, False: 2.00k]
  ------------------
 3131|    274|            size = ogs_nas_5gs_decode_pdu_session_status(&notification_response->pdu_session_status, pkbuf);
 3132|    274|            if (size < 0) {
  ------------------
  |  Branch (3132:17): [True: 6, False: 268]
  ------------------
 3133|      6|               ogs_error("ogs_nas_5gs_decode_pdu_session_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__) 
  |  |  ------------------
  ------------------
 3134|      6|               return size;
 3135|      6|            }
 3136|       |
 3137|    268|            notification_response->presencemask |= OGS_NAS_5GS_NOTIFICATION_RESPONSE_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  | 1064|    268|#define OGS_NAS_5GS_NOTIFICATION_RESPONSE_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<0)
  ------------------
 3138|    268|            decoded += size;
 3139|    268|            break;
 3140|  2.00k|        default:
  ------------------
  |  Branch (3140:9): [True: 2.00k, False: 274]
  ------------------
 3141|  2.00k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.00k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 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__) 
  |  |  ------------------
  ------------------
 3142|  2.00k|            break;
 3143|  2.28k|        }
 3144|  2.28k|    }
 3145|       |
 3146|     55|    return decoded;
 3147|     61|}
ogs_nas_5gs_decode_ul_nas_transport:
 3150|    306|{
 3151|    306|    ogs_nas_5gs_ul_nas_transport_t *ul_nas_transport = &message->gmm.ul_nas_transport;
 3152|    306|    int decoded = 0;
 3153|    306|    int size = 0;
 3154|       |
 3155|    306|    ogs_trace("[NAS] Decode UL_NAS_TRANSPORT\n");
  ------------------
  |  |   40|    306|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    306|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    306|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    306|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    306|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    306|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3156|       |
 3157|    306|    size = ogs_nas_5gs_decode_payload_container_type(&ul_nas_transport->payload_container_type, pkbuf);
 3158|    306|    if (size < 0) {
  ------------------
  |  Branch (3158:9): [True: 0, False: 306]
  ------------------
 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|    306|    decoded += size;
 3164|       |
 3165|    306|    size = ogs_nas_5gs_decode_payload_container(&ul_nas_transport->payload_container, pkbuf);
 3166|    306|    if (size < 0) {
  ------------------
  |  Branch (3166:9): [True: 9, False: 297]
  ------------------
 3167|      9|        ogs_error("ogs_nas_5gs_decode_payload_container() 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__) 
  |  |  ------------------
  ------------------
 3168|      9|        return size;
 3169|      9|    }
 3170|       |
 3171|    297|    decoded += size;
 3172|       |
 3173|  14.9k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (3173:12): [True: 14.6k, False: 276]
  ------------------
 3174|  14.6k|        uint8_t *buffer = pkbuf->data;
 3175|  14.6k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (3175:24): [True: 5.41k, False: 9.23k]
  ------------------
 3176|       |
 3177|  14.6k|        size = sizeof(uint8_t);
 3178|  14.6k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3178:13): [True: 0, False: 14.6k]
  ------------------
 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|  14.6k|        decoded += size;
 3183|       |
 3184|  14.6k|        switch(type) {
 3185|    213|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_PDU_SESSION_ID_TYPE:
  ------------------
  |  | 1089|    213|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_PDU_SESSION_ID_TYPE 0x12
  ------------------
  |  Branch (3185:9): [True: 213, False: 14.4k]
  ------------------
 3186|    213|            size = ogs_nas_5gs_decode_pdu_session_identity_2(&ul_nas_transport->pdu_session_id, pkbuf);
 3187|    213|            if (size < 0) {
  ------------------
  |  Branch (3187:17): [True: 3, False: 210]
  ------------------
 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|    210|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_PDU_SESSION_ID_PRESENT;
  ------------------
  |  | 1078|    210|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_PDU_SESSION_ID_PRESENT ((uint64_t)1<<0)
  ------------------
 3193|    210|            decoded += size;
 3194|    210|            break;
 3195|    216|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_OLD_PDU_SESSION_ID_TYPE:
  ------------------
  |  | 1090|    216|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_OLD_PDU_SESSION_ID_TYPE 0x59
  ------------------
  |  Branch (3195:9): [True: 216, False: 14.4k]
  ------------------
 3196|    216|            size = ogs_nas_5gs_decode_pdu_session_identity_2(&ul_nas_transport->old_pdu_session_id, pkbuf);
 3197|    216|            if (size < 0) {
  ------------------
  |  Branch (3197:17): [True: 1, False: 215]
  ------------------
 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|    215|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_OLD_PDU_SESSION_ID_PRESENT;
  ------------------
  |  | 1079|    215|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_OLD_PDU_SESSION_ID_PRESENT ((uint64_t)1<<1)
  ------------------
 3203|    215|            decoded += size;
 3204|    215|            break;
 3205|    834|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_REQUEST_TYPE_TYPE:
  ------------------
  |  | 1091|    834|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_REQUEST_TYPE_TYPE 0x80
  ------------------
  |  Branch (3205:9): [True: 834, False: 13.8k]
  ------------------
 3206|    834|            decoded--;
 3207|    834|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    834|    do { \
  |  |  114|    834|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    834|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 834, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    834|        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|    834|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 834]
  |  |  ------------------
  ------------------
 3208|    834|            size = ogs_nas_5gs_decode_request_type(&ul_nas_transport->request_type, pkbuf);
 3209|    834|            if (size < 0) {
  ------------------
  |  Branch (3209:17): [True: 0, False: 834]
  ------------------
 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|    834|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_REQUEST_TYPE_PRESENT;
  ------------------
  |  | 1080|    834|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_REQUEST_TYPE_PRESENT ((uint64_t)1<<2)
  ------------------
 3215|    834|            decoded += size;
 3216|    834|            break;
 3217|    205|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_S_NSSAI_TYPE:
  ------------------
  |  | 1092|    205|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_S_NSSAI_TYPE 0x22
  ------------------
  |  Branch (3217:9): [True: 205, False: 14.4k]
  ------------------
 3218|    205|            size = ogs_nas_5gs_decode_s_nssai(&ul_nas_transport->s_nssai, pkbuf);
 3219|    205|            if (size < 0) {
  ------------------
  |  Branch (3219:17): [True: 1, False: 204]
  ------------------
 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|    204|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_S_NSSAI_PRESENT;
  ------------------
  |  | 1081|    204|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_S_NSSAI_PRESENT ((uint64_t)1<<3)
  ------------------
 3225|    204|            decoded += size;
 3226|    204|            break;
 3227|  1.29k|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_DNN_TYPE:
  ------------------
  |  | 1093|  1.29k|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_DNN_TYPE 0x25
  ------------------
  |  Branch (3227:9): [True: 1.29k, False: 13.3k]
  ------------------
 3228|  1.29k|            size = ogs_nas_5gs_decode_dnn(&ul_nas_transport->dnn, pkbuf);
 3229|  1.29k|            if (size < 0) {
  ------------------
  |  Branch (3229:17): [True: 10, False: 1.28k]
  ------------------
 3230|     10|               ogs_error("ogs_nas_5gs_decode_dnn() 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__) 
  |  |  ------------------
  ------------------
 3231|     10|               return size;
 3232|     10|            }
 3233|       |
 3234|  1.28k|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_DNN_PRESENT;
  ------------------
  |  | 1082|  1.28k|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_DNN_PRESENT ((uint64_t)1<<4)
  ------------------
 3235|  1.28k|            decoded += size;
 3236|  1.28k|            break;
 3237|    207|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_TYPE:
  ------------------
  |  | 1094|    207|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_TYPE 0x24
  ------------------
  |  Branch (3237:9): [True: 207, False: 14.4k]
  ------------------
 3238|    207|            size = ogs_nas_5gs_decode_additional_information(&ul_nas_transport->additional_information, pkbuf);
 3239|    207|            if (size < 0) {
  ------------------
  |  Branch (3239:17): [True: 1, False: 206]
  ------------------
 3240|      1|               ogs_error("ogs_nas_5gs_decode_additional_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__) 
  |  |  ------------------
  ------------------
 3241|      1|               return size;
 3242|      1|            }
 3243|       |
 3244|    206|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_PRESENT;
  ------------------
  |  | 1083|    206|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_PRESENT ((uint64_t)1<<5)
  ------------------
 3245|    206|            decoded += size;
 3246|    206|            break;
 3247|    543|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_MA_PDU_SESSION_INFORMATION_TYPE:
  ------------------
  |  | 1095|    543|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_MA_PDU_SESSION_INFORMATION_TYPE 0xA0
  ------------------
  |  Branch (3247:9): [True: 543, False: 14.1k]
  ------------------
 3248|    543|            decoded--;
 3249|    543|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    543|    do { \
  |  |  114|    543|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    543|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 543, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    543|        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|    543|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 543]
  |  |  ------------------
  ------------------
 3250|    543|            size = ogs_nas_5gs_decode_ma_pdu_session_information(&ul_nas_transport->ma_pdu_session_information, pkbuf);
 3251|    543|            if (size < 0) {
  ------------------
  |  Branch (3251:17): [True: 0, False: 543]
  ------------------
 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|    543|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_MA_PDU_SESSION_INFORMATION_PRESENT;
  ------------------
  |  | 1084|    543|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_MA_PDU_SESSION_INFORMATION_PRESENT ((uint64_t)1<<6)
  ------------------
 3257|    543|            decoded += size;
 3258|    543|            break;
 3259|  2.66k|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_RELEASE_ASSISTANCE_INDICATION_TYPE:
  ------------------
  |  | 1096|  2.66k|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_RELEASE_ASSISTANCE_INDICATION_TYPE 0xF0
  ------------------
  |  Branch (3259:9): [True: 2.66k, False: 11.9k]
  ------------------
 3260|  2.66k|            decoded--;
 3261|  2.66k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  2.66k|    do { \
  |  |  114|  2.66k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  2.66k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 2.66k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  2.66k|        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.66k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 2.66k]
  |  |  ------------------
  ------------------
 3262|  2.66k|            size = ogs_nas_5gs_decode_release_assistance_indication(&ul_nas_transport->release_assistance_indication, pkbuf);
 3263|  2.66k|            if (size < 0) {
  ------------------
  |  Branch (3263:17): [True: 0, False: 2.66k]
  ------------------
 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.66k|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_RELEASE_ASSISTANCE_INDICATION_PRESENT;
  ------------------
  |  | 1085|  2.66k|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_RELEASE_ASSISTANCE_INDICATION_PRESENT ((uint64_t)1<<7)
  ------------------
 3269|  2.66k|            decoded += size;
 3270|  2.66k|            break;
 3271|    206|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_NON_3GPP_ACCESS_PATH_SWITCHING_INDICATION_TYPE:
  ------------------
  |  | 1097|    206|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_NON_3GPP_ACCESS_PATH_SWITCHING_INDICATION_TYPE 0x4E
  ------------------
  |  Branch (3271:9): [True: 206, False: 14.4k]
  ------------------
 3272|    206|            size = ogs_nas_5gs_decode_non_3gpp_access_path_switching_indication(&ul_nas_transport->non_3gpp_access_path_switching_indication, pkbuf);
 3273|    206|            if (size < 0) {
  ------------------
  |  Branch (3273:17): [True: 3, False: 203]
  ------------------
 3274|      3|               ogs_error("ogs_nas_5gs_decode_non_3gpp_access_path_switching_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__) 
  |  |  ------------------
  ------------------
 3275|      3|               return size;
 3276|      3|            }
 3277|       |
 3278|    203|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_NON_3GPP_ACCESS_PATH_SWITCHING_INDICATION_PRESENT;
  ------------------
  |  | 1086|    203|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_NON_3GPP_ACCESS_PATH_SWITCHING_INDICATION_PRESENT ((uint64_t)1<<8)
  ------------------
 3279|    203|            decoded += size;
 3280|    203|            break;
 3281|    208|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_ALTERNATIVE_S_NSSAI_TYPE:
  ------------------
  |  | 1098|    208|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_ALTERNATIVE_S_NSSAI_TYPE 0x5A
  ------------------
  |  Branch (3281:9): [True: 208, False: 14.4k]
  ------------------
 3282|    208|            size = ogs_nas_5gs_decode_s_nssai(&ul_nas_transport->alternative_s_nssai, pkbuf);
 3283|    208|            if (size < 0) {
  ------------------
  |  Branch (3283:17): [True: 2, False: 206]
  ------------------
 3284|      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__) 
  |  |  ------------------
  ------------------
 3285|      2|               return size;
 3286|      2|            }
 3287|       |
 3288|    206|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_ALTERNATIVE_S_NSSAI_PRESENT;
  ------------------
  |  | 1087|    206|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_ALTERNATIVE_S_NSSAI_PRESENT ((uint64_t)1<<9)
  ------------------
 3289|    206|            decoded += size;
 3290|    206|            break;
 3291|    427|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_PAYLOAD_CONTAINER_INFORMATION_TYPE:
  ------------------
  |  | 1099|    427|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_PAYLOAD_CONTAINER_INFORMATION_TYPE 0x90
  ------------------
  |  Branch (3291:9): [True: 427, False: 14.2k]
  ------------------
 3292|    427|            decoded--;
 3293|    427|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    427|    do { \
  |  |  114|    427|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    427|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 427, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    427|        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|    427|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 427]
  |  |  ------------------
  ------------------
 3294|    427|            size = ogs_nas_5gs_decode_payload_container_information(&ul_nas_transport->payload_container_information, pkbuf);
 3295|    427|            if (size < 0) {
  ------------------
  |  Branch (3295:17): [True: 0, False: 427]
  ------------------
 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|    427|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_PAYLOAD_CONTAINER_INFORMATION_PRESENT;
  ------------------
  |  | 1088|    427|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_PAYLOAD_CONTAINER_INFORMATION_PRESENT ((uint64_t)1<<10)
  ------------------
 3301|    427|            decoded += size;
 3302|    427|            break;
 3303|  7.62k|        default:
  ------------------
  |  Branch (3303:9): [True: 7.62k, False: 7.01k]
  ------------------
 3304|  7.62k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  7.62k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  7.62k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  7.62k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  7.62k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  7.62k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  7.62k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3305|  7.62k|            break;
 3306|  14.6k|        }
 3307|  14.6k|    }
 3308|       |
 3309|    276|    return decoded;
 3310|    297|}
ogs_nas_5gs_decode_dl_nas_transport:
 3313|    111|{
 3314|    111|    ogs_nas_5gs_dl_nas_transport_t *dl_nas_transport = &message->gmm.dl_nas_transport;
 3315|    111|    int decoded = 0;
 3316|    111|    int size = 0;
 3317|       |
 3318|    111|    ogs_trace("[NAS] Decode DL_NAS_TRANSPORT\n");
  ------------------
  |  |   40|    111|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    111|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    111|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    111|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    111|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    111|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3319|       |
 3320|    111|    size = ogs_nas_5gs_decode_payload_container_type(&dl_nas_transport->payload_container_type, pkbuf);
 3321|    111|    if (size < 0) {
  ------------------
  |  Branch (3321:9): [True: 0, False: 111]
  ------------------
 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|    111|    decoded += size;
 3327|       |
 3328|    111|    size = ogs_nas_5gs_decode_payload_container(&dl_nas_transport->payload_container, pkbuf);
 3329|    111|    if (size < 0) {
  ------------------
  |  Branch (3329:9): [True: 17, False: 94]
  ------------------
 3330|     17|        ogs_error("ogs_nas_5gs_decode_payload_container() 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__) 
  |  |  ------------------
  ------------------
 3331|     17|        return size;
 3332|     17|    }
 3333|       |
 3334|     94|    decoded += size;
 3335|       |
 3336|  2.83k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (3336:12): [True: 2.74k, False: 87]
  ------------------
 3337|  2.74k|        uint8_t *buffer = pkbuf->data;
 3338|  2.74k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (3338:24): [True: 591, False: 2.15k]
  ------------------
 3339|       |
 3340|  2.74k|        size = sizeof(uint8_t);
 3341|  2.74k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3341:13): [True: 0, False: 2.74k]
  ------------------
 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|  2.74k|        decoded += size;
 3346|       |
 3347|  2.74k|        switch(type) {
 3348|    202|        case OGS_NAS_5GS_DL_NAS_TRANSPORT_PDU_SESSION_ID_TYPE:
  ------------------
  |  | 1130|    202|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_PDU_SESSION_ID_TYPE 0x12
  ------------------
  |  Branch (3348:9): [True: 202, False: 2.54k]
  ------------------
 3349|    202|            size = ogs_nas_5gs_decode_pdu_session_identity_2(&dl_nas_transport->pdu_session_id, pkbuf);
 3350|    202|            if (size < 0) {
  ------------------
  |  Branch (3350:17): [True: 2, False: 200]
  ------------------
 3351|      2|               ogs_error("ogs_nas_5gs_decode_pdu_session_identity_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__) 
  |  |  ------------------
  ------------------
 3352|      2|               return size;
 3353|      2|            }
 3354|       |
 3355|    200|            dl_nas_transport->presencemask |= OGS_NAS_5GS_DL_NAS_TRANSPORT_PDU_SESSION_ID_PRESENT;
  ------------------
  |  | 1125|    200|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_PDU_SESSION_ID_PRESENT ((uint64_t)1<<0)
  ------------------
 3356|    200|            decoded += size;
 3357|    200|            break;
 3358|    211|        case OGS_NAS_5GS_DL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_TYPE:
  ------------------
  |  | 1131|    211|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_TYPE 0x24
  ------------------
  |  Branch (3358:9): [True: 211, False: 2.53k]
  ------------------
 3359|    211|            size = ogs_nas_5gs_decode_additional_information(&dl_nas_transport->additional_information, pkbuf);
 3360|    211|            if (size < 0) {
  ------------------
  |  Branch (3360:17): [True: 2, False: 209]
  ------------------
 3361|      2|               ogs_error("ogs_nas_5gs_decode_additional_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__) 
  |  |  ------------------
  ------------------
 3362|      2|               return size;
 3363|      2|            }
 3364|       |
 3365|    209|            dl_nas_transport->presencemask |= OGS_NAS_5GS_DL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_PRESENT;
  ------------------
  |  | 1126|    209|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_PRESENT ((uint64_t)1<<1)
  ------------------
 3366|    209|            decoded += size;
 3367|    209|            break;
 3368|    201|        case OGS_NAS_5GS_DL_NAS_TRANSPORT_5GMM_CAUSE_TYPE:
  ------------------
  |  | 1132|    201|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_5GMM_CAUSE_TYPE 0x58
  ------------------
  |  Branch (3368:9): [True: 201, False: 2.54k]
  ------------------
 3369|    201|            size = ogs_nas_5gs_decode_5gmm_cause(&dl_nas_transport->gmm_cause, pkbuf);
 3370|    201|            if (size < 0) {
  ------------------
  |  Branch (3370:17): [True: 1, False: 200]
  ------------------
 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|    200|            dl_nas_transport->presencemask |= OGS_NAS_5GS_DL_NAS_TRANSPORT_5GMM_CAUSE_PRESENT;
  ------------------
  |  | 1127|    200|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_5GMM_CAUSE_PRESENT ((uint64_t)1<<2)
  ------------------
 3376|    200|            decoded += size;
 3377|    200|            break;
 3378|    197|        case OGS_NAS_5GS_DL_NAS_TRANSPORT_BACK_OFF_TIMER_VALUE_TYPE:
  ------------------
  |  | 1133|    197|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_BACK_OFF_TIMER_VALUE_TYPE 0x37
  ------------------
  |  Branch (3378:9): [True: 197, False: 2.55k]
  ------------------
 3379|    197|            size = ogs_nas_5gs_decode_gprs_timer_3(&dl_nas_transport->back_off_timer_value, pkbuf);
 3380|    197|            if (size < 0) {
  ------------------
  |  Branch (3380:17): [True: 1, False: 196]
  ------------------
 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|    196|            dl_nas_transport->presencemask |= OGS_NAS_5GS_DL_NAS_TRANSPORT_BACK_OFF_TIMER_VALUE_PRESENT;
  ------------------
  |  | 1128|    196|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_BACK_OFF_TIMER_VALUE_PRESENT ((uint64_t)1<<3)
  ------------------
 3386|    196|            decoded += size;
 3387|    196|            break;
 3388|    195|        case OGS_NAS_5GS_DL_NAS_TRANSPORT_LOWER_BOUND_TIMER_VALUE_TYPE:
  ------------------
  |  | 1134|    195|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_LOWER_BOUND_TIMER_VALUE_TYPE 0x3A
  ------------------
  |  Branch (3388:9): [True: 195, False: 2.55k]
  ------------------
 3389|    195|            size = ogs_nas_5gs_decode_gprs_timer_3(&dl_nas_transport->lower_bound_timer_value, pkbuf);
 3390|    195|            if (size < 0) {
  ------------------
  |  Branch (3390:17): [True: 1, False: 194]
  ------------------
 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|    194|            dl_nas_transport->presencemask |= OGS_NAS_5GS_DL_NAS_TRANSPORT_LOWER_BOUND_TIMER_VALUE_PRESENT;
  ------------------
  |  | 1129|    194|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_LOWER_BOUND_TIMER_VALUE_PRESENT ((uint64_t)1<<4)
  ------------------
 3396|    194|            decoded += size;
 3397|    194|            break;
 3398|  1.74k|        default:
  ------------------
  |  Branch (3398:9): [True: 1.74k, False: 1.00k]
  ------------------
 3399|  1.74k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.74k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.74k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.74k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.74k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.74k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.74k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3400|  1.74k|            break;
 3401|  2.74k|        }
 3402|  2.74k|    }
 3403|       |
 3404|     87|    return decoded;
 3405|     94|}
ogs_nas_5gs_decode_pdu_session_establishment_request:
 3408|    262|{
 3409|    262|    ogs_nas_5gs_pdu_session_establishment_request_t *pdu_session_establishment_request = &message->gsm.pdu_session_establishment_request;
 3410|    262|    int decoded = 0;
 3411|    262|    int size = 0;
 3412|       |
 3413|    262|    ogs_trace("[NAS] Decode PDU_SESSION_ESTABLISHMENT_REQUEST\n");
  ------------------
  |  |   40|    262|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    262|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    262|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    262|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    262|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    262|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3414|       |
 3415|    262|    size = ogs_nas_5gs_decode_integrity_protection_maximum_data_rate(&pdu_session_establishment_request->integrity_protection_maximum_data_rate, pkbuf);
 3416|    262|    if (size < 0) {
  ------------------
  |  Branch (3416:9): [True: 2, False: 260]
  ------------------
 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|    260|    decoded += size;
 3422|       |
 3423|  12.6k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (3423:12): [True: 12.4k, False: 219]
  ------------------
 3424|  12.4k|        uint8_t *buffer = pkbuf->data;
 3425|  12.4k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (3425:24): [True: 4.61k, False: 7.82k]
  ------------------
 3426|       |
 3427|  12.4k|        size = sizeof(uint8_t);
 3428|  12.4k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3428:13): [True: 0, False: 12.4k]
  ------------------
 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|  12.4k|        decoded += size;
 3433|       |
 3434|  12.4k|        switch(type) {
 3435|    661|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_TYPE_TYPE:
  ------------------
  |  | 1172|    661|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_TYPE_TYPE 0x90
  ------------------
  |  Branch (3435:9): [True: 661, False: 11.7k]
  ------------------
 3436|    661|            decoded--;
 3437|    661|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    661|    do { \
  |  |  114|    661|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    661|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 661, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    661|        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|    661|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 661]
  |  |  ------------------
  ------------------
 3438|    661|            size = ogs_nas_5gs_decode_pdu_session_type(&pdu_session_establishment_request->pdu_session_type, pkbuf);
 3439|    661|            if (size < 0) {
  ------------------
  |  Branch (3439:17): [True: 0, False: 661]
  ------------------
 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|    661|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_TYPE_PRESENT;
  ------------------
  |  | 1154|    661|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_TYPE_PRESENT ((uint64_t)1<<0)
  ------------------
 3445|    661|            decoded += size;
 3446|    661|            break;
 3447|  1.07k|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SSC_MODE_TYPE:
  ------------------
  |  | 1173|  1.07k|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SSC_MODE_TYPE 0xA0
  ------------------
  |  Branch (3447:9): [True: 1.07k, False: 11.3k]
  ------------------
 3448|  1.07k|            decoded--;
 3449|  1.07k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.07k|    do { \
  |  |  114|  1.07k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.07k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.07k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.07k|        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.07k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.07k]
  |  |  ------------------
  ------------------
 3450|  1.07k|            size = ogs_nas_5gs_decode_ssc_mode(&pdu_session_establishment_request->ssc_mode, pkbuf);
 3451|  1.07k|            if (size < 0) {
  ------------------
  |  Branch (3451:17): [True: 0, False: 1.07k]
  ------------------
 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|  1.07k|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SSC_MODE_PRESENT;
  ------------------
  |  | 1155|  1.07k|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SSC_MODE_PRESENT ((uint64_t)1<<1)
  ------------------
 3457|  1.07k|            decoded += size;
 3458|  1.07k|            break;
 3459|    233|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_5GSM_CAPABILITY_TYPE:
  ------------------
  |  | 1174|    233|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_5GSM_CAPABILITY_TYPE 0x28
  ------------------
  |  Branch (3459:9): [True: 233, False: 12.2k]
  ------------------
 3460|    233|            size = ogs_nas_5gs_decode_5gsm_capability(&pdu_session_establishment_request->gsm_capability, pkbuf);
 3461|    233|            if (size < 0) {
  ------------------
  |  Branch (3461:17): [True: 1, False: 232]
  ------------------
 3462|      1|               ogs_error("ogs_nas_5gs_decode_5gsm_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__) 
  |  |  ------------------
  ------------------
 3463|      1|               return size;
 3464|      1|            }
 3465|       |
 3466|    232|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_5GSM_CAPABILITY_PRESENT;
  ------------------
  |  | 1156|    232|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_5GSM_CAPABILITY_PRESENT ((uint64_t)1<<2)
  ------------------
 3467|    232|            decoded += size;
 3468|    232|            break;
 3469|    203|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_TYPE:
  ------------------
  |  | 1175|    203|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_TYPE 0x55
  ------------------
  |  Branch (3469:9): [True: 203, False: 12.2k]
  ------------------
 3470|    203|            size = ogs_nas_5gs_decode_maximum_number_of_supported_packet_filters(&pdu_session_establishment_request->maximum_number_of_supported_packet_filters, pkbuf);
 3471|    203|            if (size < 0) {
  ------------------
  |  Branch (3471:17): [True: 1, False: 202]
  ------------------
 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|    202|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_PRESENT;
  ------------------
  |  | 1157|    202|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_PRESENT ((uint64_t)1<<3)
  ------------------
 3477|    202|            decoded += size;
 3478|    202|            break;
 3479|    625|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_TYPE:
  ------------------
  |  | 1176|    625|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_TYPE 0xB0
  ------------------
  |  Branch (3479:9): [True: 625, False: 11.8k]
  ------------------
 3480|    625|            decoded--;
 3481|    625|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    625|    do { \
  |  |  114|    625|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    625|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 625, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    625|        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|    625|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 625]
  |  |  ------------------
  ------------------
 3482|    625|            size = ogs_nas_5gs_decode_always_on_pdu_session_requested(&pdu_session_establishment_request->always_on_pdu_session_requested, pkbuf);
 3483|    625|            if (size < 0) {
  ------------------
  |  Branch (3483:17): [True: 0, False: 625]
  ------------------
 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|    625|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_PRESENT;
  ------------------
  |  | 1158|    625|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_PRESENT ((uint64_t)1<<4)
  ------------------
 3489|    625|            decoded += size;
 3490|    625|            break;
 3491|    303|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SM_PDU_DN_REQUEST_CONTAINER_TYPE:
  ------------------
  |  | 1177|    303|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SM_PDU_DN_REQUEST_CONTAINER_TYPE 0x39
  ------------------
  |  Branch (3491:9): [True: 303, False: 12.1k]
  ------------------
 3492|    303|            size = ogs_nas_5gs_decode_sm_pdu_dn_request_container(&pdu_session_establishment_request->sm_pdu_dn_request_container, pkbuf);
 3493|    303|            if (size < 0) {
  ------------------
  |  Branch (3493:17): [True: 4, False: 299]
  ------------------
 3494|      4|               ogs_error("ogs_nas_5gs_decode_sm_pdu_dn_request_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__) 
  |  |  ------------------
  ------------------
 3495|      4|               return size;
 3496|      4|            }
 3497|       |
 3498|    299|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SM_PDU_DN_REQUEST_CONTAINER_PRESENT;
  ------------------
  |  | 1159|    299|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SM_PDU_DN_REQUEST_CONTAINER_PRESENT ((uint64_t)1<<5)
  ------------------
 3499|    299|            decoded += size;
 3500|    299|            break;
 3501|    196|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1178|    196|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (3501:9): [True: 196, False: 12.2k]
  ------------------
 3502|    196|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_establishment_request->extended_protocol_configuration_options, pkbuf);
 3503|    196|            if (size < 0) {
  ------------------
  |  Branch (3503:17): [True: 1, False: 195]
  ------------------
 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|    195|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1160|    195|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<6)
  ------------------
 3509|    195|            decoded += size;
 3510|    195|            break;
 3511|    196|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1179|    196|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x66
  ------------------
  |  Branch (3511:9): [True: 196, False: 12.2k]
  ------------------
 3512|    196|            size = ogs_nas_5gs_decode_ip_header_compression_configuration(&pdu_session_establishment_request->ip_header_compression_configuration, pkbuf);
 3513|    196|            if (size < 0) {
  ------------------
  |  Branch (3513:17): [True: 1, False: 195]
  ------------------
 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|    195|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1161|    195|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<7)
  ------------------
 3519|    195|            decoded += size;
 3520|    195|            break;
 3521|    206|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_DS_TT_ETHERNET_PORT_MAC_ADDRESS_TYPE:
  ------------------
  |  | 1180|    206|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_DS_TT_ETHERNET_PORT_MAC_ADDRESS_TYPE 0x6E
  ------------------
  |  Branch (3521:9): [True: 206, False: 12.2k]
  ------------------
 3522|    206|            size = ogs_nas_5gs_decode_ds_tt_ethernet_port_mac_address(&pdu_session_establishment_request->ds_tt_ethernet_port_mac_address, pkbuf);
 3523|    206|            if (size < 0) {
  ------------------
  |  Branch (3523:17): [True: 4, False: 202]
  ------------------
 3524|      4|               ogs_error("ogs_nas_5gs_decode_ds_tt_ethernet_port_mac_address() 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__) 
  |  |  ------------------
  ------------------
 3525|      4|               return size;
 3526|      4|            }
 3527|       |
 3528|    202|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_DS_TT_ETHERNET_PORT_MAC_ADDRESS_PRESENT;
  ------------------
  |  | 1162|    202|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_DS_TT_ETHERNET_PORT_MAC_ADDRESS_PRESENT ((uint64_t)1<<8)
  ------------------
 3529|    202|            decoded += size;
 3530|    202|            break;
 3531|    228|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_UE_DS_TT_RESIDENCE_TIME_TYPE:
  ------------------
  |  | 1181|    228|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_UE_DS_TT_RESIDENCE_TIME_TYPE 0x6F
  ------------------
  |  Branch (3531:9): [True: 228, False: 12.2k]
  ------------------
 3532|    228|            size = ogs_nas_5gs_decode_ue_ds_tt_residence_time(&pdu_session_establishment_request->ue_ds_tt_residence_time, pkbuf);
 3533|    228|            if (size < 0) {
  ------------------
  |  Branch (3533:17): [True: 7, False: 221]
  ------------------
 3534|      7|               ogs_error("ogs_nas_5gs_decode_ue_ds_tt_residence_time() 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__) 
  |  |  ------------------
  ------------------
 3535|      7|               return size;
 3536|      7|            }
 3537|       |
 3538|    221|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_UE_DS_TT_RESIDENCE_TIME_PRESENT;
  ------------------
  |  | 1163|    221|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_UE_DS_TT_RESIDENCE_TIME_PRESENT ((uint64_t)1<<9)
  ------------------
 3539|    221|            decoded += size;
 3540|    221|            break;
 3541|    211|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE:
  ------------------
  |  | 1182|    211|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE 0x74
  ------------------
  |  Branch (3541:9): [True: 211, False: 12.2k]
  ------------------
 3542|    211|            size = ogs_nas_5gs_decode_port_management_information_container(&pdu_session_establishment_request->port_management_information_container, pkbuf);
 3543|    211|            if (size < 0) {
  ------------------
  |  Branch (3543:17): [True: 1, False: 210]
  ------------------
 3544|      1|               ogs_error("ogs_nas_5gs_decode_port_management_information_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__) 
  |  |  ------------------
  ------------------
 3545|      1|               return size;
 3546|      1|            }
 3547|       |
 3548|    210|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT;
  ------------------
  |  | 1164|    210|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT ((uint64_t)1<<10)
  ------------------
 3549|    210|            decoded += size;
 3550|    210|            break;
 3551|    216|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1183|    216|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x1F
  ------------------
  |  Branch (3551:9): [True: 216, False: 12.2k]
  ------------------
 3552|    216|            size = ogs_nas_5gs_decode_ethernet_header_compression_configuration(&pdu_session_establishment_request->ethernet_header_compression_configuration, pkbuf);
 3553|    216|            if (size < 0) {
  ------------------
  |  Branch (3553:17): [True: 1, False: 215]
  ------------------
 3554|      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__) 
  |  |  ------------------
  ------------------
 3555|      1|               return size;
 3556|      1|            }
 3557|       |
 3558|    215|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1165|    215|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<11)
  ------------------
 3559|    215|            decoded += size;
 3560|    215|            break;
 3561|    212|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SUGGESTED_INTERFACE_IDENTIFIER_TYPE:
  ------------------
  |  | 1184|    212|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SUGGESTED_INTERFACE_IDENTIFIER_TYPE 0x29
  ------------------
  |  Branch (3561:9): [True: 212, False: 12.2k]
  ------------------
 3562|    212|            size = ogs_nas_5gs_decode_pdu_address(&pdu_session_establishment_request->suggested_interface_identifier, pkbuf);
 3563|    212|            if (size < 0) {
  ------------------
  |  Branch (3563:17): [True: 5, False: 207]
  ------------------
 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|    207|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SUGGESTED_INTERFACE_IDENTIFIER_PRESENT;
  ------------------
  |  | 1166|    207|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SUGGESTED_INTERFACE_IDENTIFIER_PRESENT ((uint64_t)1<<12)
  ------------------
 3569|    207|            decoded += size;
 3570|    207|            break;
 3571|    348|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  | 1185|    348|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (3571:9): [True: 348, False: 12.0k]
  ------------------
 3572|    348|            size = ogs_nas_5gs_decode_service_level_aa_container(&pdu_session_establishment_request->service_level_aa_container, pkbuf);
 3573|    348|            if (size < 0) {
  ------------------
  |  Branch (3573:17): [True: 1, False: 347]
  ------------------
 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|    347|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  | 1167|    347|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<13)
  ------------------
 3579|    347|            decoded += size;
 3580|    347|            break;
 3581|    228|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_REQUESTED_MBS_CONTAINER_TYPE:
  ------------------
  |  | 1186|    228|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_REQUESTED_MBS_CONTAINER_TYPE 0x70
  ------------------
  |  Branch (3581:9): [True: 228, False: 12.2k]
  ------------------
 3582|    228|            size = ogs_nas_5gs_decode_requested_mbs_container(&pdu_session_establishment_request->requested_mbs_container, pkbuf);
 3583|    228|            if (size < 0) {
  ------------------
  |  Branch (3583:17): [True: 6, False: 222]
  ------------------
 3584|      6|               ogs_error("ogs_nas_5gs_decode_requested_mbs_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__) 
  |  |  ------------------
  ------------------
 3585|      6|               return size;
 3586|      6|            }
 3587|       |
 3588|    222|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_REQUESTED_MBS_CONTAINER_PRESENT;
  ------------------
  |  | 1168|    222|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_REQUESTED_MBS_CONTAINER_PRESENT ((uint64_t)1<<14)
  ------------------
 3589|    222|            decoded += size;
 3590|    222|            break;
 3591|    219|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_PAIR_ID_TYPE:
  ------------------
  |  | 1187|    219|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_PAIR_ID_TYPE 0x34
  ------------------
  |  Branch (3591:9): [True: 219, False: 12.2k]
  ------------------
 3592|    219|            size = ogs_nas_5gs_decode_pdu_session_pair_id(&pdu_session_establishment_request->pdu_session_pair_id, pkbuf);
 3593|    219|            if (size < 0) {
  ------------------
  |  Branch (3593:17): [True: 3, False: 216]
  ------------------
 3594|      3|               ogs_error("ogs_nas_5gs_decode_pdu_session_pair_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__) 
  |  |  ------------------
  ------------------
 3595|      3|               return size;
 3596|      3|            }
 3597|       |
 3598|    216|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_PAIR_ID_PRESENT;
  ------------------
  |  | 1169|    216|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_PAIR_ID_PRESENT ((uint64_t)1<<15)
  ------------------
 3599|    216|            decoded += size;
 3600|    216|            break;
 3601|    207|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_RSN_TYPE:
  ------------------
  |  | 1188|    207|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_RSN_TYPE 0x35
  ------------------
  |  Branch (3601:9): [True: 207, False: 12.2k]
  ------------------
 3602|    207|            size = ogs_nas_5gs_decode_rsn(&pdu_session_establishment_request->rsn, pkbuf);
 3603|    207|            if (size < 0) {
  ------------------
  |  Branch (3603:17): [True: 4, False: 203]
  ------------------
 3604|      4|               ogs_error("ogs_nas_5gs_decode_rsn() 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__) 
  |  |  ------------------
  ------------------
 3605|      4|               return size;
 3606|      4|            }
 3607|       |
 3608|    203|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_RSN_PRESENT;
  ------------------
  |  | 1170|    203|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_RSN_PRESENT ((uint64_t)1<<16)
  ------------------
 3609|    203|            decoded += size;
 3610|    203|            break;
 3611|    209|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_TYPE:
  ------------------
  |  | 1189|    209|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_TYPE 0x36
  ------------------
  |  Branch (3611:9): [True: 209, False: 12.2k]
  ------------------
 3612|    209|            size = ogs_nas_5gs_decode_ursp_rule_enforcement_reports(&pdu_session_establishment_request->ursp_rule_enforcement_reports, pkbuf);
 3613|    209|            if (size < 0) {
  ------------------
  |  Branch (3613:17): [True: 1, False: 208]
  ------------------
 3614|      1|               ogs_error("ogs_nas_5gs_decode_ursp_rule_enforcement_reports() 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__) 
  |  |  ------------------
  ------------------
 3615|      1|               return size;
 3616|      1|            }
 3617|       |
 3618|    208|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_PRESENT;
  ------------------
  |  | 1171|    208|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_PRESENT ((uint64_t)1<<17)
  ------------------
 3619|    208|            decoded += size;
 3620|    208|            break;
 3621|  6.66k|        default:
  ------------------
  |  Branch (3621:9): [True: 6.66k, False: 5.77k]
  ------------------
 3622|  6.66k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  6.66k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  6.66k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  6.66k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  6.66k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  6.66k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  6.66k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3623|  6.66k|            break;
 3624|  12.4k|        }
 3625|  12.4k|    }
 3626|       |
 3627|    219|    return decoded;
 3628|    260|}
ogs_nas_5gs_decode_pdu_session_establishment_accept:
 3631|    328|{
 3632|    328|    ogs_nas_5gs_pdu_session_establishment_accept_t *pdu_session_establishment_accept = &message->gsm.pdu_session_establishment_accept;
 3633|    328|    int decoded = 0;
 3634|    328|    int size = 0;
 3635|       |
 3636|    328|    ogs_trace("[NAS] Decode PDU_SESSION_ESTABLISHMENT_ACCEPT\n");
  ------------------
  |  |   40|    328|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    328|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    328|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    328|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    328|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    328|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3637|       |
 3638|    328|    size = ogs_nas_5gs_decode_pdu_session_type(&pdu_session_establishment_accept->selected_pdu_session_type, pkbuf);
 3639|    328|    if (size < 0) {
  ------------------
  |  Branch (3639:9): [True: 1, False: 327]
  ------------------
 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|    327|    decoded += size;
 3645|       |
 3646|    327|    size = ogs_nas_5gs_decode_qos_rules(&pdu_session_establishment_accept->authorized_qos_rules, pkbuf);
 3647|    327|    if (size < 0) {
  ------------------
  |  Branch (3647:9): [True: 18, False: 309]
  ------------------
 3648|     18|        ogs_error("ogs_nas_5gs_decode_qos_rules() 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__) 
  |  |  ------------------
  ------------------
 3649|     18|        return size;
 3650|     18|    }
 3651|       |
 3652|    309|    decoded += size;
 3653|       |
 3654|    309|    size = ogs_nas_5gs_decode_session_ambr(&pdu_session_establishment_accept->session_ambr, pkbuf);
 3655|    309|    if (size < 0) {
  ------------------
  |  Branch (3655:9): [True: 22, False: 287]
  ------------------
 3656|     22|        ogs_error("ogs_nas_5gs_decode_session_ambr() 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__) 
  |  |  ------------------
  ------------------
 3657|     22|        return size;
 3658|     22|    }
 3659|       |
 3660|    287|    decoded += size;
 3661|       |
 3662|  9.25k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (3662:12): [True: 8.99k, False: 260]
  ------------------
 3663|  8.99k|        uint8_t *buffer = pkbuf->data;
 3664|  8.99k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (3664:24): [True: 2.33k, False: 6.66k]
  ------------------
 3665|       |
 3666|  8.99k|        size = sizeof(uint8_t);
 3667|  8.99k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3667:13): [True: 0, False: 8.99k]
  ------------------
 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|  8.99k|        decoded += size;
 3672|       |
 3673|  8.99k|        switch(type) {
 3674|    198|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_CAUSE_TYPE:
  ------------------
  |  | 1242|    198|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_CAUSE_TYPE 0x59
  ------------------
  |  Branch (3674:9): [True: 198, False: 8.79k]
  ------------------
 3675|    198|            size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_establishment_accept->gsm_cause, pkbuf);
 3676|    198|            if (size < 0) {
  ------------------
  |  Branch (3676:17): [True: 1, False: 197]
  ------------------
 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|    197|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_CAUSE_PRESENT;
  ------------------
  |  | 1221|    197|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_CAUSE_PRESENT ((uint64_t)1<<0)
  ------------------
 3682|    197|            decoded += size;
 3683|    197|            break;
 3684|    201|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_PDU_ADDRESS_TYPE:
  ------------------
  |  | 1243|    201|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_PDU_ADDRESS_TYPE 0x29
  ------------------
  |  Branch (3684:9): [True: 201, False: 8.79k]
  ------------------
 3685|    201|            size = ogs_nas_5gs_decode_pdu_address(&pdu_session_establishment_accept->pdu_address, pkbuf);
 3686|    201|            if (size < 0) {
  ------------------
  |  Branch (3686:17): [True: 1, False: 200]
  ------------------
 3687|      1|               ogs_error("ogs_nas_5gs_decode_pdu_address() 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__) 
  |  |  ------------------
  ------------------
 3688|      1|               return size;
 3689|      1|            }
 3690|       |
 3691|    200|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_PDU_ADDRESS_PRESENT;
  ------------------
  |  | 1222|    200|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_PDU_ADDRESS_PRESENT ((uint64_t)1<<1)
  ------------------
 3692|    200|            decoded += size;
 3693|    200|            break;
 3694|    203|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RQ_TIMER_VALUE_TYPE:
  ------------------
  |  | 1244|    203|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RQ_TIMER_VALUE_TYPE 0x56
  ------------------
  |  Branch (3694:9): [True: 203, False: 8.79k]
  ------------------
 3695|    203|            size = ogs_nas_5gs_decode_gprs_timer(&pdu_session_establishment_accept->rq_timer_value, pkbuf);
 3696|    203|            if (size < 0) {
  ------------------
  |  Branch (3696:17): [True: 1, False: 202]
  ------------------
 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|    202|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RQ_TIMER_VALUE_PRESENT;
  ------------------
  |  | 1223|    202|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RQ_TIMER_VALUE_PRESENT ((uint64_t)1<<2)
  ------------------
 3702|    202|            decoded += size;
 3703|    202|            break;
 3704|    198|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_S_NSSAI_TYPE:
  ------------------
  |  | 1245|    198|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_S_NSSAI_TYPE 0x22
  ------------------
  |  Branch (3704:9): [True: 198, False: 8.79k]
  ------------------
 3705|    198|            size = ogs_nas_5gs_decode_s_nssai(&pdu_session_establishment_accept->s_nssai, pkbuf);
 3706|    198|            if (size < 0) {
  ------------------
  |  Branch (3706:17): [True: 1, False: 197]
  ------------------
 3707|      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__) 
  |  |  ------------------
  ------------------
 3708|      1|               return size;
 3709|      1|            }
 3710|       |
 3711|    197|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_S_NSSAI_PRESENT;
  ------------------
  |  | 1224|    197|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_S_NSSAI_PRESENT ((uint64_t)1<<3)
  ------------------
 3712|    197|            decoded += size;
 3713|    197|            break;
 3714|    273|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ALWAYS_ON_PDU_SESSION_INDICATION_TYPE:
  ------------------
  |  | 1246|    273|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ALWAYS_ON_PDU_SESSION_INDICATION_TYPE 0x80
  ------------------
  |  Branch (3714:9): [True: 273, False: 8.72k]
  ------------------
 3715|    273|            decoded--;
 3716|    273|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    273|    do { \
  |  |  114|    273|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    273|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 273, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    273|        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|    273|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 273]
  |  |  ------------------
  ------------------
 3717|    273|            size = ogs_nas_5gs_decode_always_on_pdu_session_indication(&pdu_session_establishment_accept->always_on_pdu_session_indication, pkbuf);
 3718|    273|            if (size < 0) {
  ------------------
  |  Branch (3718:17): [True: 0, False: 273]
  ------------------
 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|    273|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ALWAYS_ON_PDU_SESSION_INDICATION_PRESENT;
  ------------------
  |  | 1225|    273|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ALWAYS_ON_PDU_SESSION_INDICATION_PRESENT ((uint64_t)1<<4)
  ------------------
 3724|    273|            decoded += size;
 3725|    273|            break;
 3726|    264|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_MAPPED_EPS_BEARER_CONTEXTS_TYPE:
  ------------------
  |  | 1247|    264|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_MAPPED_EPS_BEARER_CONTEXTS_TYPE 0x75
  ------------------
  |  Branch (3726:9): [True: 264, False: 8.73k]
  ------------------
 3727|    264|            size = ogs_nas_5gs_decode_mapped_eps_bearer_contexts(&pdu_session_establishment_accept->mapped_eps_bearer_contexts, pkbuf);
 3728|    264|            if (size < 0) {
  ------------------
  |  Branch (3728:17): [True: 1, False: 263]
  ------------------
 3729|      1|               ogs_error("ogs_nas_5gs_decode_mapped_eps_bearer_contexts() 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__) 
  |  |  ------------------
  ------------------
 3730|      1|               return size;
 3731|      1|            }
 3732|       |
 3733|    263|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_MAPPED_EPS_BEARER_CONTEXTS_PRESENT;
  ------------------
  |  | 1226|    263|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_MAPPED_EPS_BEARER_CONTEXTS_PRESENT ((uint64_t)1<<5)
  ------------------
 3734|    263|            decoded += size;
 3735|    263|            break;
 3736|    199|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_EAP_MESSAGE_TYPE:
  ------------------
  |  | 1248|    199|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (3736:9): [True: 199, False: 8.79k]
  ------------------
 3737|    199|            size = ogs_nas_5gs_decode_eap_message(&pdu_session_establishment_accept->eap_message, pkbuf);
 3738|    199|            if (size < 0) {
  ------------------
  |  Branch (3738:17): [True: 1, False: 198]
  ------------------
 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|    198|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_EAP_MESSAGE_PRESENT;
  ------------------
  |  | 1227|    198|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_EAP_MESSAGE_PRESENT ((uint64_t)1<<6)
  ------------------
 3744|    198|            decoded += size;
 3745|    198|            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: 8.78k]
  ------------------
 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|    208|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1250|    208|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (3756:9): [True: 208, False: 8.78k]
  ------------------
 3757|    208|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_establishment_accept->extended_protocol_configuration_options, pkbuf);
 3758|    208|            if (size < 0) {
  ------------------
  |  Branch (3758:17): [True: 1, False: 207]
  ------------------
 3759|      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__) 
  |  |  ------------------
  ------------------
 3760|      1|               return size;
 3761|      1|            }
 3762|       |
 3763|    207|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1229|    207|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<8)
  ------------------
 3764|    207|            decoded += size;
 3765|    207|            break;
 3766|    213|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_DNN_TYPE:
  ------------------
  |  | 1251|    213|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_DNN_TYPE 0x25
  ------------------
  |  Branch (3766:9): [True: 213, False: 8.78k]
  ------------------
 3767|    213|            size = ogs_nas_5gs_decode_dnn(&pdu_session_establishment_accept->dnn, pkbuf);
 3768|    213|            if (size < 0) {
  ------------------
  |  Branch (3768:17): [True: 1, False: 212]
  ------------------
 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|    212|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_DNN_PRESENT;
  ------------------
  |  | 1230|    212|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_DNN_PRESENT ((uint64_t)1<<9)
  ------------------
 3774|    212|            decoded += size;
 3775|    212|            break;
 3776|    218|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_NETWORK_FEATURE_SUPPORT_TYPE:
  ------------------
  |  | 1252|    218|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_NETWORK_FEATURE_SUPPORT_TYPE 0x17
  ------------------
  |  Branch (3776:9): [True: 218, False: 8.77k]
  ------------------
 3777|    218|            size = ogs_nas_5gs_decode_5gsm_network_feature_support(&pdu_session_establishment_accept->gsm_network_feature_support, pkbuf);
 3778|    218|            if (size < 0) {
  ------------------
  |  Branch (3778:17): [True: 3, False: 215]
  ------------------
 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|    215|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_NETWORK_FEATURE_SUPPORT_PRESENT;
  ------------------
  |  | 1231|    215|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_NETWORK_FEATURE_SUPPORT_PRESENT ((uint64_t)1<<10)
  ------------------
 3784|    215|            decoded += size;
 3785|    215|            break;
 3786|    212|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVING_PLMN_RATE_CONTROL_TYPE:
  ------------------
  |  | 1253|    212|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVING_PLMN_RATE_CONTROL_TYPE 0x18
  ------------------
  |  Branch (3786:9): [True: 212, False: 8.78k]
  ------------------
 3787|    212|            size = ogs_nas_5gs_decode_serving_plmn_rate_control(&pdu_session_establishment_accept->serving_plmn_rate_control, pkbuf);
 3788|    212|            if (size < 0) {
  ------------------
  |  Branch (3788:17): [True: 1, False: 211]
  ------------------
 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|    211|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVING_PLMN_RATE_CONTROL_PRESENT;
  ------------------
  |  | 1232|    211|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVING_PLMN_RATE_CONTROL_PRESENT ((uint64_t)1<<11)
  ------------------
 3794|    211|            decoded += size;
 3795|    211|            break;
 3796|    224|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ATSSS_CONTAINER_TYPE:
  ------------------
  |  | 1254|    224|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ATSSS_CONTAINER_TYPE 0x77
  ------------------
  |  Branch (3796:9): [True: 224, False: 8.77k]
  ------------------
 3797|    224|            size = ogs_nas_5gs_decode_atsss_container(&pdu_session_establishment_accept->atsss_container, pkbuf);
 3798|    224|            if (size < 0) {
  ------------------
  |  Branch (3798:17): [True: 2, False: 222]
  ------------------
 3799|      2|               ogs_error("ogs_nas_5gs_decode_atsss_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__) 
  |  |  ------------------
  ------------------
 3800|      2|               return size;
 3801|      2|            }
 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|    364|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_CONTROL_PLANE_ONLY_INDICATION_TYPE:
  ------------------
  |  | 1255|    364|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_CONTROL_PLANE_ONLY_INDICATION_TYPE 0xC0
  ------------------
  |  Branch (3806:9): [True: 364, False: 8.63k]
  ------------------
 3807|    364|            decoded--;
 3808|    364|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    364|    do { \
  |  |  114|    364|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    364|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 364, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    364|        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|    364|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 364]
  |  |  ------------------
  ------------------
 3809|    364|            size = ogs_nas_5gs_decode_control_plane_only_indication(&pdu_session_establishment_accept->control_plane_only_indication, pkbuf);
 3810|    364|            if (size < 0) {
  ------------------
  |  Branch (3810:17): [True: 0, False: 364]
  ------------------
 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|    364|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_CONTROL_PLANE_ONLY_INDICATION_PRESENT;
  ------------------
  |  | 1234|    364|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_CONTROL_PLANE_ONLY_INDICATION_PRESENT ((uint64_t)1<<13)
  ------------------
 3816|    364|            decoded += size;
 3817|    364|            break;
 3818|    216|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1256|    216|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x66
  ------------------
  |  Branch (3818:9): [True: 216, False: 8.77k]
  ------------------
 3819|    216|            size = ogs_nas_5gs_decode_ip_header_compression_configuration(&pdu_session_establishment_accept->ip_header_compression_configuration, pkbuf);
 3820|    216|            if (size < 0) {
  ------------------
  |  Branch (3820:17): [True: 1, False: 215]
  ------------------
 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|    215|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1235|    215|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<14)
  ------------------
 3826|    215|            decoded += size;
 3827|    215|            break;
 3828|    200|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1257|    200|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x1F
  ------------------
  |  Branch (3828:9): [True: 200, False: 8.79k]
  ------------------
 3829|    200|            size = ogs_nas_5gs_decode_ethernet_header_compression_configuration(&pdu_session_establishment_accept->ethernet_header_compression_configuration, pkbuf);
 3830|    200|            if (size < 0) {
  ------------------
  |  Branch (3830:17): [True: 2, False: 198]
  ------------------
 3831|      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__) 
  |  |  ------------------
  ------------------
 3832|      2|               return size;
 3833|      2|            }
 3834|       |
 3835|    198|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1236|    198|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<15)
  ------------------
 3836|    198|            decoded += size;
 3837|    198|            break;
 3838|    218|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  | 1258|    218|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (3838:9): [True: 218, False: 8.77k]
  ------------------
 3839|    218|            size = ogs_nas_5gs_decode_service_level_aa_container(&pdu_session_establishment_accept->service_level_aa_container, pkbuf);
 3840|    218|            if (size < 0) {
  ------------------
  |  Branch (3840:17): [True: 1, False: 217]
  ------------------
 3841|      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__) 
  |  |  ------------------
  ------------------
 3842|      1|               return size;
 3843|      1|            }
 3844|       |
 3845|    217|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  | 1237|    217|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<16)
  ------------------
 3846|    217|            decoded += size;
 3847|    217|            break;
 3848|    206|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RECEIVED_MBS_CONTAINER_TYPE:
  ------------------
  |  | 1259|    206|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RECEIVED_MBS_CONTAINER_TYPE 0x71
  ------------------
  |  Branch (3848:9): [True: 206, False: 8.78k]
  ------------------
 3849|    206|            size = ogs_nas_5gs_decode_received_mbs_container(&pdu_session_establishment_accept->received_mbs_container, pkbuf);
 3850|    206|            if (size < 0) {
  ------------------
  |  Branch (3850:17): [True: 1, False: 205]
  ------------------
 3851|      1|               ogs_error("ogs_nas_5gs_decode_received_mbs_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__) 
  |  |  ------------------
  ------------------
 3852|      1|               return size;
 3853|      1|            }
 3854|       |
 3855|    205|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RECEIVED_MBS_CONTAINER_PRESENT;
  ------------------
  |  | 1238|    205|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RECEIVED_MBS_CONTAINER_PRESENT ((uint64_t)1<<17)
  ------------------
 3856|    205|            decoded += size;
 3857|    205|            break;
 3858|    204|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_N3QAI_TYPE:
  ------------------
  |  | 1260|    204|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_N3QAI_TYPE 0x70
  ------------------
  |  Branch (3858:9): [True: 204, False: 8.79k]
  ------------------
 3859|    204|            size = ogs_nas_5gs_decode_n3qai(&pdu_session_establishment_accept->n3qai, pkbuf);
 3860|    204|            if (size < 0) {
  ------------------
  |  Branch (3860:17): [True: 2, False: 202]
  ------------------
 3861|      2|               ogs_error("ogs_nas_5gs_decode_n3qai() 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__) 
  |  |  ------------------
  ------------------
 3862|      2|               return size;
 3863|      2|            }
 3864|       |
 3865|    202|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_N3QAI_PRESENT;
  ------------------
  |  | 1239|    202|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_N3QAI_PRESENT ((uint64_t)1<<18)
  ------------------
 3866|    202|            decoded += size;
 3867|    202|            break;
 3868|    215|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_PROTOCOL_DESCRIPTION_TYPE:
  ------------------
  |  | 1261|    215|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_PROTOCOL_DESCRIPTION_TYPE 0x73
  ------------------
  |  Branch (3868:9): [True: 215, False: 8.78k]
  ------------------
 3869|    215|            size = ogs_nas_5gs_decode_protocol_description(&pdu_session_establishment_accept->protocol_description, pkbuf);
 3870|    215|            if (size < 0) {
  ------------------
  |  Branch (3870:17): [True: 4, False: 211]
  ------------------
 3871|      4|               ogs_error("ogs_nas_5gs_decode_protocol_description() 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__) 
  |  |  ------------------
  ------------------
 3872|      4|               return size;
 3873|      4|            }
 3874|       |
 3875|    211|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_PROTOCOL_DESCRIPTION_PRESENT;
  ------------------
  |  | 1240|    211|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_PROTOCOL_DESCRIPTION_PRESENT ((uint64_t)1<<19)
  ------------------
 3876|    211|            decoded += size;
 3877|    211|            break;
 3878|    195|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ECN_MARKING_FOR_L4S_INDICATION_TYPE:
  ------------------
  |  | 1262|    195|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ECN_MARKING_FOR_L4S_INDICATION_TYPE 0x38
  ------------------
  |  Branch (3878:9): [True: 195, False: 8.80k]
  ------------------
 3879|    195|            size = ogs_nas_5gs_decode_ecn_marking_for_l4s_indication(&pdu_session_establishment_accept->ecn_marking_for_l4s_indication, pkbuf);
 3880|    195|            if (size < 0) {
  ------------------
  |  Branch (3880:17): [True: 1, False: 194]
  ------------------
 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|    194|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ECN_MARKING_FOR_L4S_INDICATION_PRESENT;
  ------------------
  |  | 1241|    194|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ECN_MARKING_FOR_L4S_INDICATION_PRESENT ((uint64_t)1<<20)
  ------------------
 3886|    194|            decoded += size;
 3887|    194|            break;
 3888|  4.36k|        default:
  ------------------
  |  Branch (3888:9): [True: 4.36k, False: 4.63k]
  ------------------
 3889|  4.36k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  4.36k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  4.36k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  4.36k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  4.36k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  4.36k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  4.36k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3890|  4.36k|            break;
 3891|  8.99k|        }
 3892|  8.99k|    }
 3893|       |
 3894|    260|    return decoded;
 3895|    287|}
ogs_nas_5gs_decode_pdu_session_establishment_reject:
 3898|    138|{
 3899|    138|    ogs_nas_5gs_pdu_session_establishment_reject_t *pdu_session_establishment_reject = &message->gsm.pdu_session_establishment_reject;
 3900|    138|    int decoded = 0;
 3901|    138|    int size = 0;
 3902|       |
 3903|    138|    ogs_trace("[NAS] Decode PDU_SESSION_ESTABLISHMENT_REJECT\n");
  ------------------
  |  |   40|    138|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    138|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    138|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    138|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    138|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    138|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3904|       |
 3905|    138|    size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_establishment_reject->gsm_cause, pkbuf);
 3906|    138|    if (size < 0) {
  ------------------
  |  Branch (3906:9): [True: 1, False: 137]
  ------------------
 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|    137|    decoded += size;
 3912|       |
 3913|  4.71k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (3913:12): [True: 4.59k, False: 115]
  ------------------
 3914|  4.59k|        uint8_t *buffer = pkbuf->data;
 3915|  4.59k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (3915:24): [True: 1.33k, False: 3.26k]
  ------------------
 3916|       |
 3917|  4.59k|        size = sizeof(uint8_t);
 3918|  4.59k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3918:13): [True: 0, False: 4.59k]
  ------------------
 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|  4.59k|        decoded += size;
 3923|       |
 3924|  4.59k|        switch(type) {
 3925|    211|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_BACK_OFF_TIMER_VALUE_TYPE:
  ------------------
  |  | 1307|    211|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_BACK_OFF_TIMER_VALUE_TYPE 0x37
  ------------------
  |  Branch (3925:9): [True: 211, False: 4.38k]
  ------------------
 3926|    211|            size = ogs_nas_5gs_decode_gprs_timer_3(&pdu_session_establishment_reject->back_off_timer_value, pkbuf);
 3927|    211|            if (size < 0) {
  ------------------
  |  Branch (3927:17): [True: 1, False: 210]
  ------------------
 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|    210|            pdu_session_establishment_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_BACK_OFF_TIMER_VALUE_PRESENT;
  ------------------
  |  | 1299|    210|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_BACK_OFF_TIMER_VALUE_PRESENT ((uint64_t)1<<0)
  ------------------
 3933|    210|            decoded += size;
 3934|    210|            break;
 3935|    886|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ALLOWED_SSC_MODE_TYPE:
  ------------------
  |  | 1308|    886|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ALLOWED_SSC_MODE_TYPE 0xF0
  ------------------
  |  Branch (3935:9): [True: 886, False: 3.71k]
  ------------------
 3936|    886|            decoded--;
 3937|    886|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    886|    do { \
  |  |  114|    886|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    886|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 886, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    886|        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|    886|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 886]
  |  |  ------------------
  ------------------
 3938|    886|            size = ogs_nas_5gs_decode_allowed_ssc_mode(&pdu_session_establishment_reject->allowed_ssc_mode, pkbuf);
 3939|    886|            if (size < 0) {
  ------------------
  |  Branch (3939:17): [True: 0, False: 886]
  ------------------
 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|    886|            pdu_session_establishment_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ALLOWED_SSC_MODE_PRESENT;
  ------------------
  |  | 1300|    886|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ALLOWED_SSC_MODE_PRESENT ((uint64_t)1<<1)
  ------------------
 3945|    886|            decoded += size;
 3946|    886|            break;
 3947|    197|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_EAP_MESSAGE_TYPE:
  ------------------
  |  | 1309|    197|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (3947:9): [True: 197, False: 4.40k]
  ------------------
 3948|    197|            size = ogs_nas_5gs_decode_eap_message(&pdu_session_establishment_reject->eap_message, pkbuf);
 3949|    197|            if (size < 0) {
  ------------------
  |  Branch (3949:17): [True: 3, False: 194]
  ------------------
 3950|      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__) 
  |  |  ------------------
  ------------------
 3951|      3|               return size;
 3952|      3|            }
 3953|       |
 3954|    194|            pdu_session_establishment_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_EAP_MESSAGE_PRESENT;
  ------------------
  |  | 1301|    194|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_EAP_MESSAGE_PRESENT ((uint64_t)1<<2)
  ------------------
 3955|    194|            decoded += size;
 3956|    194|            break;
 3957|    201|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_TYPE:
  ------------------
  |  | 1310|    201|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_TYPE 0x61
  ------------------
  |  Branch (3957:9): [True: 201, False: 4.39k]
  ------------------
 3958|    201|            size = ogs_nas_5gs_decode_5gsm_congestion_re_attempt_indicator(&pdu_session_establishment_reject->gsm_congestion_re_attempt_indicator, pkbuf);
 3959|    201|            if (size < 0) {
  ------------------
  |  Branch (3959:17): [True: 4, False: 197]
  ------------------
 3960|      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__) 
  |  |  ------------------
  ------------------
 3961|      4|               return size;
 3962|      4|            }
 3963|       |
 3964|    197|            pdu_session_establishment_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_PRESENT;
  ------------------
  |  | 1302|    197|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_PRESENT ((uint64_t)1<<3)
  ------------------
 3965|    197|            decoded += size;
 3966|    197|            break;
 3967|    202|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1311|    202|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (3967:9): [True: 202, False: 4.39k]
  ------------------
 3968|    202|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_establishment_reject->extended_protocol_configuration_options, pkbuf);
 3969|    202|            if (size < 0) {
  ------------------
  |  Branch (3969:17): [True: 2, False: 200]
  ------------------
 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|    200|            pdu_session_establishment_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1303|    200|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<4)
  ------------------
 3975|    200|            decoded += size;
 3976|    200|            break;
 3977|    212|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_RE_ATTEMPT_INDICATOR_TYPE:
  ------------------
  |  | 1312|    212|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_RE_ATTEMPT_INDICATOR_TYPE 0x1D
  ------------------
  |  Branch (3977:9): [True: 212, False: 4.38k]
  ------------------
 3978|    212|            size = ogs_nas_5gs_decode_re_attempt_indicator(&pdu_session_establishment_reject->re_attempt_indicator, pkbuf);
 3979|    212|            if (size < 0) {
  ------------------
  |  Branch (3979:17): [True: 3, False: 209]
  ------------------
 3980|      3|               ogs_error("ogs_nas_5gs_decode_re_attempt_indicator() 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__) 
  |  |  ------------------
  ------------------
 3981|      3|               return size;
 3982|      3|            }
 3983|       |
 3984|    209|            pdu_session_establishment_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_RE_ATTEMPT_INDICATOR_PRESENT;
  ------------------
  |  | 1304|    209|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_RE_ATTEMPT_INDICATOR_PRESENT ((uint64_t)1<<5)
  ------------------
 3985|    209|            decoded += size;
 3986|    209|            break;
 3987|    207|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  | 1313|    207|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (3987:9): [True: 207, False: 4.39k]
  ------------------
 3988|    207|            size = ogs_nas_5gs_decode_service_level_aa_container(&pdu_session_establishment_reject->service_level_aa_container, pkbuf);
 3989|    207|            if (size < 0) {
  ------------------
  |  Branch (3989:17): [True: 2, False: 205]
  ------------------
 3990|      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__) 
  |  |  ------------------
  ------------------
 3991|      2|               return size;
 3992|      2|            }
 3993|       |
 3994|    205|            pdu_session_establishment_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  | 1305|    205|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<6)
  ------------------
 3995|    205|            decoded += size;
 3996|    205|            break;
 3997|    282|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ATSSS_CONTAINER_TYPE:
  ------------------
  |  | 1314|    282|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ATSSS_CONTAINER_TYPE 0x77
  ------------------
  |  Branch (3997:9): [True: 282, False: 4.31k]
  ------------------
 3998|    282|            size = ogs_nas_5gs_decode_atsss_container(&pdu_session_establishment_reject->atsss_container, pkbuf);
 3999|    282|            if (size < 0) {
  ------------------
  |  Branch (3999:17): [True: 7, False: 275]
  ------------------
 4000|      7|               ogs_error("ogs_nas_5gs_decode_atsss_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__) 
  |  |  ------------------
  ------------------
 4001|      7|               return size;
 4002|      7|            }
 4003|       |
 4004|    275|            pdu_session_establishment_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ATSSS_CONTAINER_PRESENT;
  ------------------
  |  | 1306|    275|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ATSSS_CONTAINER_PRESENT ((uint64_t)1<<7)
  ------------------
 4005|    275|            decoded += size;
 4006|    275|            break;
 4007|  2.20k|        default:
  ------------------
  |  Branch (4007:9): [True: 2.20k, False: 2.39k]
  ------------------
 4008|  2.20k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.20k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.20k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.20k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.20k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.20k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.20k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4009|  2.20k|            break;
 4010|  4.59k|        }
 4011|  4.59k|    }
 4012|       |
 4013|    115|    return decoded;
 4014|    137|}
ogs_nas_5gs_decode_pdu_session_authentication_command:
 4017|     59|{
 4018|     59|    ogs_nas_5gs_pdu_session_authentication_command_t *pdu_session_authentication_command = &message->gsm.pdu_session_authentication_command;
 4019|     59|    int decoded = 0;
 4020|     59|    int size = 0;
 4021|       |
 4022|     59|    ogs_trace("[NAS] Decode PDU_SESSION_AUTHENTICATION_COMMAND\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__) 
  |  |  ------------------
  ------------------
 4023|       |
 4024|     59|    size = ogs_nas_5gs_decode_eap_message(&pdu_session_authentication_command->eap_message, pkbuf);
 4025|     59|    if (size < 0) {
  ------------------
  |  Branch (4025:9): [True: 7, False: 52]
  ------------------
 4026|      7|        ogs_error("ogs_nas_5gs_decode_eap_message() 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__) 
  |  |  ------------------
  ------------------
 4027|      7|        return size;
 4028|      7|    }
 4029|       |
 4030|     52|    decoded += size;
 4031|       |
 4032|  1.41k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4032:12): [True: 1.36k, False: 49]
  ------------------
 4033|  1.36k|        uint8_t *buffer = pkbuf->data;
 4034|  1.36k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4034:24): [True: 545, False: 824]
  ------------------
 4035|       |
 4036|  1.36k|        size = sizeof(uint8_t);
 4037|  1.36k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4037:13): [True: 0, False: 1.36k]
  ------------------
 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.36k|        decoded += size;
 4042|       |
 4043|  1.36k|        switch(type) {
 4044|    204|        case OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1337|    204|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4044:9): [True: 204, False: 1.16k]
  ------------------
 4045|    204|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_authentication_command->extended_protocol_configuration_options, pkbuf);
 4046|    204|            if (size < 0) {
  ------------------
  |  Branch (4046:17): [True: 3, False: 201]
  ------------------
 4047|      3|               ogs_error("ogs_nas_5gs_decode_extended_protocol_configuration_options() 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__) 
  |  |  ------------------
  ------------------
 4048|      3|               return size;
 4049|      3|            }
 4050|       |
 4051|    201|            pdu_session_authentication_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1336|    201|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<0)
  ------------------
 4052|    201|            decoded += size;
 4053|    201|            break;
 4054|  1.16k|        default:
  ------------------
  |  Branch (4054:9): [True: 1.16k, False: 204]
  ------------------
 4055|  1.16k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.16k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 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__) 
  |  |  ------------------
  ------------------
 4056|  1.16k|            break;
 4057|  1.36k|        }
 4058|  1.36k|    }
 4059|       |
 4060|     49|    return decoded;
 4061|     52|}
ogs_nas_5gs_decode_pdu_session_authentication_complete:
 4064|     65|{
 4065|     65|    ogs_nas_5gs_pdu_session_authentication_complete_t *pdu_session_authentication_complete = &message->gsm.pdu_session_authentication_complete;
 4066|     65|    int decoded = 0;
 4067|     65|    int size = 0;
 4068|       |
 4069|     65|    ogs_trace("[NAS] Decode PDU_SESSION_AUTHENTICATION_COMPLETE\n");
  ------------------
  |  |   40|     65|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     65|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     65|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     65|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     65|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     65|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4070|       |
 4071|     65|    size = ogs_nas_5gs_decode_eap_message(&pdu_session_authentication_complete->eap_message, pkbuf);
 4072|     65|    if (size < 0) {
  ------------------
  |  Branch (4072:9): [True: 4, False: 61]
  ------------------
 4073|      4|        ogs_error("ogs_nas_5gs_decode_eap_message() 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__) 
  |  |  ------------------
  ------------------
 4074|      4|        return size;
 4075|      4|    }
 4076|       |
 4077|     61|    decoded += size;
 4078|       |
 4079|  3.15k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4079:12): [True: 3.09k, False: 60]
  ------------------
 4080|  3.09k|        uint8_t *buffer = pkbuf->data;
 4081|  3.09k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4081:24): [True: 1.43k, False: 1.65k]
  ------------------
 4082|       |
 4083|  3.09k|        size = sizeof(uint8_t);
 4084|  3.09k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4084:13): [True: 0, False: 3.09k]
  ------------------
 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|  3.09k|        decoded += size;
 4089|       |
 4090|  3.09k|        switch(type) {
 4091|    212|        case OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1353|    212|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4091:9): [True: 212, False: 2.87k]
  ------------------
 4092|    212|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_authentication_complete->extended_protocol_configuration_options, pkbuf);
 4093|    212|            if (size < 0) {
  ------------------
  |  Branch (4093:17): [True: 1, False: 211]
  ------------------
 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|    211|            pdu_session_authentication_complete->presencemask |= OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1352|    211|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<0)
  ------------------
 4099|    211|            decoded += size;
 4100|    211|            break;
 4101|  2.87k|        default:
  ------------------
  |  Branch (4101:9): [True: 2.87k, False: 212]
  ------------------
 4102|  2.87k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.87k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 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__) 
  |  |  ------------------
  ------------------
 4103|  2.87k|            break;
 4104|  3.09k|        }
 4105|  3.09k|    }
 4106|       |
 4107|     60|    return decoded;
 4108|     61|}
ogs_nas_5gs_decode_pdu_session_authentication_result:
 4111|     55|{
 4112|     55|    ogs_nas_5gs_pdu_session_authentication_result_t *pdu_session_authentication_result = &message->gsm.pdu_session_authentication_result;
 4113|     55|    int decoded = 0;
 4114|     55|    int size = 0;
 4115|       |
 4116|     55|    ogs_trace("[NAS] Decode PDU_SESSION_AUTHENTICATION_RESULT\n");
  ------------------
  |  |   40|     55|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     55|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     55|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     55|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     55|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     55|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4117|       |
 4118|  1.78k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4118:12): [True: 1.73k, False: 50]
  ------------------
 4119|  1.73k|        uint8_t *buffer = pkbuf->data;
 4120|  1.73k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4120:24): [True: 445, False: 1.29k]
  ------------------
 4121|       |
 4122|  1.73k|        size = sizeof(uint8_t);
 4123|  1.73k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4123:13): [True: 0, False: 1.73k]
  ------------------
 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.73k|        decoded += size;
 4128|       |
 4129|  1.73k|        switch(type) {
 4130|    198|        case OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EAP_MESSAGE_TYPE:
  ------------------
  |  | 1370|    198|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (4130:9): [True: 198, False: 1.54k]
  ------------------
 4131|    198|            size = ogs_nas_5gs_decode_eap_message(&pdu_session_authentication_result->eap_message, pkbuf);
 4132|    198|            if (size < 0) {
  ------------------
  |  Branch (4132:17): [True: 1, False: 197]
  ------------------
 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|    197|            pdu_session_authentication_result->presencemask |= OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EAP_MESSAGE_PRESENT;
  ------------------
  |  | 1368|    197|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EAP_MESSAGE_PRESENT ((uint64_t)1<<0)
  ------------------
 4138|    197|            decoded += size;
 4139|    197|            break;
 4140|    215|        case OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1371|    215|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4140:9): [True: 215, False: 1.52k]
  ------------------
 4141|    215|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_authentication_result->extended_protocol_configuration_options, pkbuf);
 4142|    215|            if (size < 0) {
  ------------------
  |  Branch (4142:17): [True: 4, False: 211]
  ------------------
 4143|      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__) 
  |  |  ------------------
  ------------------
 4144|      4|               return size;
 4145|      4|            }
 4146|       |
 4147|    211|            pdu_session_authentication_result->presencemask |= OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1369|    211|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<1)
  ------------------
 4148|    211|            decoded += size;
 4149|    211|            break;
 4150|  1.32k|        default:
  ------------------
  |  Branch (4150:9): [True: 1.32k, False: 413]
  ------------------
 4151|  1.32k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.32k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 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__) 
  |  |  ------------------
  ------------------
 4152|  1.32k|            break;
 4153|  1.73k|        }
 4154|  1.73k|    }
 4155|       |
 4156|     50|    return decoded;
 4157|     55|}
ogs_nas_5gs_decode_pdu_session_modification_request:
 4160|    423|{
 4161|    423|    ogs_nas_5gs_pdu_session_modification_request_t *pdu_session_modification_request = &message->gsm.pdu_session_modification_request;
 4162|    423|    int decoded = 0;
 4163|    423|    int size = 0;
 4164|       |
 4165|    423|    ogs_trace("[NAS] Decode PDU_SESSION_MODIFICATION_REQUEST\n");
  ------------------
  |  |   40|    423|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    423|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    423|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    423|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    423|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    423|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4166|       |
 4167|  11.4k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4167:12): [True: 11.1k, False: 249]
  ------------------
 4168|  11.1k|        uint8_t *buffer = pkbuf->data;
 4169|  11.1k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4169:24): [True: 2.12k, False: 9.04k]
  ------------------
 4170|       |
 4171|  11.1k|        size = sizeof(uint8_t);
 4172|  11.1k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4172:13): [True: 0, False: 11.1k]
  ------------------
 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|  11.1k|        decoded += size;
 4177|       |
 4178|  11.1k|        switch(type) {
 4179|    233|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAPABILITY_TYPE:
  ------------------
  |  | 1402|    233|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAPABILITY_TYPE 0x28
  ------------------
  |  Branch (4179:9): [True: 233, False: 10.9k]
  ------------------
 4180|    233|            size = ogs_nas_5gs_decode_5gsm_capability(&pdu_session_modification_request->gsm_capability, pkbuf);
 4181|    233|            if (size < 0) {
  ------------------
  |  Branch (4181:17): [True: 6, False: 227]
  ------------------
 4182|      6|               ogs_error("ogs_nas_5gs_decode_5gsm_capability() 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__) 
  |  |  ------------------
  ------------------
 4183|      6|               return size;
 4184|      6|            }
 4185|       |
 4186|    227|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAPABILITY_PRESENT;
  ------------------
  |  | 1385|    227|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAPABILITY_PRESENT ((uint64_t)1<<0)
  ------------------
 4187|    227|            decoded += size;
 4188|    227|            break;
 4189|    205|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAUSE_TYPE:
  ------------------
  |  | 1403|    205|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAUSE_TYPE 0x59
  ------------------
  |  Branch (4189:9): [True: 205, False: 10.9k]
  ------------------
 4190|    205|            size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_modification_request->gsm_cause, pkbuf);
 4191|    205|            if (size < 0) {
  ------------------
  |  Branch (4191:17): [True: 2, False: 203]
  ------------------
 4192|      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__) 
  |  |  ------------------
  ------------------
 4193|      2|               return size;
 4194|      2|            }
 4195|       |
 4196|    203|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAUSE_PRESENT;
  ------------------
  |  | 1386|    203|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAUSE_PRESENT ((uint64_t)1<<1)
  ------------------
 4197|    203|            decoded += size;
 4198|    203|            break;
 4199|    221|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_TYPE:
  ------------------
  |  | 1404|    221|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_TYPE 0x55
  ------------------
  |  Branch (4199:9): [True: 221, False: 10.9k]
  ------------------
 4200|    221|            size = ogs_nas_5gs_decode_maximum_number_of_supported_packet_filters(&pdu_session_modification_request->maximum_number_of_supported_packet_filters, pkbuf);
 4201|    221|            if (size < 0) {
  ------------------
  |  Branch (4201:17): [True: 5, False: 216]
  ------------------
 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|    216|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_PRESENT;
  ------------------
  |  | 1387|    216|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_PRESENT ((uint64_t)1<<2)
  ------------------
 4207|    216|            decoded += size;
 4208|    216|            break;
 4209|    628|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_TYPE:
  ------------------
  |  | 1405|    628|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_TYPE 0xB0
  ------------------
  |  Branch (4209:9): [True: 628, False: 10.5k]
  ------------------
 4210|    628|            decoded--;
 4211|    628|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    628|    do { \
  |  |  114|    628|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    628|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 628, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    628|        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|    628|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 628]
  |  |  ------------------
  ------------------
 4212|    628|            size = ogs_nas_5gs_decode_always_on_pdu_session_requested(&pdu_session_modification_request->always_on_pdu_session_requested, pkbuf);
 4213|    628|            if (size < 0) {
  ------------------
  |  Branch (4213:17): [True: 0, False: 628]
  ------------------
 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|    628|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_PRESENT;
  ------------------
  |  | 1388|    628|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_PRESENT ((uint64_t)1<<3)
  ------------------
 4219|    628|            decoded += size;
 4220|    628|            break;
 4221|    261|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_INTEGRITY_PROTECTION_MAXIMUM_DATA_RATE_TYPE:
  ------------------
  |  | 1406|    261|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_INTEGRITY_PROTECTION_MAXIMUM_DATA_RATE_TYPE 0x13
  ------------------
  |  Branch (4221:9): [True: 261, False: 10.9k]
  ------------------
 4222|    261|            size = ogs_nas_5gs_decode_integrity_protection_maximum_data_rate(&pdu_session_modification_request->integrity_protection_maximum_data_rate, pkbuf);
 4223|    261|            if (size < 0) {
  ------------------
  |  Branch (4223:17): [True: 4, False: 257]
  ------------------
 4224|      4|               ogs_error("ogs_nas_5gs_decode_integrity_protection_maximum_data_rate() 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__) 
  |  |  ------------------
  ------------------
 4225|      4|               return size;
 4226|      4|            }
 4227|       |
 4228|    257|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_INTEGRITY_PROTECTION_MAXIMUM_DATA_RATE_PRESENT;
  ------------------
  |  | 1389|    257|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_INTEGRITY_PROTECTION_MAXIMUM_DATA_RATE_PRESENT ((uint64_t)1<<4)
  ------------------
 4229|    257|            decoded += size;
 4230|    257|            break;
 4231|    229|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_RULES_TYPE:
  ------------------
  |  | 1407|    229|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_RULES_TYPE 0x7A
  ------------------
  |  Branch (4231:9): [True: 229, False: 10.9k]
  ------------------
 4232|    229|            size = ogs_nas_5gs_decode_qos_rules(&pdu_session_modification_request->requested_qos_rules, pkbuf);
 4233|    229|            if (size < 0) {
  ------------------
  |  Branch (4233:17): [True: 8, False: 221]
  ------------------
 4234|      8|               ogs_error("ogs_nas_5gs_decode_qos_rules() 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__) 
  |  |  ------------------
  ------------------
 4235|      8|               return size;
 4236|      8|            }
 4237|       |
 4238|    221|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_RULES_PRESENT;
  ------------------
  |  | 1390|    221|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_RULES_PRESENT ((uint64_t)1<<5)
  ------------------
 4239|    221|            decoded += size;
 4240|    221|            break;
 4241|    238|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_FLOW_DESCRIPTIONS_TYPE:
  ------------------
  |  | 1408|    238|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_FLOW_DESCRIPTIONS_TYPE 0x79
  ------------------
  |  Branch (4241:9): [True: 238, False: 10.9k]
  ------------------
 4242|    238|            size = ogs_nas_5gs_decode_qos_flow_descriptions(&pdu_session_modification_request->requested_qos_flow_descriptions, pkbuf);
 4243|    238|            if (size < 0) {
  ------------------
  |  Branch (4243:17): [True: 19, False: 219]
  ------------------
 4244|     19|               ogs_error("ogs_nas_5gs_decode_qos_flow_descriptions() 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__) 
  |  |  ------------------
  ------------------
 4245|     19|               return size;
 4246|     19|            }
 4247|       |
 4248|    219|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_FLOW_DESCRIPTIONS_PRESENT;
  ------------------
  |  | 1391|    219|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_FLOW_DESCRIPTIONS_PRESENT ((uint64_t)1<<6)
  ------------------
 4249|    219|            decoded += size;
 4250|    219|            break;
 4251|    389|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAPPED_EPS_BEARER_CONTEXTS_TYPE:
  ------------------
  |  | 1409|    389|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAPPED_EPS_BEARER_CONTEXTS_TYPE 0x75
  ------------------
  |  Branch (4251:9): [True: 389, False: 10.7k]
  ------------------
 4252|    389|            size = ogs_nas_5gs_decode_mapped_eps_bearer_contexts(&pdu_session_modification_request->mapped_eps_bearer_contexts, pkbuf);
 4253|    389|            if (size < 0) {
  ------------------
  |  Branch (4253:17): [True: 12, False: 377]
  ------------------
 4254|     12|               ogs_error("ogs_nas_5gs_decode_mapped_eps_bearer_contexts() 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__) 
  |  |  ------------------
  ------------------
 4255|     12|               return size;
 4256|     12|            }
 4257|       |
 4258|    377|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAPPED_EPS_BEARER_CONTEXTS_PRESENT;
  ------------------
  |  | 1392|    377|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAPPED_EPS_BEARER_CONTEXTS_PRESENT ((uint64_t)1<<7)
  ------------------
 4259|    377|            decoded += size;
 4260|    377|            break;
 4261|    228|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1410|    228|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4261:9): [True: 228, False: 10.9k]
  ------------------
 4262|    228|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_modification_request->extended_protocol_configuration_options, pkbuf);
 4263|    228|            if (size < 0) {
  ------------------
  |  Branch (4263:17): [True: 5, False: 223]
  ------------------
 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|    223|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1393|    223|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<8)
  ------------------
 4269|    223|            decoded += size;
 4270|    223|            break;
 4271|    244|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE:
  ------------------
  |  | 1411|    244|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE 0x74
  ------------------
  |  Branch (4271:9): [True: 244, False: 10.9k]
  ------------------
 4272|    244|            size = ogs_nas_5gs_decode_port_management_information_container(&pdu_session_modification_request->port_management_information_container, pkbuf);
 4273|    244|            if (size < 0) {
  ------------------
  |  Branch (4273:17): [True: 13, False: 231]
  ------------------
 4274|     13|               ogs_error("ogs_nas_5gs_decode_port_management_information_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__) 
  |  |  ------------------
  ------------------
 4275|     13|               return size;
 4276|     13|            }
 4277|       |
 4278|    231|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT;
  ------------------
  |  | 1394|    231|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT ((uint64_t)1<<9)
  ------------------
 4279|    231|            decoded += size;
 4280|    231|            break;
 4281|    458|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1412|    458|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x66
  ------------------
  |  Branch (4281:9): [True: 458, False: 10.7k]
  ------------------
 4282|    458|            size = ogs_nas_5gs_decode_header_compression_configuration(&pdu_session_modification_request->ip_header_compression_configuration, pkbuf);
 4283|    458|            if (size < 0) {
  ------------------
  |  Branch (4283:17): [True: 12, False: 446]
  ------------------
 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|    446|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1395|    446|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<10)
  ------------------
 4289|    446|            decoded += size;
 4290|    446|            break;
 4291|    238|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1413|    238|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x1F
  ------------------
  |  Branch (4291:9): [True: 238, False: 10.9k]
  ------------------
 4292|    238|            size = ogs_nas_5gs_decode_ethernet_header_compression_configuration(&pdu_session_modification_request->ethernet_header_compression_configuration, pkbuf);
 4293|    238|            if (size < 0) {
  ------------------
  |  Branch (4293:17): [True: 5, False: 233]
  ------------------
 4294|      5|               ogs_error("ogs_nas_5gs_decode_ethernet_header_compression_configuration() 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__) 
  |  |  ------------------
  ------------------
 4295|      5|               return size;
 4296|      5|            }
 4297|       |
 4298|    233|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1396|    233|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<11)
  ------------------
 4299|    233|            decoded += size;
 4300|    233|            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: 10.9k]
  ------------------
 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: 23, False: 220]
  ------------------
 4304|     23|               ogs_error("ogs_nas_5gs_decode_requested_mbs_container() 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__) 
  |  |  ------------------
  ------------------
 4305|     23|               return size;
 4306|     23|            }
 4307|       |
 4308|    220|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_MBS_CONTAINER_PRESENT;
  ------------------
  |  | 1397|    220|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_MBS_CONTAINER_PRESENT ((uint64_t)1<<12)
  ------------------
 4309|    220|            decoded += size;
 4310|    220|            break;
 4311|    217|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  | 1415|    217|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (4311:9): [True: 217, False: 10.9k]
  ------------------
 4312|    217|            size = ogs_nas_5gs_decode_service_level_aa_container(&pdu_session_modification_request->service_level_aa_container, pkbuf);
 4313|    217|            if (size < 0) {
  ------------------
  |  Branch (4313:17): [True: 7, False: 210]
  ------------------
 4314|      7|               ogs_error("ogs_nas_5gs_decode_service_level_aa_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__) 
  |  |  ------------------
  ------------------
 4315|      7|               return size;
 4316|      7|            }
 4317|       |
 4318|    210|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  | 1398|    210|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<13)
  ------------------
 4319|    210|            decoded += size;
 4320|    210|            break;
 4321|    259|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DELAY_BUDGET_TYPE:
  ------------------
  |  | 1416|    259|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DELAY_BUDGET_TYPE 0x73
  ------------------
  |  Branch (4321:9): [True: 259, False: 10.9k]
  ------------------
 4322|    259|            size = ogs_nas_5gs_decode_non_3gpp_delay_budget(&pdu_session_modification_request->non_3gpp_delay_budget, pkbuf);
 4323|    259|            if (size < 0) {
  ------------------
  |  Branch (4323:17): [True: 22, False: 237]
  ------------------
 4324|     22|               ogs_error("ogs_nas_5gs_decode_non_3gpp_delay_budget() 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__) 
  |  |  ------------------
  ------------------
 4325|     22|               return size;
 4326|     22|            }
 4327|       |
 4328|    237|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DELAY_BUDGET_PRESENT;
  ------------------
  |  | 1399|    237|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DELAY_BUDGET_PRESENT ((uint64_t)1<<14)
  ------------------
 4329|    237|            decoded += size;
 4330|    237|            break;
 4331|    205|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_TYPE:
  ------------------
  |  | 1417|    205|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_TYPE 0x36
  ------------------
  |  Branch (4331:9): [True: 205, False: 10.9k]
  ------------------
 4332|    205|            size = ogs_nas_5gs_decode_ursp_rule_enforcement_reports(&pdu_session_modification_request->ursp_rule_enforcement_reports, pkbuf);
 4333|    205|            if (size < 0) {
  ------------------
  |  Branch (4333:17): [True: 5, False: 200]
  ------------------
 4334|      5|               ogs_error("ogs_nas_5gs_decode_ursp_rule_enforcement_reports() 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__) 
  |  |  ------------------
  ------------------
 4335|      5|               return size;
 4336|      5|            }
 4337|       |
 4338|    200|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_PRESENT;
  ------------------
  |  | 1400|    200|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_PRESENT ((uint64_t)1<<15)
  ------------------
 4339|    200|            decoded += size;
 4340|    200|            break;
 4341|    353|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DEVICE_INFORMATION_TYPE:
  ------------------
  |  | 1418|    353|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DEVICE_INFORMATION_TYPE 0x7C
  ------------------
  |  Branch (4341:9): [True: 353, False: 10.8k]
  ------------------
 4342|    353|            size = ogs_nas_5gs_decode_non_3gpp_device_information(&pdu_session_modification_request->non_3gpp_device_information, pkbuf);
 4343|    353|            if (size < 0) {
  ------------------
  |  Branch (4343:17): [True: 26, False: 327]
  ------------------
 4344|     26|               ogs_error("ogs_nas_5gs_decode_non_3gpp_device_information() 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__) 
  |  |  ------------------
  ------------------
 4345|     26|               return size;
 4346|     26|            }
 4347|       |
 4348|    327|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DEVICE_INFORMATION_PRESENT;
  ------------------
  |  | 1401|    327|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DEVICE_INFORMATION_PRESENT ((uint64_t)1<<16)
  ------------------
 4349|    327|            decoded += size;
 4350|    327|            break;
 4351|  6.32k|        default:
  ------------------
  |  Branch (4351:9): [True: 6.32k, False: 4.84k]
  ------------------
 4352|  6.32k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  6.32k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  6.32k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  6.32k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  6.32k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  6.32k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  6.32k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4353|  6.32k|            break;
 4354|  11.1k|        }
 4355|  11.1k|    }
 4356|       |
 4357|    249|    return decoded;
 4358|    423|}
ogs_nas_5gs_decode_pdu_session_modification_reject:
 4361|     86|{
 4362|     86|    ogs_nas_5gs_pdu_session_modification_reject_t *pdu_session_modification_reject = &message->gsm.pdu_session_modification_reject;
 4363|     86|    int decoded = 0;
 4364|     86|    int size = 0;
 4365|       |
 4366|     86|    ogs_trace("[NAS] Decode PDU_SESSION_MODIFICATION_REJECT\n");
  ------------------
  |  |   40|     86|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     86|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     86|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     86|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     86|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     86|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4367|       |
 4368|     86|    size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_modification_reject->gsm_cause, pkbuf);
 4369|     86|    if (size < 0) {
  ------------------
  |  Branch (4369:9): [True: 1, False: 85]
  ------------------
 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|     85|    decoded += size;
 4375|       |
 4376|  2.37k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4376:12): [True: 2.30k, False: 74]
  ------------------
 4377|  2.30k|        uint8_t *buffer = pkbuf->data;
 4378|  2.30k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4378:24): [True: 583, False: 1.71k]
  ------------------
 4379|       |
 4380|  2.30k|        size = sizeof(uint8_t);
 4381|  2.30k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4381:13): [True: 0, False: 2.30k]
  ------------------
 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.30k|        decoded += size;
 4386|       |
 4387|  2.30k|        switch(type) {
 4388|    195|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_BACK_OFF_TIMER_VALUE_TYPE:
  ------------------
  |  | 1451|    195|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_BACK_OFF_TIMER_VALUE_TYPE 0x37
  ------------------
  |  Branch (4388:9): [True: 195, False: 2.10k]
  ------------------
 4389|    195|            size = ogs_nas_5gs_decode_gprs_timer_3(&pdu_session_modification_reject->back_off_timer_value, pkbuf);
 4390|    195|            if (size < 0) {
  ------------------
  |  Branch (4390:17): [True: 1, False: 194]
  ------------------
 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|    194|            pdu_session_modification_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_BACK_OFF_TIMER_VALUE_PRESENT;
  ------------------
  |  | 1447|    194|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_BACK_OFF_TIMER_VALUE_PRESENT ((uint64_t)1<<0)
  ------------------
 4396|    194|            decoded += size;
 4397|    194|            break;
 4398|    204|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_TYPE:
  ------------------
  |  | 1452|    204|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_TYPE 0x61
  ------------------
  |  Branch (4398:9): [True: 204, False: 2.09k]
  ------------------
 4399|    204|            size = ogs_nas_5gs_decode_5gsm_congestion_re_attempt_indicator(&pdu_session_modification_reject->gsm_congestion_re_attempt_indicator, pkbuf);
 4400|    204|            if (size < 0) {
  ------------------
  |  Branch (4400:17): [True: 4, False: 200]
  ------------------
 4401|      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__) 
  |  |  ------------------
  ------------------
 4402|      4|               return size;
 4403|      4|            }
 4404|       |
 4405|    200|            pdu_session_modification_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_PRESENT;
  ------------------
  |  | 1448|    200|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_PRESENT ((uint64_t)1<<1)
  ------------------
 4406|    200|            decoded += size;
 4407|    200|            break;
 4408|    205|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1453|    205|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4408:9): [True: 205, False: 2.09k]
  ------------------
 4409|    205|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_modification_reject->extended_protocol_configuration_options, pkbuf);
 4410|    205|            if (size < 0) {
  ------------------
  |  Branch (4410:17): [True: 1, False: 204]
  ------------------
 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|    204|            pdu_session_modification_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1449|    204|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<2)
  ------------------
 4416|    204|            decoded += size;
 4417|    204|            break;
 4418|    212|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_RE_ATTEMPT_INDICATOR_TYPE:
  ------------------
  |  | 1454|    212|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_RE_ATTEMPT_INDICATOR_TYPE 0x1D
  ------------------
  |  Branch (4418:9): [True: 212, False: 2.09k]
  ------------------
 4419|    212|            size = ogs_nas_5gs_decode_re_attempt_indicator(&pdu_session_modification_reject->re_attempt_indicator, pkbuf);
 4420|    212|            if (size < 0) {
  ------------------
  |  Branch (4420:17): [True: 5, False: 207]
  ------------------
 4421|      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__) 
  |  |  ------------------
  ------------------
 4422|      5|               return size;
 4423|      5|            }
 4424|       |
 4425|    207|            pdu_session_modification_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_RE_ATTEMPT_INDICATOR_PRESENT;
  ------------------
  |  | 1450|    207|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_RE_ATTEMPT_INDICATOR_PRESENT ((uint64_t)1<<3)
  ------------------
 4426|    207|            decoded += size;
 4427|    207|            break;
 4428|  1.48k|        default:
  ------------------
  |  Branch (4428:9): [True: 1.48k, False: 816]
  ------------------
 4429|  1.48k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.48k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.48k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.48k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.48k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.48k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.48k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4430|  1.48k|            break;
 4431|  2.30k|        }
 4432|  2.30k|    }
 4433|       |
 4434|     74|    return decoded;
 4435|     85|}
ogs_nas_5gs_decode_pdu_session_modification_command:
 4438|    426|{
 4439|    426|    ogs_nas_5gs_pdu_session_modification_command_t *pdu_session_modification_command = &message->gsm.pdu_session_modification_command;
 4440|    426|    int decoded = 0;
 4441|    426|    int size = 0;
 4442|       |
 4443|    426|    ogs_trace("[NAS] Decode PDU_SESSION_MODIFICATION_COMMAND\n");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 4444|       |
 4445|  9.33k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4445:12): [True: 9.07k, False: 261]
  ------------------
 4446|  9.07k|        uint8_t *buffer = pkbuf->data;
 4447|  9.07k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4447:24): [True: 2.46k, False: 6.60k]
  ------------------
 4448|       |
 4449|  9.07k|        size = sizeof(uint8_t);
 4450|  9.07k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4450:13): [True: 0, False: 9.07k]
  ------------------
 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|  9.07k|        decoded += size;
 4455|       |
 4456|  9.07k|        switch(type) {
 4457|    197|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_5GSM_CAUSE_TYPE:
  ------------------
  |  | 1491|    197|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_5GSM_CAUSE_TYPE 0x59
  ------------------
  |  Branch (4457:9): [True: 197, False: 8.87k]
  ------------------
 4458|    197|            size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_modification_command->gsm_cause, pkbuf);
 4459|    197|            if (size < 0) {
  ------------------
  |  Branch (4459:17): [True: 1, False: 196]
  ------------------
 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|    196|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_5GSM_CAUSE_PRESENT;
  ------------------
  |  | 1472|    196|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_5GSM_CAUSE_PRESENT ((uint64_t)1<<0)
  ------------------
 4465|    196|            decoded += size;
 4466|    196|            break;
 4467|    103|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SESSION_AMBR_TYPE:
  ------------------
  |  | 1492|    103|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SESSION_AMBR_TYPE 0x2A
  ------------------
  |  Branch (4467:9): [True: 103, False: 8.96k]
  ------------------
 4468|    103|            size = ogs_nas_5gs_decode_session_ambr(&pdu_session_modification_command->session_ambr, pkbuf);
 4469|    103|            if (size < 0) {
  ------------------
  |  Branch (4469:17): [True: 18, False: 85]
  ------------------
 4470|     18|               ogs_error("ogs_nas_5gs_decode_session_ambr() 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__) 
  |  |  ------------------
  ------------------
 4471|     18|               return size;
 4472|     18|            }
 4473|       |
 4474|     85|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SESSION_AMBR_PRESENT;
  ------------------
  |  | 1473|     85|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SESSION_AMBR_PRESENT ((uint64_t)1<<1)
  ------------------
 4475|     85|            decoded += size;
 4476|     85|            break;
 4477|    227|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RQ_TIMER_VALUE_TYPE:
  ------------------
  |  | 1493|    227|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RQ_TIMER_VALUE_TYPE 0x56
  ------------------
  |  Branch (4477:9): [True: 227, False: 8.84k]
  ------------------
 4478|    227|            size = ogs_nas_5gs_decode_gprs_timer(&pdu_session_modification_command->rq_timer_value, pkbuf);
 4479|    227|            if (size < 0) {
  ------------------
  |  Branch (4479:17): [True: 5, False: 222]
  ------------------
 4480|      5|               ogs_error("ogs_nas_5gs_decode_gprs_timer() 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__) 
  |  |  ------------------
  ------------------
 4481|      5|               return size;
 4482|      5|            }
 4483|       |
 4484|    222|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RQ_TIMER_VALUE_PRESENT;
  ------------------
  |  | 1474|    222|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RQ_TIMER_VALUE_PRESENT ((uint64_t)1<<2)
  ------------------
 4485|    222|            decoded += size;
 4486|    222|            break;
 4487|    593|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALWAYS_ON_PDU_SESSION_INDICATION_TYPE:
  ------------------
  |  | 1494|    593|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALWAYS_ON_PDU_SESSION_INDICATION_TYPE 0x80
  ------------------
  |  Branch (4487:9): [True: 593, False: 8.47k]
  ------------------
 4488|    593|            decoded--;
 4489|    593|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    593|    do { \
  |  |  114|    593|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    593|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 593, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    593|        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|    593|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 593]
  |  |  ------------------
  ------------------
 4490|    593|            size = ogs_nas_5gs_decode_always_on_pdu_session_indication(&pdu_session_modification_command->always_on_pdu_session_indication, pkbuf);
 4491|    593|            if (size < 0) {
  ------------------
  |  Branch (4491:17): [True: 0, False: 593]
  ------------------
 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|    593|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALWAYS_ON_PDU_SESSION_INDICATION_PRESENT;
  ------------------
  |  | 1475|    593|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALWAYS_ON_PDU_SESSION_INDICATION_PRESENT ((uint64_t)1<<3)
  ------------------
 4497|    593|            decoded += size;
 4498|    593|            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: 8.85k]
  ------------------
 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: 7, False: 211]
  ------------------
 4502|      7|               ogs_error("ogs_nas_5gs_decode_qos_rules() 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__) 
  |  |  ------------------
  ------------------
 4503|      7|               return size;
 4504|      7|            }
 4505|       |
 4506|    211|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_AUTHORIZED_QOS_RULES_PRESENT;
  ------------------
  |  | 1476|    211|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_AUTHORIZED_QOS_RULES_PRESENT ((uint64_t)1<<4)
  ------------------
 4507|    211|            decoded += size;
 4508|    211|            break;
 4509|    262|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_MAPPED_EPS_BEARER_CONTEXTS_TYPE:
  ------------------
  |  | 1496|    262|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_MAPPED_EPS_BEARER_CONTEXTS_TYPE 0x75
  ------------------
  |  Branch (4509:9): [True: 262, False: 8.80k]
  ------------------
 4510|    262|            size = ogs_nas_5gs_decode_mapped_eps_bearer_contexts(&pdu_session_modification_command->mapped_eps_bearer_contexts, pkbuf);
 4511|    262|            if (size < 0) {
  ------------------
  |  Branch (4511:17): [True: 15, False: 247]
  ------------------
 4512|     15|               ogs_error("ogs_nas_5gs_decode_mapped_eps_bearer_contexts() 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__) 
  |  |  ------------------
  ------------------
 4513|     15|               return size;
 4514|     15|            }
 4515|       |
 4516|    247|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_MAPPED_EPS_BEARER_CONTEXTS_PRESENT;
  ------------------
  |  | 1477|    247|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_MAPPED_EPS_BEARER_CONTEXTS_PRESENT ((uint64_t)1<<5)
  ------------------
 4517|    247|            decoded += size;
 4518|    247|            break;
 4519|    221|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_AUTHORIZED_QOS_FLOW_DESCRIPTIONS_TYPE:
  ------------------
  |  | 1497|    221|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_AUTHORIZED_QOS_FLOW_DESCRIPTIONS_TYPE 0x79
  ------------------
  |  Branch (4519:9): [True: 221, False: 8.85k]
  ------------------
 4520|    221|            size = ogs_nas_5gs_decode_qos_flow_descriptions(&pdu_session_modification_command->authorized_qos_flow_descriptions, pkbuf);
 4521|    221|            if (size < 0) {
  ------------------
  |  Branch (4521:17): [True: 8, False: 213]
  ------------------
 4522|      8|               ogs_error("ogs_nas_5gs_decode_qos_flow_descriptions() 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__) 
  |  |  ------------------
  ------------------
 4523|      8|               return size;
 4524|      8|            }
 4525|       |
 4526|    213|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_AUTHORIZED_QOS_FLOW_DESCRIPTIONS_PRESENT;
  ------------------
  |  | 1478|    213|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_AUTHORIZED_QOS_FLOW_DESCRIPTIONS_PRESENT ((uint64_t)1<<6)
  ------------------
 4527|    213|            decoded += size;
 4528|    213|            break;
 4529|    219|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1498|    219|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4529:9): [True: 219, False: 8.85k]
  ------------------
 4530|    219|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_modification_command->extended_protocol_configuration_options, pkbuf);
 4531|    219|            if (size < 0) {
  ------------------
  |  Branch (4531:17): [True: 4, False: 215]
  ------------------
 4532|      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__) 
  |  |  ------------------
  ------------------
 4533|      4|               return size;
 4534|      4|            }
 4535|       |
 4536|    215|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1479|    215|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<7)
  ------------------
 4537|    215|            decoded += size;
 4538|    215|            break;
 4539|    283|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ATSSS_CONTAINER_TYPE:
  ------------------
  |  | 1499|    283|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ATSSS_CONTAINER_TYPE 0x77
  ------------------
  |  Branch (4539:9): [True: 283, False: 8.78k]
  ------------------
 4540|    283|            size = ogs_nas_5gs_decode_atsss_container(&pdu_session_modification_command->atsss_container, pkbuf);
 4541|    283|            if (size < 0) {
  ------------------
  |  Branch (4541:17): [True: 21, False: 262]
  ------------------
 4542|     21|               ogs_error("ogs_nas_5gs_decode_atsss_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__) 
  |  |  ------------------
  ------------------
 4543|     21|               return size;
 4544|     21|            }
 4545|       |
 4546|    262|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ATSSS_CONTAINER_PRESENT;
  ------------------
  |  | 1480|    262|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ATSSS_CONTAINER_PRESENT ((uint64_t)1<<8)
  ------------------
 4547|    262|            decoded += size;
 4548|    262|            break;
 4549|    202|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1500|    202|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x66
  ------------------
  |  Branch (4549:9): [True: 202, False: 8.86k]
  ------------------
 4550|    202|            size = ogs_nas_5gs_decode_ip_header_compression_configuration(&pdu_session_modification_command->ip_header_compression_configuration, pkbuf);
 4551|    202|            if (size < 0) {
  ------------------
  |  Branch (4551:17): [True: 3, False: 199]
  ------------------
 4552|      3|               ogs_error("ogs_nas_5gs_decode_ip_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__) 
  |  |  ------------------
  ------------------
 4553|      3|               return size;
 4554|      3|            }
 4555|       |
 4556|    199|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1481|    199|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<9)
  ------------------
 4557|    199|            decoded += size;
 4558|    199|            break;
 4559|    211|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE:
  ------------------
  |  | 1501|    211|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE 0x74
  ------------------
  |  Branch (4559:9): [True: 211, False: 8.86k]
  ------------------
 4560|    211|            size = ogs_nas_5gs_decode_port_management_information_container(&pdu_session_modification_command->port_management_information_container, pkbuf);
 4561|    211|            if (size < 0) {
  ------------------
  |  Branch (4561:17): [True: 7, False: 204]
  ------------------
 4562|      7|               ogs_error("ogs_nas_5gs_decode_port_management_information_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__) 
  |  |  ------------------
  ------------------
 4563|      7|               return size;
 4564|      7|            }
 4565|       |
 4566|    204|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT;
  ------------------
  |  | 1482|    204|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT ((uint64_t)1<<10)
  ------------------
 4567|    204|            decoded += size;
 4568|    204|            break;
 4569|    221|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVING_PLMN_RATE_CONTROL_TYPE:
  ------------------
  |  | 1502|    221|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVING_PLMN_RATE_CONTROL_TYPE 0x1E
  ------------------
  |  Branch (4569:9): [True: 221, False: 8.85k]
  ------------------
 4570|    221|            size = ogs_nas_5gs_decode_serving_plmn_rate_control(&pdu_session_modification_command->serving_plmn_rate_control, pkbuf);
 4571|    221|            if (size < 0) {
  ------------------
  |  Branch (4571:17): [True: 5, False: 216]
  ------------------
 4572|      5|               ogs_error("ogs_nas_5gs_decode_serving_plmn_rate_control() 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__) 
  |  |  ------------------
  ------------------
 4573|      5|               return size;
 4574|      5|            }
 4575|       |
 4576|    216|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVING_PLMN_RATE_CONTROL_PRESENT;
  ------------------
  |  | 1483|    216|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVING_PLMN_RATE_CONTROL_PRESENT ((uint64_t)1<<11)
  ------------------
 4577|    216|            decoded += size;
 4578|    216|            break;
 4579|    199|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1503|    199|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x1F
  ------------------
  |  Branch (4579:9): [True: 199, False: 8.87k]
  ------------------
 4580|    199|            size = ogs_nas_5gs_decode_ethernet_header_compression_configuration(&pdu_session_modification_command->ethernet_header_compression_configuration, pkbuf);
 4581|    199|            if (size < 0) {
  ------------------
  |  Branch (4581:17): [True: 3, False: 196]
  ------------------
 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|    196|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1484|    196|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<12)
  ------------------
 4587|    196|            decoded += size;
 4588|    196|            break;
 4589|    223|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RECEIVED_MBS_CONTAINER_TYPE:
  ------------------
  |  | 1504|    223|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RECEIVED_MBS_CONTAINER_TYPE 0x71
  ------------------
  |  Branch (4589:9): [True: 223, False: 8.84k]
  ------------------
 4590|    223|            size = ogs_nas_5gs_decode_received_mbs_container(&pdu_session_modification_command->received_mbs_container, pkbuf);
 4591|    223|            if (size < 0) {
  ------------------
  |  Branch (4591:17): [True: 10, False: 213]
  ------------------
 4592|     10|               ogs_error("ogs_nas_5gs_decode_received_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__) 
  |  |  ------------------
  ------------------
 4593|     10|               return size;
 4594|     10|            }
 4595|       |
 4596|    213|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RECEIVED_MBS_CONTAINER_PRESENT;
  ------------------
  |  | 1485|    213|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RECEIVED_MBS_CONTAINER_PRESENT ((uint64_t)1<<13)
  ------------------
 4597|    213|            decoded += size;
 4598|    213|            break;
 4599|    202|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  | 1505|    202|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (4599:9): [True: 202, False: 8.86k]
  ------------------
 4600|    202|            size = ogs_nas_5gs_decode_service_level_aa_container(&pdu_session_modification_command->service_level_aa_container, pkbuf);
 4601|    202|            if (size < 0) {
  ------------------
  |  Branch (4601:17): [True: 3, False: 199]
  ------------------
 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|    199|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  | 1486|    199|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<14)
  ------------------
 4607|    199|            decoded += size;
 4608|    199|            break;
 4609|    333|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALTERNATIVE_S_NSSAI_TYPE:
  ------------------
  |  | 1506|    333|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALTERNATIVE_S_NSSAI_TYPE 0x5A
  ------------------
  |  Branch (4609:9): [True: 333, False: 8.73k]
  ------------------
 4610|    333|            size = ogs_nas_5gs_decode_s_nssai(&pdu_session_modification_command->alternative_s_nssai, pkbuf);
 4611|    333|            if (size < 0) {
  ------------------
  |  Branch (4611:17): [True: 5, False: 328]
  ------------------
 4612|      5|               ogs_error("ogs_nas_5gs_decode_s_nssai() 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__) 
  |  |  ------------------
  ------------------
 4613|      5|               return size;
 4614|      5|            }
 4615|       |
 4616|    328|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALTERNATIVE_S_NSSAI_PRESENT;
  ------------------
  |  | 1487|    328|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALTERNATIVE_S_NSSAI_PRESENT ((uint64_t)1<<15)
  ------------------
 4617|    328|            decoded += size;
 4618|    328|            break;
 4619|    282|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_N3QAI_TYPE:
  ------------------
  |  | 1507|    282|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_N3QAI_TYPE 0x70
  ------------------
  |  Branch (4619:9): [True: 282, False: 8.78k]
  ------------------
 4620|    282|            size = ogs_nas_5gs_decode_n3qai(&pdu_session_modification_command->n3qai, pkbuf);
 4621|    282|            if (size < 0) {
  ------------------
  |  Branch (4621:17): [True: 23, False: 259]
  ------------------
 4622|     23|               ogs_error("ogs_nas_5gs_decode_n3qai() 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__) 
  |  |  ------------------
  ------------------
 4623|     23|               return size;
 4624|     23|            }
 4625|       |
 4626|    259|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_N3QAI_PRESENT;
  ------------------
  |  | 1488|    259|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_N3QAI_PRESENT ((uint64_t)1<<16)
  ------------------
 4627|    259|            decoded += size;
 4628|    259|            break;
 4629|    231|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PROTOCOL_DESCRIPTION_TYPE:
  ------------------
  |  | 1508|    231|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PROTOCOL_DESCRIPTION_TYPE 0x73
  ------------------
  |  Branch (4629:9): [True: 231, False: 8.84k]
  ------------------
 4630|    231|            size = ogs_nas_5gs_decode_protocol_description(&pdu_session_modification_command->protocol_description, pkbuf);
 4631|    231|            if (size < 0) {
  ------------------
  |  Branch (4631:17): [True: 22, False: 209]
  ------------------
 4632|     22|               ogs_error("ogs_nas_5gs_decode_protocol_description() 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__) 
  |  |  ------------------
  ------------------
 4633|     22|               return size;
 4634|     22|            }
 4635|       |
 4636|    209|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PROTOCOL_DESCRIPTION_PRESENT;
  ------------------
  |  | 1489|    209|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PROTOCOL_DESCRIPTION_PRESENT ((uint64_t)1<<17)
  ------------------
 4637|    209|            decoded += size;
 4638|    209|            break;
 4639|    209|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ECN_MARKING_FOR_L4S_INDICATION_TYPE:
  ------------------
  |  | 1509|    209|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ECN_MARKING_FOR_L4S_INDICATION_TYPE 0x38
  ------------------
  |  Branch (4639:9): [True: 209, False: 8.86k]
  ------------------
 4640|    209|            size = ogs_nas_5gs_decode_ecn_marking_for_l4s_indication(&pdu_session_modification_command->ecn_marking_for_l4s_indication, pkbuf);
 4641|    209|            if (size < 0) {
  ------------------
  |  Branch (4641:17): [True: 5, False: 204]
  ------------------
 4642|      5|               ogs_error("ogs_nas_5gs_decode_ecn_marking_for_l4s_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__) 
  |  |  ------------------
  ------------------
 4643|      5|               return size;
 4644|      5|            }
 4645|       |
 4646|    204|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ECN_MARKING_FOR_L4S_INDICATION_PRESENT;
  ------------------
  |  | 1490|    204|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ECN_MARKING_FOR_L4S_INDICATION_PRESENT ((uint64_t)1<<18)
  ------------------
 4647|    204|            decoded += size;
 4648|    204|            break;
 4649|  4.43k|        default:
  ------------------
  |  Branch (4649:9): [True: 4.43k, False: 4.63k]
  ------------------
 4650|  4.43k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  4.43k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  4.43k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  4.43k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  4.43k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  4.43k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  4.43k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4651|  4.43k|            break;
 4652|  9.07k|        }
 4653|  9.07k|    }
 4654|       |
 4655|    261|    return decoded;
 4656|    426|}
ogs_nas_5gs_decode_pdu_session_modification_complete:
 4659|     75|{
 4660|     75|    ogs_nas_5gs_pdu_session_modification_complete_t *pdu_session_modification_complete = &message->gsm.pdu_session_modification_complete;
 4661|     75|    int decoded = 0;
 4662|     75|    int size = 0;
 4663|       |
 4664|     75|    ogs_trace("[NAS] Decode PDU_SESSION_MODIFICATION_COMPLETE\n");
  ------------------
  |  |   40|     75|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     75|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     75|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     75|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     75|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     75|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4665|       |
 4666|  2.01k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4666:12): [True: 1.96k, False: 58]
  ------------------
 4667|  1.96k|        uint8_t *buffer = pkbuf->data;
 4668|  1.96k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4668:24): [True: 710, False: 1.25k]
  ------------------
 4669|       |
 4670|  1.96k|        size = sizeof(uint8_t);
 4671|  1.96k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4671:13): [True: 0, False: 1.96k]
  ------------------
 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|  1.96k|        decoded += size;
 4676|       |
 4677|  1.96k|        switch(type) {
 4678|    213|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1542|    213|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4678:9): [True: 213, False: 1.74k]
  ------------------
 4679|    213|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_modification_complete->extended_protocol_configuration_options, pkbuf);
 4680|    213|            if (size < 0) {
  ------------------
  |  Branch (4680:17): [True: 7, False: 206]
  ------------------
 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|    206|            pdu_session_modification_complete->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1540|    206|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<0)
  ------------------
 4686|    206|            decoded += size;
 4687|    206|            break;
 4688|    223|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE:
  ------------------
  |  | 1543|    223|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE 0x74
  ------------------
  |  Branch (4688:9): [True: 223, False: 1.73k]
  ------------------
 4689|    223|            size = ogs_nas_5gs_decode_port_management_information_container(&pdu_session_modification_complete->port_management_information_container, pkbuf);
 4690|    223|            if (size < 0) {
  ------------------
  |  Branch (4690:17): [True: 10, False: 213]
  ------------------
 4691|     10|               ogs_error("ogs_nas_5gs_decode_port_management_information_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__) 
  |  |  ------------------
  ------------------
 4692|     10|               return size;
 4693|     10|            }
 4694|       |
 4695|    213|            pdu_session_modification_complete->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT;
  ------------------
  |  | 1541|    213|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT ((uint64_t)1<<1)
  ------------------
 4696|    213|            decoded += size;
 4697|    213|            break;
 4698|  1.52k|        default:
  ------------------
  |  Branch (4698:9): [True: 1.52k, False: 436]
  ------------------
 4699|  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__) 
  |  |  ------------------
  ------------------
 4700|  1.52k|            break;
 4701|  1.96k|        }
 4702|  1.96k|    }
 4703|       |
 4704|     58|    return decoded;
 4705|     75|}
ogs_nas_5gs_decode_pdu_session_modification_command_reject:
 4708|     50|{
 4709|     50|    ogs_nas_5gs_pdu_session_modification_command_reject_t *pdu_session_modification_command_reject = &message->gsm.pdu_session_modification_command_reject;
 4710|     50|    int decoded = 0;
 4711|     50|    int size = 0;
 4712|       |
 4713|     50|    ogs_trace("[NAS] Decode PDU_SESSION_MODIFICATION_COMMAND_REJECT\n");
  ------------------
  |  |   40|     50|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     50|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     50|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     50|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     50|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     50|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4714|       |
 4715|     50|    size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_modification_command_reject->gsm_cause, pkbuf);
 4716|     50|    if (size < 0) {
  ------------------
  |  Branch (4716:9): [True: 1, False: 49]
  ------------------
 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|     49|    decoded += size;
 4722|       |
 4723|  2.02k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4723:12): [True: 1.97k, False: 48]
  ------------------
 4724|  1.97k|        uint8_t *buffer = pkbuf->data;
 4725|  1.97k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4725:24): [True: 998, False: 978]
  ------------------
 4726|       |
 4727|  1.97k|        size = sizeof(uint8_t);
 4728|  1.97k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4728:13): [True: 0, False: 1.97k]
  ------------------
 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|  1.97k|        decoded += size;
 4733|       |
 4734|  1.97k|        switch(type) {
 4735|    219|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1558|    219|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4735:9): [True: 219, False: 1.75k]
  ------------------
 4736|    219|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_modification_command_reject->extended_protocol_configuration_options, pkbuf);
 4737|    219|            if (size < 0) {
  ------------------
  |  Branch (4737:17): [True: 1, False: 218]
  ------------------
 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|    218|            pdu_session_modification_command_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1557|    218|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<0)
  ------------------
 4743|    218|            decoded += size;
 4744|    218|            break;
 4745|  1.75k|        default:
  ------------------
  |  Branch (4745:9): [True: 1.75k, False: 219]
  ------------------
 4746|  1.75k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.75k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.75k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.75k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.75k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.75k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.75k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4747|  1.75k|            break;
 4748|  1.97k|        }
 4749|  1.97k|    }
 4750|       |
 4751|     48|    return decoded;
 4752|     49|}
ogs_nas_5gs_decode_pdu_session_release_request:
 4755|     59|{
 4756|     59|    ogs_nas_5gs_pdu_session_release_request_t *pdu_session_release_request = &message->gsm.pdu_session_release_request;
 4757|     59|    int decoded = 0;
 4758|     59|    int size = 0;
 4759|       |
 4760|     59|    ogs_trace("[NAS] Decode PDU_SESSION_RELEASE_REQUEST\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__) 
  |  |  ------------------
  ------------------
 4761|       |
 4762|  2.02k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4762:12): [True: 1.97k, False: 50]
  ------------------
 4763|  1.97k|        uint8_t *buffer = pkbuf->data;
 4764|  1.97k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4764:24): [True: 751, False: 1.22k]
  ------------------
 4765|       |
 4766|  1.97k|        size = sizeof(uint8_t);
 4767|  1.97k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4767:13): [True: 0, False: 1.97k]
  ------------------
 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.97k|        decoded += size;
 4772|       |
 4773|  1.97k|        switch(type) {
 4774|    200|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_5GSM_CAUSE_TYPE:
  ------------------
  |  | 1575|    200|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_5GSM_CAUSE_TYPE 0x59
  ------------------
  |  Branch (4774:9): [True: 200, False: 1.77k]
  ------------------
 4775|    200|            size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_release_request->gsm_cause, pkbuf);
 4776|    200|            if (size < 0) {
  ------------------
  |  Branch (4776:17): [True: 2, False: 198]
  ------------------
 4777|      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__) 
  |  |  ------------------
  ------------------
 4778|      2|               return size;
 4779|      2|            }
 4780|       |
 4781|    198|            pdu_session_release_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_5GSM_CAUSE_PRESENT;
  ------------------
  |  | 1573|    198|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_5GSM_CAUSE_PRESENT ((uint64_t)1<<0)
  ------------------
 4782|    198|            decoded += size;
 4783|    198|            break;
 4784|    215|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1576|    215|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4784:9): [True: 215, False: 1.75k]
  ------------------
 4785|    215|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_release_request->extended_protocol_configuration_options, pkbuf);
 4786|    215|            if (size < 0) {
  ------------------
  |  Branch (4786:17): [True: 7, False: 208]
  ------------------
 4787|      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__) 
  |  |  ------------------
  ------------------
 4788|      7|               return size;
 4789|      7|            }
 4790|       |
 4791|    208|            pdu_session_release_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1574|    208|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<1)
  ------------------
 4792|    208|            decoded += size;
 4793|    208|            break;
 4794|  1.55k|        default:
  ------------------
  |  Branch (4794:9): [True: 1.55k, False: 415]
  ------------------
 4795|  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__) 
  |  |  ------------------
  ------------------
 4796|  1.55k|            break;
 4797|  1.97k|        }
 4798|  1.97k|    }
 4799|       |
 4800|     50|    return decoded;
 4801|     59|}
ogs_nas_5gs_decode_pdu_session_release_reject:
 4804|     58|{
 4805|     58|    ogs_nas_5gs_pdu_session_release_reject_t *pdu_session_release_reject = &message->gsm.pdu_session_release_reject;
 4806|     58|    int decoded = 0;
 4807|     58|    int size = 0;
 4808|       |
 4809|     58|    ogs_trace("[NAS] Decode PDU_SESSION_RELEASE_REJECT\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__) 
  |  |  ------------------
  ------------------
 4810|       |
 4811|     58|    size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_release_reject->gsm_cause, pkbuf);
 4812|     58|    if (size < 0) {
  ------------------
  |  Branch (4812:9): [True: 1, False: 57]
  ------------------
 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|     57|    decoded += size;
 4818|       |
 4819|  2.68k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4819:12): [True: 2.63k, False: 56]
  ------------------
 4820|  2.63k|        uint8_t *buffer = pkbuf->data;
 4821|  2.63k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4821:24): [True: 1.23k, False: 1.40k]
  ------------------
 4822|       |
 4823|  2.63k|        size = sizeof(uint8_t);
 4824|  2.63k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4824:13): [True: 0, False: 2.63k]
  ------------------
 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.63k|        decoded += size;
 4829|       |
 4830|  2.63k|        switch(type) {
 4831|    203|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1591|    203|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4831:9): [True: 203, False: 2.43k]
  ------------------
 4832|    203|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_release_reject->extended_protocol_configuration_options, pkbuf);
 4833|    203|            if (size < 0) {
  ------------------
  |  Branch (4833:17): [True: 1, False: 202]
  ------------------
 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|    202|            pdu_session_release_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1590|    202|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<0)
  ------------------
 4839|    202|            decoded += size;
 4840|    202|            break;
 4841|  2.43k|        default:
  ------------------
  |  Branch (4841:9): [True: 2.43k, False: 203]
  ------------------
 4842|  2.43k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.43k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.43k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.43k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.43k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.43k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.43k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4843|  2.43k|            break;
 4844|  2.63k|        }
 4845|  2.63k|    }
 4846|       |
 4847|     56|    return decoded;
 4848|     57|}
ogs_nas_5gs_decode_pdu_session_release_command:
 4851|    112|{
 4852|    112|    ogs_nas_5gs_pdu_session_release_command_t *pdu_session_release_command = &message->gsm.pdu_session_release_command;
 4853|    112|    int decoded = 0;
 4854|    112|    int size = 0;
 4855|       |
 4856|    112|    ogs_trace("[NAS] Decode PDU_SESSION_RELEASE_COMMAND\n");
  ------------------
  |  |   40|    112|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    112|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    112|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    112|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    112|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    112|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4857|       |
 4858|    112|    size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_release_command->gsm_cause, pkbuf);
 4859|    112|    if (size < 0) {
  ------------------
  |  Branch (4859:9): [True: 1, False: 111]
  ------------------
 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|    111|    decoded += size;
 4865|       |
 4866|  5.18k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4866:12): [True: 5.08k, False: 102]
  ------------------
 4867|  5.08k|        uint8_t *buffer = pkbuf->data;
 4868|  5.08k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4868:24): [True: 1.88k, False: 3.20k]
  ------------------
 4869|       |
 4870|  5.08k|        size = sizeof(uint8_t);
 4871|  5.08k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4871:13): [True: 0, False: 5.08k]
  ------------------
 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.08k|        decoded += size;
 4876|       |
 4877|  5.08k|        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: 4.88k]
  ------------------
 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|    216|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EAP_MESSAGE_TYPE:
  ------------------
  |  | 1614|    216|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (4888:9): [True: 216, False: 4.86k]
  ------------------
 4889|    216|            size = ogs_nas_5gs_decode_eap_message(&pdu_session_release_command->eap_message, pkbuf);
 4890|    216|            if (size < 0) {
  ------------------
  |  Branch (4890:17): [True: 1, False: 215]
  ------------------
 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|    215|            pdu_session_release_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EAP_MESSAGE_PRESENT;
  ------------------
  |  | 1607|    215|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EAP_MESSAGE_PRESENT ((uint64_t)1<<1)
  ------------------
 4896|    215|            decoded += size;
 4897|    215|            break;
 4898|    198|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_TYPE:
  ------------------
  |  | 1615|    198|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_TYPE 0x61
  ------------------
  |  Branch (4898:9): [True: 198, False: 4.88k]
  ------------------
 4899|    198|            size = ogs_nas_5gs_decode_5gsm_congestion_re_attempt_indicator(&pdu_session_release_command->gsm_congestion_re_attempt_indicator, pkbuf);
 4900|    198|            if (size < 0) {
  ------------------
  |  Branch (4900:17): [True: 1, False: 197]
  ------------------
 4901|      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__) 
  |  |  ------------------
  ------------------
 4902|      1|               return size;
 4903|      1|            }
 4904|       |
 4905|    197|            pdu_session_release_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_PRESENT;
  ------------------
  |  | 1608|    197|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_PRESENT ((uint64_t)1<<2)
  ------------------
 4906|    197|            decoded += size;
 4907|    197|            break;
 4908|    211|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1616|    211|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4908:9): [True: 211, False: 4.86k]
  ------------------
 4909|    211|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_release_command->extended_protocol_configuration_options, pkbuf);
 4910|    211|            if (size < 0) {
  ------------------
  |  Branch (4910:17): [True: 2, False: 209]
  ------------------
 4911|      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__) 
  |  |  ------------------
  ------------------
 4912|      2|               return size;
 4913|      2|            }
 4914|       |
 4915|    209|            pdu_session_release_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1609|    209|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<3)
  ------------------
 4916|    209|            decoded += size;
 4917|    209|            break;
 4918|    791|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ACCESS_TYPE_TYPE:
  ------------------
  |  | 1617|    791|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ACCESS_TYPE_TYPE 0xD0
  ------------------
  |  Branch (4918:9): [True: 791, False: 4.28k]
  ------------------
 4919|    791|            decoded--;
 4920|    791|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    791|    do { \
  |  |  114|    791|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    791|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 791, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    791|        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|    791|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 791]
  |  |  ------------------
  ------------------
 4921|    791|            size = ogs_nas_5gs_decode_access_type(&pdu_session_release_command->access_type, pkbuf);
 4922|    791|            if (size < 0) {
  ------------------
  |  Branch (4922:17): [True: 0, False: 791]
  ------------------
 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|    791|            pdu_session_release_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ACCESS_TYPE_PRESENT;
  ------------------
  |  | 1610|    791|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ACCESS_TYPE_PRESENT ((uint64_t)1<<4)
  ------------------
 4928|    791|            decoded += size;
 4929|    791|            break;
 4930|    202|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  | 1618|    202|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (4930:9): [True: 202, False: 4.87k]
  ------------------
 4931|    202|            size = ogs_nas_5gs_decode_service_level_aa_container(&pdu_session_release_command->service_level_aa_container, pkbuf);
 4932|    202|            if (size < 0) {
  ------------------
  |  Branch (4932:17): [True: 3, False: 199]
  ------------------
 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|    199|            pdu_session_release_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  | 1611|    199|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<5)
  ------------------
 4938|    199|            decoded += size;
 4939|    199|            break;
 4940|    207|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ALTERNATIVE_S_NSSAI_TYPE:
  ------------------
  |  | 1619|    207|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ALTERNATIVE_S_NSSAI_TYPE 0x5A
  ------------------
  |  Branch (4940:9): [True: 207, False: 4.87k]
  ------------------
 4941|    207|            size = ogs_nas_5gs_decode_s_nssai(&pdu_session_release_command->alternative_s_nssai, pkbuf);
 4942|    207|            if (size < 0) {
  ------------------
  |  Branch (4942:17): [True: 1, False: 206]
  ------------------
 4943|      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__) 
  |  |  ------------------
  ------------------
 4944|      1|               return size;
 4945|      1|            }
 4946|       |
 4947|    206|            pdu_session_release_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ALTERNATIVE_S_NSSAI_PRESENT;
  ------------------
  |  | 1612|    206|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ALTERNATIVE_S_NSSAI_PRESENT ((uint64_t)1<<6)
  ------------------
 4948|    206|            decoded += size;
 4949|    206|            break;
 4950|  3.06k|        default:
  ------------------
  |  Branch (4950:9): [True: 3.06k, False: 2.02k]
  ------------------
 4951|  3.06k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  3.06k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  3.06k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  3.06k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  3.06k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  3.06k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  3.06k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4952|  3.06k|            break;
 4953|  5.08k|        }
 4954|  5.08k|    }
 4955|       |
 4956|    102|    return decoded;
 4957|    111|}
ogs_nas_5gs_decode_pdu_session_release_complete:
 4960|     56|{
 4961|     56|    ogs_nas_5gs_pdu_session_release_complete_t *pdu_session_release_complete = &message->gsm.pdu_session_release_complete;
 4962|     56|    int decoded = 0;
 4963|     56|    int size = 0;
 4964|       |
 4965|     56|    ogs_trace("[NAS] Decode PDU_SESSION_RELEASE_COMPLETE\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__) 
  |  |  ------------------
  ------------------
 4966|       |
 4967|  1.80k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4967:12): [True: 1.75k, False: 48]
  ------------------
 4968|  1.75k|        uint8_t *buffer = pkbuf->data;
 4969|  1.75k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4969:24): [True: 575, False: 1.18k]
  ------------------
 4970|       |
 4971|  1.75k|        size = sizeof(uint8_t);
 4972|  1.75k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4972:13): [True: 0, False: 1.75k]
  ------------------
 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|  1.75k|        decoded += size;
 4977|       |
 4978|  1.75k|        switch(type) {
 4979|    227|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_5GSM_CAUSE_TYPE:
  ------------------
  |  | 1642|    227|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_5GSM_CAUSE_TYPE 0x59
  ------------------
  |  Branch (4979:9): [True: 227, False: 1.53k]
  ------------------
 4980|    227|            size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_release_complete->gsm_cause, pkbuf);
 4981|    227|            if (size < 0) {
  ------------------
  |  Branch (4981:17): [True: 3, False: 224]
  ------------------
 4982|      3|               ogs_error("ogs_nas_5gs_decode_5gsm_cause() 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__) 
  |  |  ------------------
  ------------------
 4983|      3|               return size;
 4984|      3|            }
 4985|       |
 4986|    224|            pdu_session_release_complete->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_5GSM_CAUSE_PRESENT;
  ------------------
  |  | 1640|    224|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_5GSM_CAUSE_PRESENT ((uint64_t)1<<0)
  ------------------
 4987|    224|            decoded += size;
 4988|    224|            break;
 4989|    200|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1643|    200|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4989:9): [True: 200, False: 1.55k]
  ------------------
 4990|    200|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_release_complete->extended_protocol_configuration_options, pkbuf);
 4991|    200|            if (size < 0) {
  ------------------
  |  Branch (4991:17): [True: 5, False: 195]
  ------------------
 4992|      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__) 
  |  |  ------------------
  ------------------
 4993|      5|               return size;
 4994|      5|            }
 4995|       |
 4996|    195|            pdu_session_release_complete->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1641|    195|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<1)
  ------------------
 4997|    195|            decoded += size;
 4998|    195|            break;
 4999|  1.33k|        default:
  ------------------
  |  Branch (4999:9): [True: 1.33k, False: 427]
  ------------------
 5000|  1.33k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.33k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.33k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.33k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.33k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.33k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.33k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5001|  1.33k|            break;
 5002|  1.75k|        }
 5003|  1.75k|    }
 5004|       |
 5005|     48|    return decoded;
 5006|     56|}
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.80k|{
 5029|  4.80k|    int size = 0;
 5030|  4.80k|    int decoded = 0;
 5031|       |
 5032|  4.80k|    ogs_assert(pkbuf);
  ------------------
  |  |  113|  4.80k|    do { \
  |  |  114|  4.80k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  4.80k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 4.80k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  4.80k|        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.80k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 4.80k]
  |  |  ------------------
  ------------------
 5033|  4.80k|    ogs_assert(pkbuf->data);
  ------------------
  |  |  113|  4.80k|    do { \
  |  |  114|  4.80k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  4.80k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 4.80k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  4.80k|        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.80k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 4.80k]
  |  |  ------------------
  ------------------
 5034|       |
 5035|  4.80k|    size = sizeof(ogs_nas_5gmm_header_t);
 5036|  4.80k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5036:9): [True: 0, False: 4.80k]
  ------------------
 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.80k|    memset(message, 0, sizeof(ogs_nas_5gs_message_t));
 5042|  4.80k|    memcpy(&message->gmm.h, pkbuf->data - size, size);
 5043|  4.80k|    decoded += size;
 5044|       |
 5045|  4.80k|    switch(message->gmm.h.message_type) {
 5046|    640|    case OGS_NAS_5GS_REGISTRATION_REQUEST:
  ------------------
  |  |   71|    640|#define OGS_NAS_5GS_REGISTRATION_REQUEST 65
  ------------------
  |  Branch (5046:5): [True: 640, False: 4.16k]
  ------------------
 5047|    640|        size = ogs_nas_5gs_decode_registration_request(message, pkbuf);
 5048|    640|        if (size < 0) {
  ------------------
  |  Branch (5048:13): [True: 163, False: 477]
  ------------------
 5049|    163|           ogs_error("ogs_nas_5gs_decode_registration_request() failed");
  ------------------
  |  |   36|    163|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    163|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    163|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    163|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    163|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    163|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5050|    163|           return OGS_ERROR;
  ------------------
  |  |   78|    163|#define OGS_ERROR       -1
  ------------------
 5051|    163|        }
 5052|       |
 5053|    477|        decoded += size;
 5054|    477|        break;
 5055|    980|    case OGS_NAS_5GS_REGISTRATION_ACCEPT:
  ------------------
  |  |   72|    980|#define OGS_NAS_5GS_REGISTRATION_ACCEPT 66
  ------------------
  |  Branch (5055:5): [True: 980, False: 3.82k]
  ------------------
 5056|    980|        size = ogs_nas_5gs_decode_registration_accept(message, pkbuf);
 5057|    980|        if (size < 0) {
  ------------------
  |  Branch (5057:13): [True: 259, False: 721]
  ------------------
 5058|    259|           ogs_error("ogs_nas_5gs_decode_registration_accept() failed");
  ------------------
  |  |   36|    259|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 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__) 
  |  |  ------------------
  ------------------
 5059|    259|           return OGS_ERROR;
  ------------------
  |  |   78|    259|#define OGS_ERROR       -1
  ------------------
 5060|    259|        }
 5061|       |
 5062|    721|        decoded += size;
 5063|    721|        break;
 5064|     76|    case OGS_NAS_5GS_REGISTRATION_COMPLETE:
  ------------------
  |  |   73|     76|#define OGS_NAS_5GS_REGISTRATION_COMPLETE 67
  ------------------
  |  Branch (5064:5): [True: 76, False: 4.72k]
  ------------------
 5065|     76|        size = ogs_nas_5gs_decode_registration_complete(message, pkbuf);
 5066|     76|        if (size < 0) {
  ------------------
  |  Branch (5066:13): [True: 22, False: 54]
  ------------------
 5067|     22|           ogs_error("ogs_nas_5gs_decode_registration_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__) 
  |  |  ------------------
  ------------------
 5068|     22|           return OGS_ERROR;
  ------------------
  |  |   78|     22|#define OGS_ERROR       -1
  ------------------
 5069|     22|        }
 5070|       |
 5071|     54|        decoded += size;
 5072|     54|        break;
 5073|    220|    case OGS_NAS_5GS_REGISTRATION_REJECT:
  ------------------
  |  |   74|    220|#define OGS_NAS_5GS_REGISTRATION_REJECT 68
  ------------------
  |  Branch (5073:5): [True: 220, False: 4.58k]
  ------------------
 5074|    220|        size = ogs_nas_5gs_decode_registration_reject(message, pkbuf);
 5075|    220|        if (size < 0) {
  ------------------
  |  Branch (5075:13): [True: 45, False: 175]
  ------------------
 5076|     45|           ogs_error("ogs_nas_5gs_decode_registration_reject() failed");
  ------------------
  |  |   36|     45|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     45|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     45|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     45|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     45|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     45|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5077|     45|           return OGS_ERROR;
  ------------------
  |  |   78|     45|#define OGS_ERROR       -1
  ------------------
 5078|     45|        }
 5079|       |
 5080|    175|        decoded += size;
 5081|    175|        break;
 5082|     56|    case OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE:
  ------------------
  |  |   75|     56|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE 69
  ------------------
  |  Branch (5082:5): [True: 56, False: 4.74k]
  ------------------
 5083|     56|        size = ogs_nas_5gs_decode_deregistration_request_from_ue(message, pkbuf);
 5084|     56|        if (size < 0) {
  ------------------
  |  Branch (5084:13): [True: 4, False: 52]
  ------------------
 5085|      4|           ogs_error("ogs_nas_5gs_decode_deregistration_request_from_ue() 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__) 
  |  |  ------------------
  ------------------
 5086|      4|           return OGS_ERROR;
  ------------------
  |  |   78|      4|#define OGS_ERROR       -1
  ------------------
 5087|      4|        }
 5088|       |
 5089|     52|        decoded += size;
 5090|     52|        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.80k]
  ------------------
 5092|      1|        break;
 5093|    178|    case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE:
  ------------------
  |  |   77|    178|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE 71
  ------------------
  |  Branch (5093:5): [True: 178, False: 4.62k]
  ------------------
 5094|    178|        size = ogs_nas_5gs_decode_deregistration_request_to_ue(message, pkbuf);
 5095|    178|        if (size < 0) {
  ------------------
  |  Branch (5095:13): [True: 28, False: 150]
  ------------------
 5096|     28|           ogs_error("ogs_nas_5gs_decode_deregistration_request_to_ue() failed");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 5097|     28|           return OGS_ERROR;
  ------------------
  |  |   78|     28|#define OGS_ERROR       -1
  ------------------
 5098|     28|        }
 5099|       |
 5100|    150|        decoded += size;
 5101|    150|        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.80k]
  ------------------
 5103|      1|        break;
 5104|    118|    case OGS_NAS_5GS_SERVICE_REQUEST:
  ------------------
  |  |   79|    118|#define OGS_NAS_5GS_SERVICE_REQUEST 76
  ------------------
  |  Branch (5104:5): [True: 118, False: 4.68k]
  ------------------
 5105|    118|        size = ogs_nas_5gs_decode_service_request(message, pkbuf);
 5106|    118|        if (size < 0) {
  ------------------
  |  Branch (5106:13): [True: 19, False: 99]
  ------------------
 5107|     19|           ogs_error("ogs_nas_5gs_decode_service_request() 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__) 
  |  |  ------------------
  ------------------
 5108|     19|           return OGS_ERROR;
  ------------------
  |  |   78|     19|#define OGS_ERROR       -1
  ------------------
 5109|     19|        }
 5110|       |
 5111|     99|        decoded += size;
 5112|     99|        break;
 5113|    162|    case OGS_NAS_5GS_SERVICE_REJECT:
  ------------------
  |  |   80|    162|#define OGS_NAS_5GS_SERVICE_REJECT 77
  ------------------
  |  Branch (5113:5): [True: 162, False: 4.64k]
  ------------------
 5114|    162|        size = ogs_nas_5gs_decode_service_reject(message, pkbuf);
 5115|    162|        if (size < 0) {
  ------------------
  |  Branch (5115:13): [True: 19, False: 143]
  ------------------
 5116|     19|           ogs_error("ogs_nas_5gs_decode_service_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__) 
  |  |  ------------------
  ------------------
 5117|     19|           return OGS_ERROR;
  ------------------
  |  |   78|     19|#define OGS_ERROR       -1
  ------------------
 5118|     19|        }
 5119|       |
 5120|    143|        decoded += size;
 5121|    143|        break;
 5122|    181|    case OGS_NAS_5GS_SERVICE_ACCEPT:
  ------------------
  |  |   81|    181|#define OGS_NAS_5GS_SERVICE_ACCEPT 78
  ------------------
  |  Branch (5122:5): [True: 181, False: 4.62k]
  ------------------
 5123|    181|        size = ogs_nas_5gs_decode_service_accept(message, pkbuf);
 5124|    181|        if (size < 0) {
  ------------------
  |  Branch (5124:13): [True: 53, False: 128]
  ------------------
 5125|     53|           ogs_error("ogs_nas_5gs_decode_service_accept() failed");
  ------------------
  |  |   36|     53|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     53|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     53|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     53|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     53|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     53|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5126|     53|           return OGS_ERROR;
  ------------------
  |  |   78|     53|#define OGS_ERROR       -1
  ------------------
 5127|     53|        }
 5128|       |
 5129|    128|        decoded += size;
 5130|    128|        break;
 5131|  1.07k|    case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND:
  ------------------
  |  |   82|  1.07k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND 84
  ------------------
  |  Branch (5131:5): [True: 1.07k, False: 3.73k]
  ------------------
 5132|  1.07k|        size = ogs_nas_5gs_decode_configuration_update_command(message, pkbuf);
 5133|  1.07k|        if (size < 0) {
  ------------------
  |  Branch (5133:13): [True: 334, False: 739]
  ------------------
 5134|    334|           ogs_error("ogs_nas_5gs_decode_configuration_update_command() failed");
  ------------------
  |  |   36|    334|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    334|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    334|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    334|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    334|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    334|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5135|    334|           return OGS_ERROR;
  ------------------
  |  |   78|    334|#define OGS_ERROR       -1
  ------------------
 5136|    334|        }
 5137|       |
 5138|    739|        decoded += size;
 5139|    739|        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.80k]
  ------------------
 5141|      1|        break;
 5142|    109|    case OGS_NAS_5GS_AUTHENTICATION_REQUEST:
  ------------------
  |  |   84|    109|#define OGS_NAS_5GS_AUTHENTICATION_REQUEST 86
  ------------------
  |  Branch (5142:5): [True: 109, False: 4.69k]
  ------------------
 5143|    109|        size = ogs_nas_5gs_decode_authentication_request(message, pkbuf);
 5144|    109|        if (size < 0) {
  ------------------
  |  Branch (5144:13): [True: 29, False: 80]
  ------------------
 5145|     29|           ogs_error("ogs_nas_5gs_decode_authentication_request() failed");
  ------------------
  |  |   36|     29|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     29|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     29|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     29|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     29|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     29|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5146|     29|           return OGS_ERROR;
  ------------------
  |  |   78|     29|#define OGS_ERROR       -1
  ------------------
 5147|     29|        }
 5148|       |
 5149|     80|        decoded += size;
 5150|     80|        break;
 5151|     69|    case OGS_NAS_5GS_AUTHENTICATION_RESPONSE:
  ------------------
  |  |   85|     69|#define OGS_NAS_5GS_AUTHENTICATION_RESPONSE 87
  ------------------
  |  Branch (5151:5): [True: 69, False: 4.73k]
  ------------------
 5152|     69|        size = ogs_nas_5gs_decode_authentication_response(message, pkbuf);
 5153|     69|        if (size < 0) {
  ------------------
  |  Branch (5153:13): [True: 7, False: 62]
  ------------------
 5154|      7|           ogs_error("ogs_nas_5gs_decode_authentication_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__) 
  |  |  ------------------
  ------------------
 5155|      7|           return OGS_ERROR;
  ------------------
  |  |   78|      7|#define OGS_ERROR       -1
  ------------------
 5156|      7|        }
 5157|       |
 5158|     62|        decoded += size;
 5159|     62|        break;
 5160|     55|    case OGS_NAS_5GS_AUTHENTICATION_REJECT:
  ------------------
  |  |   86|     55|#define OGS_NAS_5GS_AUTHENTICATION_REJECT 88
  ------------------
  |  Branch (5160:5): [True: 55, False: 4.74k]
  ------------------
 5161|     55|        size = ogs_nas_5gs_decode_authentication_reject(message, pkbuf);
 5162|     55|        if (size < 0) {
  ------------------
  |  Branch (5162:13): [True: 3, False: 52]
  ------------------
 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|     52|        decoded += size;
 5168|     52|        break;
 5169|     52|    case OGS_NAS_5GS_AUTHENTICATION_FAILURE:
  ------------------
  |  |   87|     52|#define OGS_NAS_5GS_AUTHENTICATION_FAILURE 89
  ------------------
  |  Branch (5169:5): [True: 52, False: 4.75k]
  ------------------
 5170|     52|        size = ogs_nas_5gs_decode_authentication_failure(message, pkbuf);
 5171|     52|        if (size < 0) {
  ------------------
  |  Branch (5171:13): [True: 4, False: 48]
  ------------------
 5172|      4|           ogs_error("ogs_nas_5gs_decode_authentication_failure() 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__) 
  |  |  ------------------
  ------------------
 5173|      4|           return OGS_ERROR;
  ------------------
  |  |   78|      4|#define OGS_ERROR       -1
  ------------------
 5174|      4|        }
 5175|       |
 5176|     48|        decoded += size;
 5177|     48|        break;
 5178|     73|    case OGS_NAS_5GS_AUTHENTICATION_RESULT:
  ------------------
  |  |   88|     73|#define OGS_NAS_5GS_AUTHENTICATION_RESULT 90
  ------------------
  |  Branch (5178:5): [True: 73, False: 4.73k]
  ------------------
 5179|     73|        size = ogs_nas_5gs_decode_authentication_result(message, pkbuf);
 5180|     73|        if (size < 0) {
  ------------------
  |  Branch (5180:13): [True: 16, False: 57]
  ------------------
 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|     57|        decoded += size;
 5186|     57|        break;
 5187|      2|    case OGS_NAS_5GS_IDENTITY_REQUEST:
  ------------------
  |  |   89|      2|#define OGS_NAS_5GS_IDENTITY_REQUEST 91
  ------------------
  |  Branch (5187:5): [True: 2, False: 4.80k]
  ------------------
 5188|      2|        size = ogs_nas_5gs_decode_identity_request(message, pkbuf);
 5189|      2|        if (size < 0) {
  ------------------
  |  Branch (5189:13): [True: 0, False: 2]
  ------------------
 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|      2|        decoded += size;
 5195|      2|        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.78k]
  ------------------
 5197|     22|        size = ogs_nas_5gs_decode_identity_response(message, pkbuf);
 5198|     22|        if (size < 0) {
  ------------------
  |  Branch (5198:13): [True: 18, False: 4]
  ------------------
 5199|     18|           ogs_error("ogs_nas_5gs_decode_identity_response() 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__) 
  |  |  ------------------
  ------------------
 5200|     18|           return OGS_ERROR;
  ------------------
  |  |   78|     18|#define OGS_ERROR       -1
  ------------------
 5201|     18|        }
 5202|       |
 5203|      4|        decoded += size;
 5204|      4|        break;
 5205|    146|    case OGS_NAS_5GS_SECURITY_MODE_COMMAND:
  ------------------
  |  |   91|    146|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND 93
  ------------------
  |  Branch (5205:5): [True: 146, False: 4.65k]
  ------------------
 5206|    146|        size = ogs_nas_5gs_decode_security_mode_command(message, pkbuf);
 5207|    146|        if (size < 0) {
  ------------------
  |  Branch (5207:13): [True: 30, False: 116]
  ------------------
 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|    116|        decoded += size;
 5213|    116|        break;
 5214|    101|    case OGS_NAS_5GS_SECURITY_MODE_COMPLETE:
  ------------------
  |  |   92|    101|#define OGS_NAS_5GS_SECURITY_MODE_COMPLETE 94
  ------------------
  |  Branch (5214:5): [True: 101, False: 4.70k]
  ------------------
 5215|    101|        size = ogs_nas_5gs_decode_security_mode_complete(message, pkbuf);
 5216|    101|        if (size < 0) {
  ------------------
  |  Branch (5216:13): [True: 31, False: 70]
  ------------------
 5217|     31|           ogs_error("ogs_nas_5gs_decode_security_mode_complete() 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__) 
  |  |  ------------------
  ------------------
 5218|     31|           return OGS_ERROR;
  ------------------
  |  |   78|     31|#define OGS_ERROR       -1
  ------------------
 5219|     31|        }
 5220|       |
 5221|     70|        decoded += size;
 5222|     70|        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.80k]
  ------------------
 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.80k]
  ------------------
 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|      6|    case OGS_NAS_5GS_NOTIFICATION:
  ------------------
  |  |   95|      6|#define OGS_NAS_5GS_NOTIFICATION 101
  ------------------
  |  Branch (5241:5): [True: 6, False: 4.79k]
  ------------------
 5242|      6|        size = ogs_nas_5gs_decode_notification(message, pkbuf);
 5243|      6|        if (size < 0) {
  ------------------
  |  Branch (5243:13): [True: 0, False: 6]
  ------------------
 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|      6|        decoded += size;
 5249|      6|        break;
 5250|     61|    case OGS_NAS_5GS_NOTIFICATION_RESPONSE:
  ------------------
  |  |   96|     61|#define OGS_NAS_5GS_NOTIFICATION_RESPONSE 102
  ------------------
  |  Branch (5250:5): [True: 61, False: 4.74k]
  ------------------
 5251|     61|        size = ogs_nas_5gs_decode_notification_response(message, pkbuf);
 5252|     61|        if (size < 0) {
  ------------------
  |  Branch (5252:13): [True: 6, False: 55]
  ------------------
 5253|      6|           ogs_error("ogs_nas_5gs_decode_notification_response() 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__) 
  |  |  ------------------
  ------------------
 5254|      6|           return OGS_ERROR;
  ------------------
  |  |   78|      6|#define OGS_ERROR       -1
  ------------------
 5255|      6|        }
 5256|       |
 5257|     55|        decoded += size;
 5258|     55|        break;
 5259|    306|    case OGS_NAS_5GS_UL_NAS_TRANSPORT:
  ------------------
  |  |   97|    306|#define OGS_NAS_5GS_UL_NAS_TRANSPORT 103
  ------------------
  |  Branch (5259:5): [True: 306, False: 4.49k]
  ------------------
 5260|    306|        size = ogs_nas_5gs_decode_ul_nas_transport(message, pkbuf);
 5261|    306|        if (size < 0) {
  ------------------
  |  Branch (5261:13): [True: 30, False: 276]
  ------------------
 5262|     30|           ogs_error("ogs_nas_5gs_decode_ul_nas_transport() 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__) 
  |  |  ------------------
  ------------------
 5263|     30|           return OGS_ERROR;
  ------------------
  |  |   78|     30|#define OGS_ERROR       -1
  ------------------
 5264|     30|        }
 5265|       |
 5266|    276|        decoded += size;
 5267|    276|        break;
 5268|    111|    case OGS_NAS_5GS_DL_NAS_TRANSPORT:
  ------------------
  |  |   98|    111|#define OGS_NAS_5GS_DL_NAS_TRANSPORT 104
  ------------------
  |  Branch (5268:5): [True: 111, False: 4.69k]
  ------------------
 5269|    111|        size = ogs_nas_5gs_decode_dl_nas_transport(message, pkbuf);
 5270|    111|        if (size < 0) {
  ------------------
  |  Branch (5270:13): [True: 24, False: 87]
  ------------------
 5271|     24|           ogs_error("ogs_nas_5gs_decode_dl_nas_transport() 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__) 
  |  |  ------------------
  ------------------
 5272|     24|           return OGS_ERROR;
  ------------------
  |  |   78|     24|#define OGS_ERROR       -1
  ------------------
 5273|     24|        }
 5274|       |
 5275|     87|        decoded += size;
 5276|     87|        break;
 5277|      1|    default:
  ------------------
  |  Branch (5277:5): [True: 1, False: 4.80k]
  ------------------
 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.80k|    }
 5282|       |
 5283|  3.65k|    ogs_assert(ogs_pkbuf_push(pkbuf, decoded));
  ------------------
  |  |  113|  3.65k|    do { \
  |  |  114|  3.65k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  3.65k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 3.65k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  3.65k|        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.65k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 3.65k]
  |  |  ------------------
  ------------------
 5284|       |
 5285|  3.65k|    return OGS_OK;
  ------------------
  |  |   77|  3.65k|#define OGS_OK           0
  ------------------
 5286|  3.65k|}
ogs_nas_5gsm_decode:
 5288|  2.25k|{
 5289|  2.25k|    int size = 0;
 5290|  2.25k|    int decoded = 0;
 5291|       |
 5292|  2.25k|    ogs_assert(pkbuf);
  ------------------
  |  |  113|  2.25k|    do { \
  |  |  114|  2.25k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  2.25k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 2.25k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  2.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|  2.25k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 2.25k]
  |  |  ------------------
  ------------------
 5293|  2.25k|    ogs_assert(pkbuf->data);
  ------------------
  |  |  113|  2.25k|    do { \
  |  |  114|  2.25k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  2.25k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 2.25k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  2.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|  2.25k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 2.25k]
  |  |  ------------------
  ------------------
 5294|       |
 5295|  2.25k|    size = sizeof(ogs_nas_5gsm_header_t);
 5296|  2.25k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5296:9): [True: 0, False: 2.25k]
  ------------------
 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.25k|    memset(message, 0, sizeof(ogs_nas_5gs_message_t));
 5302|  2.25k|    memcpy(&message->gsm.h, pkbuf->data - size, size);
 5303|  2.25k|    decoded += size;
 5304|       |
 5305|  2.25k|    switch(message->gsm.h.message_type) {
 5306|    262|    case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST:
  ------------------
  |  |   99|    262|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST 193
  ------------------
  |  Branch (5306:5): [True: 262, False: 1.99k]
  ------------------
 5307|    262|        size = ogs_nas_5gs_decode_pdu_session_establishment_request(message, pkbuf);
 5308|    262|        if (size < 0) {
  ------------------
  |  Branch (5308:13): [True: 43, False: 219]
  ------------------
 5309|     43|           ogs_error("ogs_nas_5gs_decode_pdu_session_establishment_request() failed");
  ------------------
  |  |   36|     43|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     43|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     43|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     43|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     43|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     43|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5310|     43|           return OGS_ERROR;
  ------------------
  |  |   78|     43|#define OGS_ERROR       -1
  ------------------
 5311|     43|        }
 5312|       |
 5313|    219|        decoded += size;
 5314|    219|        break;
 5315|    328|    case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT:
  ------------------
  |  |  100|    328|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT 194
  ------------------
  |  Branch (5315:5): [True: 328, False: 1.92k]
  ------------------
 5316|    328|        size = ogs_nas_5gs_decode_pdu_session_establishment_accept(message, pkbuf);
 5317|    328|        if (size < 0) {
  ------------------
  |  Branch (5317:13): [True: 68, False: 260]
  ------------------
 5318|     68|           ogs_error("ogs_nas_5gs_decode_pdu_session_establishment_accept() failed");
  ------------------
  |  |   36|     68|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 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__) 
  |  |  ------------------
  ------------------
 5319|     68|           return OGS_ERROR;
  ------------------
  |  |   78|     68|#define OGS_ERROR       -1
  ------------------
 5320|     68|        }
 5321|       |
 5322|    260|        decoded += size;
 5323|    260|        break;
 5324|    138|    case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT:
  ------------------
  |  |  101|    138|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT 195
  ------------------
  |  Branch (5324:5): [True: 138, False: 2.11k]
  ------------------
 5325|    138|        size = ogs_nas_5gs_decode_pdu_session_establishment_reject(message, pkbuf);
 5326|    138|        if (size < 0) {
  ------------------
  |  Branch (5326:13): [True: 23, False: 115]
  ------------------
 5327|     23|           ogs_error("ogs_nas_5gs_decode_pdu_session_establishment_reject() 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__) 
  |  |  ------------------
  ------------------
 5328|     23|           return OGS_ERROR;
  ------------------
  |  |   78|     23|#define OGS_ERROR       -1
  ------------------
 5329|     23|        }
 5330|       |
 5331|    115|        decoded += size;
 5332|    115|        break;
 5333|     59|    case OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMMAND:
  ------------------
  |  |  102|     59|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMMAND 197
  ------------------
  |  Branch (5333:5): [True: 59, False: 2.19k]
  ------------------
 5334|     59|        size = ogs_nas_5gs_decode_pdu_session_authentication_command(message, pkbuf);
 5335|     59|        if (size < 0) {
  ------------------
  |  Branch (5335:13): [True: 10, False: 49]
  ------------------
 5336|     10|           ogs_error("ogs_nas_5gs_decode_pdu_session_authentication_command() 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__) 
  |  |  ------------------
  ------------------
 5337|     10|           return OGS_ERROR;
  ------------------
  |  |   78|     10|#define OGS_ERROR       -1
  ------------------
 5338|     10|        }
 5339|       |
 5340|     49|        decoded += size;
 5341|     49|        break;
 5342|     65|    case OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMPLETE:
  ------------------
  |  |  103|     65|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMPLETE 198
  ------------------
  |  Branch (5342:5): [True: 65, False: 2.19k]
  ------------------
 5343|     65|        size = ogs_nas_5gs_decode_pdu_session_authentication_complete(message, pkbuf);
 5344|     65|        if (size < 0) {
  ------------------
  |  Branch (5344:13): [True: 5, False: 60]
  ------------------
 5345|      5|           ogs_error("ogs_nas_5gs_decode_pdu_session_authentication_complete() 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__) 
  |  |  ------------------
  ------------------
 5346|      5|           return OGS_ERROR;
  ------------------
  |  |   78|      5|#define OGS_ERROR       -1
  ------------------
 5347|      5|        }
 5348|       |
 5349|     60|        decoded += size;
 5350|     60|        break;
 5351|     55|    case OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT:
  ------------------
  |  |  104|     55|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT 199
  ------------------
  |  Branch (5351:5): [True: 55, False: 2.20k]
  ------------------
 5352|     55|        size = ogs_nas_5gs_decode_pdu_session_authentication_result(message, pkbuf);
 5353|     55|        if (size < 0) {
  ------------------
  |  Branch (5353:13): [True: 5, False: 50]
  ------------------
 5354|      5|           ogs_error("ogs_nas_5gs_decode_pdu_session_authentication_result() 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__) 
  |  |  ------------------
  ------------------
 5355|      5|           return OGS_ERROR;
  ------------------
  |  |   78|      5|#define OGS_ERROR       -1
  ------------------
 5356|      5|        }
 5357|       |
 5358|     50|        decoded += size;
 5359|     50|        break;
 5360|    423|    case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST:
  ------------------
  |  |  105|    423|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST 201
  ------------------
  |  Branch (5360:5): [True: 423, False: 1.83k]
  ------------------
 5361|    423|        size = ogs_nas_5gs_decode_pdu_session_modification_request(message, pkbuf);
 5362|    423|        if (size < 0) {
  ------------------
  |  Branch (5362:13): [True: 174, False: 249]
  ------------------
 5363|    174|           ogs_error("ogs_nas_5gs_decode_pdu_session_modification_request() failed");
  ------------------
  |  |   36|    174|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    174|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    174|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    174|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    174|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    174|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5364|    174|           return OGS_ERROR;
  ------------------
  |  |   78|    174|#define OGS_ERROR       -1
  ------------------
 5365|    174|        }
 5366|       |
 5367|    249|        decoded += size;
 5368|    249|        break;
 5369|     86|    case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT:
  ------------------
  |  |  106|     86|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT 202
  ------------------
  |  Branch (5369:5): [True: 86, False: 2.16k]
  ------------------
 5370|     86|        size = ogs_nas_5gs_decode_pdu_session_modification_reject(message, pkbuf);
 5371|     86|        if (size < 0) {
  ------------------
  |  Branch (5371:13): [True: 12, False: 74]
  ------------------
 5372|     12|           ogs_error("ogs_nas_5gs_decode_pdu_session_modification_reject() 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__) 
  |  |  ------------------
  ------------------
 5373|     12|           return OGS_ERROR;
  ------------------
  |  |   78|     12|#define OGS_ERROR       -1
  ------------------
 5374|     12|        }
 5375|       |
 5376|     74|        decoded += size;
 5377|     74|        break;
 5378|    426|    case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND:
  ------------------
  |  |  107|    426|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND 203
  ------------------
  |  Branch (5378:5): [True: 426, False: 1.82k]
  ------------------
 5379|    426|        size = ogs_nas_5gs_decode_pdu_session_modification_command(message, pkbuf);
 5380|    426|        if (size < 0) {
  ------------------
  |  Branch (5380:13): [True: 165, False: 261]
  ------------------
 5381|    165|           ogs_error("ogs_nas_5gs_decode_pdu_session_modification_command() failed");
  ------------------
  |  |   36|    165|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    165|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    165|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    165|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    165|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    165|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5382|    165|           return OGS_ERROR;
  ------------------
  |  |   78|    165|#define OGS_ERROR       -1
  ------------------
 5383|    165|        }
 5384|       |
 5385|    261|        decoded += size;
 5386|    261|        break;
 5387|     75|    case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE:
  ------------------
  |  |  108|     75|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE 204
  ------------------
  |  Branch (5387:5): [True: 75, False: 2.18k]
  ------------------
 5388|     75|        size = ogs_nas_5gs_decode_pdu_session_modification_complete(message, pkbuf);
 5389|     75|        if (size < 0) {
  ------------------
  |  Branch (5389:13): [True: 17, False: 58]
  ------------------
 5390|     17|           ogs_error("ogs_nas_5gs_decode_pdu_session_modification_complete() 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__) 
  |  |  ------------------
  ------------------
 5391|     17|           return OGS_ERROR;
  ------------------
  |  |   78|     17|#define OGS_ERROR       -1
  ------------------
 5392|     17|        }
 5393|       |
 5394|     58|        decoded += size;
 5395|     58|        break;
 5396|     50|    case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_REJECT:
  ------------------
  |  |  109|     50|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_REJECT 205
  ------------------
  |  Branch (5396:5): [True: 50, False: 2.20k]
  ------------------
 5397|     50|        size = ogs_nas_5gs_decode_pdu_session_modification_command_reject(message, pkbuf);
 5398|     50|        if (size < 0) {
  ------------------
  |  Branch (5398:13): [True: 2, False: 48]
  ------------------
 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|     48|        decoded += size;
 5404|     48|        break;
 5405|     59|    case OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST:
  ------------------
  |  |  110|     59|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST 209
  ------------------
  |  Branch (5405:5): [True: 59, False: 2.19k]
  ------------------
 5406|     59|        size = ogs_nas_5gs_decode_pdu_session_release_request(message, pkbuf);
 5407|     59|        if (size < 0) {
  ------------------
  |  Branch (5407:13): [True: 9, False: 50]
  ------------------
 5408|      9|           ogs_error("ogs_nas_5gs_decode_pdu_session_release_request() 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__) 
  |  |  ------------------
  ------------------
 5409|      9|           return OGS_ERROR;
  ------------------
  |  |   78|      9|#define OGS_ERROR       -1
  ------------------
 5410|      9|        }
 5411|       |
 5412|     50|        decoded += size;
 5413|     50|        break;
 5414|     58|    case OGS_NAS_5GS_PDU_SESSION_RELEASE_REJECT:
  ------------------
  |  |  111|     58|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REJECT 210
  ------------------
  |  Branch (5414:5): [True: 58, False: 2.19k]
  ------------------
 5415|     58|        size = ogs_nas_5gs_decode_pdu_session_release_reject(message, pkbuf);
 5416|     58|        if (size < 0) {
  ------------------
  |  Branch (5416:13): [True: 2, False: 56]
  ------------------
 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|     56|        decoded += size;
 5422|     56|        break;
 5423|    112|    case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND:
  ------------------
  |  |  112|    112|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND 211
  ------------------
  |  Branch (5423:5): [True: 112, False: 2.14k]
  ------------------
 5424|    112|        size = ogs_nas_5gs_decode_pdu_session_release_command(message, pkbuf);
 5425|    112|        if (size < 0) {
  ------------------
  |  Branch (5425:13): [True: 10, False: 102]
  ------------------
 5426|     10|           ogs_error("ogs_nas_5gs_decode_pdu_session_release_command() 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__) 
  |  |  ------------------
  ------------------
 5427|     10|           return OGS_ERROR;
  ------------------
  |  |   78|     10|#define OGS_ERROR       -1
  ------------------
 5428|     10|        }
 5429|       |
 5430|    102|        decoded += size;
 5431|    102|        break;
 5432|     56|    case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE:
  ------------------
  |  |  113|     56|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE 212
  ------------------
  |  Branch (5432:5): [True: 56, False: 2.19k]
  ------------------
 5433|     56|        size = ogs_nas_5gs_decode_pdu_session_release_complete(message, pkbuf);
 5434|     56|        if (size < 0) {
  ------------------
  |  Branch (5434:13): [True: 8, False: 48]
  ------------------
 5435|      8|           ogs_error("ogs_nas_5gs_decode_pdu_session_release_complete() 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__) 
  |  |  ------------------
  ------------------
 5436|      8|           return OGS_ERROR;
  ------------------
  |  |   78|      8|#define OGS_ERROR       -1
  ------------------
 5437|      8|        }
 5438|       |
 5439|     48|        decoded += size;
 5440|     48|        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.25k]
  ------------------
 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.25k]
  ------------------
 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.25k|    }
 5455|       |
 5456|  1.70k|    ogs_assert(ogs_pkbuf_push(pkbuf, decoded));
  ------------------
  |  |  113|  1.70k|    do { \
  |  |  114|  1.70k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.70k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.70k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.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|  1.70k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.70k]
  |  |  ------------------
  ------------------
 5457|       |
 5458|  1.70k|    return OGS_OK;
  ------------------
  |  |   77|  1.70k|#define OGS_OK           0
  ------------------
 5459|  1.70k|}

ogs_nas_5gs_decode_additional_information:
   49|    418|{
   50|    418|    int size = 0;
   51|    418|    ogs_nas_additional_information_t *source = NULL;
   52|       |
   53|    418|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (53:9): [True: 2, False: 416]
  ------------------
   54|      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__) 
  |  |  ------------------
  ------------------
   55|      2|       return -1;
   56|      2|    }
   57|       |
   58|    416|    source = (ogs_nas_additional_information_t *)pkbuf->data;
   59|       |
   60|    416|    additional_information->length = source->length;
   61|    416|    size = additional_information->length + sizeof(additional_information->length);
   62|       |
   63|    416|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (63:9): [True: 1, False: 415]
  ------------------
   64|      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__) 
  |  |  ------------------
  ------------------
   65|      1|       return -1;
   66|      1|    }
   67|       |
   68|    415|    if (sizeof(*additional_information) < size) return -1;
  ------------------
  |  Branch (68:9): [True: 0, False: 415]
  ------------------
   69|    415|    memcpy(additional_information, pkbuf->data - size, size);
   70|       |
   71|    415|    ogs_trace("  ADDITIONAL_INFORMATION - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
   72|    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
  |  |  ------------------
  ------------------
   73|       |
   74|    415|    return size;
   75|    415|}
ogs_nas_5gs_decode_service_level_aa_container:
   95|  2.09k|{
   96|  2.09k|    int size = 0;
   97|  2.09k|    ogs_nas_service_level_aa_container_t *source = NULL;
   98|       |
   99|  2.09k|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (99:9): [True: 11, False: 2.08k]
  ------------------
  100|     11|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  101|     11|       return -1;
  102|     11|    }
  103|       |
  104|  2.08k|    source = (ogs_nas_service_level_aa_container_t *)pkbuf->data;
  105|       |
  106|  2.08k|    service_level_aa_container->length = be16toh(source->length);
  107|  2.08k|    size = service_level_aa_container->length + sizeof(service_level_aa_container->length);
  108|       |
  109|  2.08k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (109:9): [True: 24, False: 2.05k]
  ------------------
  110|     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__) 
  |  |  ------------------
  ------------------
  111|     24|       return -1;
  112|     24|    }
  113|       |
  114|  2.05k|    service_level_aa_container->buffer = pkbuf->data - size + sizeof(service_level_aa_container->length);
  115|       |
  116|  2.05k|    ogs_trace("  SERVICE_LEVEL_AA_CONTAINER - ");
  ------------------
  |  |   40|  2.05k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.05k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.05k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.05k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.05k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.05k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  117|  2.05k|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)service_level_aa_container->buffer, service_level_aa_container->length);
  ------------------
  |  |   53|  2.05k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  2.05k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  118|       |
  119|  2.05k|    return size;
  120|  2.08k|}
ogs_nas_5gs_decode_access_type:
  148|    797|{
  149|    797|    int size = sizeof(ogs_nas_access_type_t);
  150|       |
  151|    797|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (151:9): [True: 0, False: 797]
  ------------------
  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|    797|    memcpy(access_type, pkbuf->data - size, size);
  157|       |
  158|    797|    ogs_trace("  ACCESS_TYPE - ");
  ------------------
  |  |   40|    797|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    797|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    797|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    797|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    797|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    797|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  159|    797|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    797|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    797|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  160|       |
  161|    797|    return size;
  162|    797|}
ogs_nas_5gs_decode_dnn:
  182|  1.50k|{
  183|  1.50k|    int size = 0;
  184|  1.50k|    ogs_nas_dnn_t *source = NULL;
  185|       |
  186|  1.50k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (186:9): [True: 2, False: 1.50k]
  ------------------
  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.50k|    source = (ogs_nas_dnn_t *)pkbuf->data;
  192|       |
  193|  1.50k|    dnn->length = source->length;
  194|  1.50k|    size = dnn->length + sizeof(dnn->length);
  195|       |
  196|  1.50k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (196:9): [True: 8, False: 1.49k]
  ------------------
  197|      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__) 
  |  |  ------------------
  ------------------
  198|      8|       return -1;
  199|      8|    }
  200|       |
  201|  1.49k|    if (sizeof(*dnn) < size) return -1;
  ------------------
  |  Branch (201:9): [True: 1, False: 1.49k]
  ------------------
  202|  1.49k|    memcpy(dnn, pkbuf->data - size, size);
  203|       |
  204|  1.49k|    {
  205|  1.49k|        char data_network_name[OGS_MAX_DNN_LEN+1];
  206|  1.49k|        int parsed = ogs_fqdn_parse(data_network_name, dnn->value, ogs_min(dnn->length, OGS_MAX_DNN_LEN));
  ------------------
  |  |  179|  1.49k|#define ogs_min(x , y)  (((x) < (y)) ? (x) : (y))
  |  |  ------------------
  |  |  |  Branch (179:26): [True: 1.47k, False: 21]
  |  |  ------------------
  ------------------
  207|  1.49k|        if (parsed > 0) {
  ------------------
  |  Branch (207:13): [True: 621, False: 875]
  ------------------
  208|    621|            dnn->length = parsed;
  209|    621|            ogs_cpystrn(dnn->value, data_network_name, ogs_min(dnn->length, OGS_MAX_DNN_LEN)+1);
  ------------------
  |  |  179|    621|#define ogs_min(x , y)  (((x) < (y)) ? (x) : (y))
  |  |  ------------------
  |  |  |  Branch (179:26): [True: 621, False: 0]
  |  |  ------------------
  ------------------
  210|    875|        } else {
  211|    875|            ogs_error("UE not APN setting");
  ------------------
  |  |   36|    875|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    875|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    875|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    875|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    875|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    875|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  212|    875|        }
  213|  1.49k|    }
  214|       |
  215|  1.49k|    ogs_trace("  DNN - ");
  ------------------
  |  |   40|  1.49k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.49k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.49k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.49k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.49k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.49k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  216|  1.49k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.49k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.49k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  217|       |
  218|  1.49k|    return size;
  219|  1.49k|}
ogs_nas_5gs_decode_eap_message:
  242|  2.64k|{
  243|  2.64k|    int size = 0;
  244|  2.64k|    ogs_nas_eap_message_t *source = NULL;
  245|       |
  246|  2.64k|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (246:9): [True: 20, False: 2.62k]
  ------------------
  247|     20|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  248|     20|       return -1;
  249|     20|    }
  250|       |
  251|  2.62k|    source = (ogs_nas_eap_message_t *)pkbuf->data;
  252|       |
  253|  2.62k|    eap_message->length = be16toh(source->length);
  254|  2.62k|    size = eap_message->length + sizeof(eap_message->length);
  255|       |
  256|  2.62k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (256:9): [True: 23, False: 2.60k]
  ------------------
  257|     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__) 
  |  |  ------------------
  ------------------
  258|     23|       return -1;
  259|     23|    }
  260|       |
  261|  2.60k|    eap_message->buffer = pkbuf->data - size + sizeof(eap_message->length);
  262|       |
  263|  2.60k|    ogs_trace("  EAP_MESSAGE - ");
  ------------------
  |  |   40|  2.60k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 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__) 
  |  |  ------------------
  ------------------
  264|  2.60k|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)eap_message->buffer, eap_message->length);
  ------------------
  |  |   53|  2.60k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  2.60k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  265|       |
  266|  2.60k|    return size;
  267|  2.62k|}
ogs_nas_5gs_decode_unavailability_information:
  295|    422|{
  296|    422|    int size = 0;
  297|    422|    ogs_nas_unavailability_information_t *source = NULL;
  298|       |
  299|    422|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (299:9): [True: 4, False: 418]
  ------------------
  300|      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__) 
  |  |  ------------------
  ------------------
  301|      4|       return -1;
  302|      4|    }
  303|       |
  304|    418|    source = (ogs_nas_unavailability_information_t *)pkbuf->data;
  305|       |
  306|    418|    unavailability_information->length = source->length;
  307|    418|    size = unavailability_information->length + sizeof(unavailability_information->length);
  308|       |
  309|    418|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (309:9): [True: 1, False: 417]
  ------------------
  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|    417|    if (sizeof(*unavailability_information) < size) return -1;
  ------------------
  |  Branch (314:9): [True: 1, False: 416]
  ------------------
  315|    416|    memcpy(unavailability_information, pkbuf->data - size, size);
  316|       |
  317|    416|    ogs_trace("  UNAVAILABILITY_INFORMATION - ");
  ------------------
  |  |   40|    416|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    416|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    416|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    416|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    416|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    416|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  318|    416|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    416|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    416|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  319|       |
  320|    416|    return size;
  321|    417|}
ogs_nas_5gs_decode_unavailability_configuration:
  341|    232|{
  342|    232|    int size = 0;
  343|    232|    ogs_nas_unavailability_configuration_t *source = NULL;
  344|       |
  345|    232|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (345:9): [True: 4, False: 228]
  ------------------
  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|    228|    source = (ogs_nas_unavailability_configuration_t *)pkbuf->data;
  351|       |
  352|    228|    unavailability_configuration->length = source->length;
  353|    228|    size = unavailability_configuration->length + sizeof(unavailability_configuration->length);
  354|       |
  355|    228|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (355:9): [True: 1, False: 227]
  ------------------
  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|    227|    if (sizeof(*unavailability_configuration) < size) return -1;
  ------------------
  |  Branch (360:9): [True: 2, False: 225]
  ------------------
  361|    225|    memcpy(unavailability_configuration, pkbuf->data - size, size);
  362|       |
  363|    225|    ogs_trace("  UNAVAILABILITY_CONFIGURATION - ");
  ------------------
  |  |   40|    225|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    225|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    225|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    225|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    225|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    225|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  364|    225|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    225|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    225|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  365|       |
  366|    225|    return size;
  367|    227|}
ogs_nas_5gs_decode_gprs_timer:
  387|    430|{
  388|    430|    int size = sizeof(ogs_nas_gprs_timer_t);
  389|       |
  390|    430|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (390:9): [True: 6, False: 424]
  ------------------
  391|      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__) 
  |  |  ------------------
  ------------------
  392|      6|       return -1;
  393|      6|    }
  394|       |
  395|    424|    memcpy(gprs_timer, pkbuf->data - size, size);
  396|       |
  397|    424|    ogs_trace("  GPRS_TIMER - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  398|    424|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    424|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    424|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  399|       |
  400|    424|    return size;
  401|    430|}
ogs_nas_5gs_decode_gprs_timer_2:
  421|  1.82k|{
  422|  1.82k|    int size = 0;
  423|  1.82k|    ogs_nas_gprs_timer_2_t *source = NULL;
  424|       |
  425|  1.82k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (425:9): [True: 8, False: 1.81k]
  ------------------
  426|      8|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  427|      8|       return -1;
  428|      8|    }
  429|       |
  430|  1.81k|    source = (ogs_nas_gprs_timer_2_t *)pkbuf->data;
  431|       |
  432|  1.81k|    gprs_timer_2->length = source->length;
  433|  1.81k|    size = gprs_timer_2->length + sizeof(gprs_timer_2->length);
  434|       |
  435|  1.81k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (435:9): [True: 6, False: 1.81k]
  ------------------
  436|      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__) 
  |  |  ------------------
  ------------------
  437|      6|       return -1;
  438|      6|    }
  439|       |
  440|  1.81k|    if (sizeof(*gprs_timer_2) < size) return -1;
  ------------------
  |  Branch (440:9): [True: 2, False: 1.81k]
  ------------------
  441|  1.81k|    memcpy(gprs_timer_2, pkbuf->data - size, size);
  442|       |
  443|  1.81k|    ogs_trace("  GPRS_TIMER_2 - ");
  ------------------
  |  |   40|  1.81k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.81k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.81k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.81k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.81k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.81k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  444|  1.81k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.81k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.81k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  445|       |
  446|  1.81k|    return size;
  447|  1.81k|}
ogs_nas_5gs_decode_gprs_timer_3:
  467|  3.39k|{
  468|  3.39k|    int size = 0;
  469|  3.39k|    ogs_nas_gprs_timer_3_t *source = NULL;
  470|       |
  471|  3.39k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (471:9): [True: 20, False: 3.37k]
  ------------------
  472|     20|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  473|     20|       return -1;
  474|     20|    }
  475|       |
  476|  3.37k|    source = (ogs_nas_gprs_timer_3_t *)pkbuf->data;
  477|       |
  478|  3.37k|    gprs_timer_3->length = source->length;
  479|  3.37k|    size = gprs_timer_3->length + sizeof(gprs_timer_3->length);
  480|       |
  481|  3.37k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (481:9): [True: 6, False: 3.36k]
  ------------------
  482|      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__) 
  |  |  ------------------
  ------------------
  483|      6|       return -1;
  484|      6|    }
  485|       |
  486|  3.36k|    if (sizeof(*gprs_timer_3) < size) return -1;
  ------------------
  |  Branch (486:9): [True: 3, False: 3.36k]
  ------------------
  487|  3.36k|    memcpy(gprs_timer_3, pkbuf->data - size, size);
  488|       |
  489|  3.36k|    ogs_trace("  GPRS_TIMER_3 - ");
  ------------------
  |  |   40|  3.36k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 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__) 
  |  |  ------------------
  ------------------
  490|  3.36k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  3.36k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  3.36k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  491|       |
  492|  3.36k|    return size;
  493|  3.36k|}
ogs_nas_5gs_decode_s_nssai:
  513|  1.15k|{
  514|  1.15k|    int size = 0;
  515|  1.15k|    ogs_nas_s_nssai_t *source = NULL;
  516|       |
  517|  1.15k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (517:9): [True: 7, False: 1.14k]
  ------------------
  518|      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__) 
  |  |  ------------------
  ------------------
  519|      7|       return -1;
  520|      7|    }
  521|       |
  522|  1.14k|    source = (ogs_nas_s_nssai_t *)pkbuf->data;
  523|       |
  524|  1.14k|    s_nssai->length = source->length;
  525|  1.14k|    size = s_nssai->length + sizeof(s_nssai->length);
  526|       |
  527|  1.14k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (527:9): [True: 2, False: 1.14k]
  ------------------
  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.14k|    if (sizeof(*s_nssai) < size) return -1;
  ------------------
  |  Branch (532:9): [True: 1, False: 1.14k]
  ------------------
  533|  1.14k|    memcpy(s_nssai, pkbuf->data - size, size);
  534|       |
  535|  1.14k|    ogs_trace("  S_NSSAI - ");
  ------------------
  |  |   40|  1.14k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.14k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.14k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.14k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.14k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.14k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  536|  1.14k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.14k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.14k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  537|       |
  538|  1.14k|    return size;
  539|  1.14k|}
ogs_nas_5gs_decode_5gmm_capability:
  559|    242|{
  560|    242|    int size = 0;
  561|    242|    ogs_nas_5gmm_capability_t *source = NULL;
  562|       |
  563|    242|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (563:9): [True: 1, False: 241]
  ------------------
  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|    241|    source = (ogs_nas_5gmm_capability_t *)pkbuf->data;
  569|       |
  570|    241|    gmm_capability->length = source->length;
  571|    241|    size = gmm_capability->length + sizeof(gmm_capability->length);
  572|       |
  573|    241|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (573:9): [True: 4, False: 237]
  ------------------
  574|      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__) 
  |  |  ------------------
  ------------------
  575|      4|       return -1;
  576|      4|    }
  577|       |
  578|    237|    if (sizeof(*gmm_capability) < size) return -1;
  ------------------
  |  Branch (578:9): [True: 1, False: 236]
  ------------------
  579|    236|    memcpy(gmm_capability, pkbuf->data - size, size);
  580|       |
  581|    236|    ogs_trace("  5GMM_CAPABILITY - ");
  ------------------
  |  |   40|    236|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    236|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    236|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    236|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    236|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    236|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  582|    236|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    236|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    236|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  583|       |
  584|    236|    return size;
  585|    237|}
ogs_nas_5gs_decode_abba:
  605|    518|{
  606|    518|    int size = 0;
  607|    518|    ogs_nas_abba_t *source = NULL;
  608|       |
  609|    518|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (609:9): [True: 4, False: 514]
  ------------------
  610|      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__) 
  |  |  ------------------
  ------------------
  611|      4|       return -1;
  612|      4|    }
  613|       |
  614|    514|    source = (ogs_nas_abba_t *)pkbuf->data;
  615|       |
  616|    514|    abba->length = source->length;
  617|    514|    size = abba->length + sizeof(abba->length);
  618|       |
  619|    514|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (619:9): [True: 8, False: 506]
  ------------------
  620|      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__) 
  |  |  ------------------
  ------------------
  621|      8|       return -1;
  622|      8|    }
  623|       |
  624|    506|    if (sizeof(*abba) < size) return -1;
  ------------------
  |  Branch (624:9): [True: 0, False: 506]
  ------------------
  625|    506|    memcpy(abba, pkbuf->data - size, size);
  626|       |
  627|    506|    ogs_trace("  ABBA - ");
  ------------------
  |  |   40|    506|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    506|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    506|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    506|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    506|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    506|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  628|    506|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    506|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    506|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  629|       |
  630|    506|    return size;
  631|    506|}
ogs_nas_5gs_decode_s_nssai_location_validity_information:
  651|    541|{
  652|    541|    int size = 0;
  653|    541|    ogs_nas_s_nssai_location_validity_information_t *source = NULL;
  654|       |
  655|    541|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (655:9): [True: 3, False: 538]
  ------------------
  656|      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__) 
  |  |  ------------------
  ------------------
  657|      3|       return -1;
  658|      3|    }
  659|       |
  660|    538|    source = (ogs_nas_s_nssai_location_validity_information_t *)pkbuf->data;
  661|       |
  662|    538|    s_nssai_location_validity_information->length = be16toh(source->length);
  663|    538|    size = s_nssai_location_validity_information->length + sizeof(s_nssai_location_validity_information->length);
  664|       |
  665|    538|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (665:9): [True: 24, False: 514]
  ------------------
  666|     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__) 
  |  |  ------------------
  ------------------
  667|     24|       return -1;
  668|     24|    }
  669|       |
  670|    514|    s_nssai_location_validity_information->buffer = pkbuf->data - size + sizeof(s_nssai_location_validity_information->length);
  671|       |
  672|    514|    ogs_trace("  S_NSSAI_LOCATION_VALIDITY_INFORMATION - ");
  ------------------
  |  |   40|    514|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    514|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    514|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    514|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    514|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    514|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  673|    514|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)s_nssai_location_validity_information->buffer, s_nssai_location_validity_information->length);
  ------------------
  |  |   53|    514|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    514|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  674|       |
  675|    514|    return size;
  676|    538|}
ogs_nas_5gs_decode_s_nssai_time_validity_information:
  704|    447|{
  705|    447|    int size = 0;
  706|    447|    ogs_nas_s_nssai_time_validity_information_t *source = NULL;
  707|       |
  708|    447|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (708:9): [True: 2, False: 445]
  ------------------
  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|    445|    source = (ogs_nas_s_nssai_time_validity_information_t *)pkbuf->data;
  714|       |
  715|    445|    s_nssai_time_validity_information->length = source->length;
  716|    445|    size = s_nssai_time_validity_information->length + sizeof(s_nssai_time_validity_information->length);
  717|       |
  718|    445|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (718:9): [True: 4, False: 441]
  ------------------
  719|      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__) 
  |  |  ------------------
  ------------------
  720|      4|       return -1;
  721|      4|    }
  722|       |
  723|    441|    if (sizeof(*s_nssai_time_validity_information) < size) return -1;
  ------------------
  |  Branch (723:9): [True: 1, False: 440]
  ------------------
  724|    440|    memcpy(s_nssai_time_validity_information, pkbuf->data - size, size);
  725|       |
  726|    440|    ogs_trace("  S_NSSAI_TIME_VALIDITY_INFORMATION - ");
  ------------------
  |  |   40|    440|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    440|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    440|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    440|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    440|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    440|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  727|    440|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    440|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    440|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  728|       |
  729|    440|    return size;
  730|    441|}
ogs_nas_5gs_decode_non_3gpp_path_switching_information:
  750|    234|{
  751|    234|    int size = 0;
  752|    234|    ogs_nas_non_3gpp_path_switching_information_t *source = NULL;
  753|       |
  754|    234|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (754:9): [True: 2, False: 232]
  ------------------
  755|      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__) 
  |  |  ------------------
  ------------------
  756|      2|       return -1;
  757|      2|    }
  758|       |
  759|    232|    source = (ogs_nas_non_3gpp_path_switching_information_t *)pkbuf->data;
  760|       |
  761|    232|    non_3gpp_path_switching_information->length = source->length;
  762|    232|    size = non_3gpp_path_switching_information->length + sizeof(non_3gpp_path_switching_information->length);
  763|       |
  764|    232|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (764:9): [True: 3, False: 229]
  ------------------
  765|      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__) 
  |  |  ------------------
  ------------------
  766|      3|       return -1;
  767|      3|    }
  768|       |
  769|    229|    if (sizeof(*non_3gpp_path_switching_information) < size) return -1;
  ------------------
  |  Branch (769:9): [True: 2, False: 227]
  ------------------
  770|    227|    memcpy(non_3gpp_path_switching_information, pkbuf->data - size, size);
  771|       |
  772|    227|    ogs_trace("  NON_3GPP_PATH_SWITCHING_INFORMATION - ");
  ------------------
  |  |   40|    227|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    227|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    227|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    227|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    227|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    227|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  773|    227|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    227|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    227|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  774|       |
  775|    227|    return size;
  776|    229|}
ogs_nas_5gs_decode_partial_nssai:
  796|    531|{
  797|    531|    int size = 0;
  798|    531|    ogs_nas_partial_nssai_t *source = NULL;
  799|       |
  800|    531|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (800:9): [True: 5, False: 526]
  ------------------
  801|      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__) 
  |  |  ------------------
  ------------------
  802|      5|       return -1;
  803|      5|    }
  804|       |
  805|    526|    source = (ogs_nas_partial_nssai_t *)pkbuf->data;
  806|       |
  807|    526|    partial_nssai->length = be16toh(source->length);
  808|    526|    size = partial_nssai->length + sizeof(partial_nssai->length);
  809|       |
  810|    526|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (810:9): [True: 25, False: 501]
  ------------------
  811|     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__) 
  |  |  ------------------
  ------------------
  812|     25|       return -1;
  813|     25|    }
  814|       |
  815|    501|    partial_nssai->buffer = pkbuf->data - size + sizeof(partial_nssai->length);
  816|       |
  817|    501|    ogs_trace("  PARTIAL_NSSAI - ");
  ------------------
  |  |   40|    501|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    501|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    501|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    501|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    501|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    501|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  818|    501|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)partial_nssai->buffer, partial_nssai->length);
  ------------------
  |  |   53|    501|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    501|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  819|       |
  820|    501|    return size;
  821|    526|}
ogs_nas_5gs_decode_aun3_indication:
  849|    213|{
  850|    213|    int size = 0;
  851|    213|    ogs_nas_aun3_indication_t *source = NULL;
  852|       |
  853|    213|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (853:9): [True: 4, False: 209]
  ------------------
  854|      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__) 
  |  |  ------------------
  ------------------
  855|      4|       return -1;
  856|      4|    }
  857|       |
  858|    209|    source = (ogs_nas_aun3_indication_t *)pkbuf->data;
  859|       |
  860|    209|    aun3_indication->length = source->length;
  861|    209|    size = aun3_indication->length + sizeof(aun3_indication->length);
  862|       |
  863|    209|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (863:9): [True: 1, False: 208]
  ------------------
  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|    208|    if (sizeof(*aun3_indication) < size) return -1;
  ------------------
  |  Branch (868:9): [True: 1, False: 207]
  ------------------
  869|    207|    memcpy(aun3_indication, pkbuf->data - size, size);
  870|       |
  871|    207|    ogs_trace("  AUN3_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__) 
  |  |  ------------------
  ------------------
  872|    207|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    207|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    207|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  873|       |
  874|    207|    return size;
  875|    208|}
ogs_nas_5gs_decode_feature_authorization_indication:
  895|    437|{
  896|    437|    int size = 0;
  897|    437|    ogs_nas_feature_authorization_indication_t *source = NULL;
  898|       |
  899|    437|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (899:9): [True: 4, False: 433]
  ------------------
  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|    433|    source = (ogs_nas_feature_authorization_indication_t *)pkbuf->data;
  905|       |
  906|    433|    feature_authorization_indication->length = source->length;
  907|    433|    size = feature_authorization_indication->length + sizeof(feature_authorization_indication->length);
  908|       |
  909|    433|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (909:9): [True: 5, False: 428]
  ------------------
  910|      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__) 
  |  |  ------------------
  ------------------
  911|      5|       return -1;
  912|      5|    }
  913|       |
  914|    428|    if (sizeof(*feature_authorization_indication) < size) return -1;
  ------------------
  |  Branch (914:9): [True: 3, False: 425]
  ------------------
  915|    425|    memcpy(feature_authorization_indication, pkbuf->data - size, size);
  916|       |
  917|    425|    ogs_trace("  FEATURE_AUTHORIZATION_INDICATION - ");
  ------------------
  |  |   40|    425|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    425|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    425|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    425|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    425|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    425|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  918|    425|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    425|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    425|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  919|       |
  920|    425|    return size;
  921|    428|}
ogs_nas_5gs_decode_payload_container_information:
  941|    427|{
  942|    427|    int size = sizeof(ogs_nas_payload_container_information_t);
  943|       |
  944|    427|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (944:9): [True: 0, False: 427]
  ------------------
  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|    427|    memcpy(payload_container_information, pkbuf->data - size, size);
  950|       |
  951|    427|    ogs_trace("  PAYLOAD_CONTAINER_INFORMATION - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  952|    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
  |  |  ------------------
  ------------------
  953|       |
  954|    427|    return size;
  955|    427|}
ogs_nas_5gs_decode_aun3_device_security_key:
  973|    448|{
  974|    448|    int size = 0;
  975|    448|    ogs_nas_aun3_device_security_key_t *source = NULL;
  976|       |
  977|    448|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (977:9): [True: 5, False: 443]
  ------------------
  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|    443|    source = (ogs_nas_aun3_device_security_key_t *)pkbuf->data;
  983|       |
  984|    443|    aun3_device_security_key->length = source->length;
  985|    443|    size = aun3_device_security_key->length + sizeof(aun3_device_security_key->length);
  986|       |
  987|    443|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (987:9): [True: 1, False: 442]
  ------------------
  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|    442|    if (sizeof(*aun3_device_security_key) < size) return -1;
  ------------------
  |  Branch (992:9): [True: 2, False: 440]
  ------------------
  993|    440|    memcpy(aun3_device_security_key, pkbuf->data - size, size);
  994|       |
  995|    440|    ogs_trace("  AUN3_DEVICE_SECURITY_KEY - ");
  ------------------
  |  |   40|    440|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    440|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    440|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    440|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    440|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    440|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  996|    440|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    440|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    440|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  997|       |
  998|    440|    return size;
  999|    442|}
ogs_nas_5gs_decode_on_demand_nssai:
 1019|    496|{
 1020|    496|    int size = 0;
 1021|    496|    ogs_nas_on_demand_nssai_t *source = NULL;
 1022|       |
 1023|    496|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1023:9): [True: 5, False: 491]
  ------------------
 1024|      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__) 
  |  |  ------------------
  ------------------
 1025|      5|       return -1;
 1026|      5|    }
 1027|       |
 1028|    491|    source = (ogs_nas_on_demand_nssai_t *)pkbuf->data;
 1029|       |
 1030|    491|    on_demand_nssai->length = source->length;
 1031|    491|    size = on_demand_nssai->length + sizeof(on_demand_nssai->length);
 1032|       |
 1033|    491|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1033:9): [True: 5, False: 486]
  ------------------
 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|    486|    if (sizeof(*on_demand_nssai) < size) return -1;
  ------------------
  |  Branch (1038:9): [True: 4, False: 482]
  ------------------
 1039|    482|    memcpy(on_demand_nssai, pkbuf->data - size, size);
 1040|       |
 1041|    482|    ogs_trace("  ON_DEMAND_NSSAI - ");
  ------------------
  |  |   40|    482|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    482|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    482|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    482|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    482|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    482|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1042|    482|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    482|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    482|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1043|       |
 1044|    482|    return size;
 1045|    486|}
ogs_nas_5gs_decode_extended_5gmm_cause:
 1065|    199|{
 1066|    199|    int size = 0;
 1067|    199|    ogs_nas_extended_5gmm_cause_t *source = NULL;
 1068|       |
 1069|    199|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1069:9): [True: 2, False: 197]
  ------------------
 1070|      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__) 
  |  |  ------------------
  ------------------
 1071|      2|       return -1;
 1072|      2|    }
 1073|       |
 1074|    197|    source = (ogs_nas_extended_5gmm_cause_t *)pkbuf->data;
 1075|       |
 1076|    197|    extended_gmm_cause->length = source->length;
 1077|    197|    size = extended_gmm_cause->length + sizeof(extended_gmm_cause->length);
 1078|       |
 1079|    197|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1079:9): [True: 1, False: 196]
  ------------------
 1080|      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__) 
  |  |  ------------------
  ------------------
 1081|      1|       return -1;
 1082|      1|    }
 1083|       |
 1084|    196|    if (sizeof(*extended_gmm_cause) < size) return -1;
  ------------------
  |  Branch (1084:9): [True: 1, False: 195]
  ------------------
 1085|    195|    memcpy(extended_gmm_cause, pkbuf->data - size, size);
 1086|       |
 1087|    195|    ogs_trace("  EXTENDED_5GMM_CAUSE - ");
  ------------------
  |  |   40|    195|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    195|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    195|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    195|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    195|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    195|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1088|    195|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    195|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    195|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1089|       |
 1090|    195|    return size;
 1091|    196|}
ogs_nas_5gs_decode_access_technology_utilization_control:
 1111|  1.05k|{
 1112|  1.05k|    int size = 0;
 1113|  1.05k|    ogs_nas_access_technology_utilization_control_t *source = NULL;
 1114|       |
 1115|  1.05k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1115:9): [True: 6, False: 1.04k]
  ------------------
 1116|      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__) 
  |  |  ------------------
  ------------------
 1117|      6|       return -1;
 1118|      6|    }
 1119|       |
 1120|  1.04k|    source = (ogs_nas_access_technology_utilization_control_t *)pkbuf->data;
 1121|       |
 1122|  1.04k|    access_technology_utilization_control->length = source->length;
 1123|  1.04k|    size = access_technology_utilization_control->length + sizeof(access_technology_utilization_control->length);
 1124|       |
 1125|  1.04k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1125:9): [True: 7, False: 1.03k]
  ------------------
 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.03k|    if (sizeof(*access_technology_utilization_control) < size) return -1;
  ------------------
  |  Branch (1130:9): [True: 1, False: 1.03k]
  ------------------
 1131|  1.03k|    memcpy(access_technology_utilization_control, pkbuf->data - size, size);
 1132|       |
 1133|  1.03k|    ogs_trace("  ACCESS_TECHNOLOGY_UTILIZATION_CONTROL - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1134|  1.03k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.03k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.03k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1135|       |
 1136|  1.03k|    return size;
 1137|  1.03k|}
ogs_nas_5gs_decode_lp_wusps_assistance_information:
 1157|    643|{
 1158|    643|    int size = 0;
 1159|    643|    ogs_nas_lp_wusps_assistance_information_t *source = NULL;
 1160|       |
 1161|    643|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1161:9): [True: 3, False: 640]
  ------------------
 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|    640|    source = (ogs_nas_lp_wusps_assistance_information_t *)pkbuf->data;
 1167|       |
 1168|    640|    lp_wusps_assistance_information->length = source->length;
 1169|    640|    size = lp_wusps_assistance_information->length + sizeof(lp_wusps_assistance_information->length);
 1170|       |
 1171|    640|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1171:9): [True: 4, False: 636]
  ------------------
 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|    636|    if (sizeof(*lp_wusps_assistance_information) < size) return -1;
  ------------------
  |  Branch (1176:9): [True: 1, False: 635]
  ------------------
 1177|    635|    memcpy(lp_wusps_assistance_information, pkbuf->data - size, size);
 1178|       |
 1179|    635|    ogs_trace("  LP_WUSPS_ASSISTANCE_INFORMATION - ");
  ------------------
  |  |   40|    635|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    635|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    635|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    635|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    635|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    635|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1180|    635|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    635|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    635|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1181|       |
 1182|    635|    return size;
 1183|    636|}
ogs_nas_5gs_decode_lp_wus_status:
 1203|  2.74k|{
 1204|  2.74k|    int size = sizeof(ogs_nas_lp_wus_status_t);
 1205|       |
 1206|  2.74k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1206:9): [True: 0, False: 2.74k]
  ------------------
 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.74k|    memcpy(lp_wus_status, pkbuf->data - size, size);
 1212|       |
 1213|  2.74k|    ogs_trace("  LP_WUS_STATUS - ");
  ------------------
  |  |   40|  2.74k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.74k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.74k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.74k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.74k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.74k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1214|  2.74k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  2.74k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  2.74k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1215|       |
 1216|  2.74k|    return size;
 1217|  2.74k|}
ogs_nas_5gs_decode_additional_5g_security_information:
 1235|    198|{
 1236|    198|    int size = 0;
 1237|    198|    ogs_nas_additional_5g_security_information_t *source = NULL;
 1238|       |
 1239|    198|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1239:9): [True: 1, False: 197]
  ------------------
 1240|      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__) 
  |  |  ------------------
  ------------------
 1241|      1|       return -1;
 1242|      1|    }
 1243|       |
 1244|    197|    source = (ogs_nas_additional_5g_security_information_t *)pkbuf->data;
 1245|       |
 1246|    197|    additional_security_information->length = source->length;
 1247|    197|    size = additional_security_information->length + sizeof(additional_security_information->length);
 1248|       |
 1249|    197|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1249:9): [True: 1, False: 196]
  ------------------
 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|    196|    if (sizeof(*additional_security_information) < size) return -1;
  ------------------
  |  Branch (1254:9): [True: 1, False: 195]
  ------------------
 1255|    195|    memcpy(additional_security_information, pkbuf->data - size, size);
 1256|       |
 1257|    195|    ogs_trace("  ADDITIONAL_5G_SECURITY_INFORMATION - ");
  ------------------
  |  |   40|    195|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    195|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    195|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    195|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    195|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    195|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1258|    195|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    195|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    195|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1259|       |
 1260|    195|    return size;
 1261|    196|}
ogs_nas_5gs_decode_additional_information_requested:
 1281|    233|{
 1282|    233|    int size = 0;
 1283|    233|    ogs_nas_additional_information_requested_t *source = NULL;
 1284|       |
 1285|    233|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1285:9): [True: 2, False: 231]
  ------------------
 1286|      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__) 
  |  |  ------------------
  ------------------
 1287|      2|       return -1;
 1288|      2|    }
 1289|       |
 1290|    231|    source = (ogs_nas_additional_information_requested_t *)pkbuf->data;
 1291|       |
 1292|    231|    additional_information_requested->length = source->length;
 1293|    231|    size = additional_information_requested->length + sizeof(additional_information_requested->length);
 1294|       |
 1295|    231|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1295:9): [True: 1, False: 230]
  ------------------
 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|    230|    if (sizeof(*additional_information_requested) < size) return -1;
  ------------------
  |  Branch (1300:9): [True: 1, False: 229]
  ------------------
 1301|    229|    memcpy(additional_information_requested, pkbuf->data - size, size);
 1302|       |
 1303|    229|    ogs_trace("  ADDITIONAL_INFORMATION_REQUESTED - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1304|    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
  |  |  ------------------
  ------------------
 1305|       |
 1306|    229|    return size;
 1307|    230|}
ogs_nas_5gs_decode_allowed_pdu_session_status:
 1327|    427|{
 1328|    427|    int size = 0;
 1329|    427|    ogs_nas_allowed_pdu_session_status_t *source = NULL;
 1330|       |
 1331|    427|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1331:9): [True: 4, False: 423]
  ------------------
 1332|      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__) 
  |  |  ------------------
  ------------------
 1333|      4|       return -1;
 1334|      4|    }
 1335|       |
 1336|    423|    source = (ogs_nas_allowed_pdu_session_status_t *)pkbuf->data;
 1337|       |
 1338|    423|    allowed_pdu_session_status->length = source->length;
 1339|    423|    size = allowed_pdu_session_status->length + sizeof(allowed_pdu_session_status->length);
 1340|       |
 1341|    423|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1341:9): [True: 1, False: 422]
  ------------------
 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|    422|    if (sizeof(*allowed_pdu_session_status) < size) return -1;
  ------------------
  |  Branch (1346:9): [True: 1, False: 421]
  ------------------
 1347|    421|    memcpy(allowed_pdu_session_status, pkbuf->data - size, size);
 1348|       |
 1349|    421|    allowed_pdu_session_status->psi = be16toh(allowed_pdu_session_status->psi);
 1350|       |
 1351|    421|    ogs_trace("  ALLOWED_PDU_SESSION_STATUS - ");
  ------------------
  |  |   40|    421|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    421|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    421|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    421|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    421|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    421|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1352|    421|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    421|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    421|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1353|       |
 1354|    421|    return size;
 1355|    422|}
ogs_nas_5gs_decode_authentication_failure_parameter:
 1377|    202|{
 1378|    202|    int size = 0;
 1379|    202|    ogs_nas_authentication_failure_parameter_t *source = NULL;
 1380|       |
 1381|    202|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1381:9): [True: 2, False: 200]
  ------------------
 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|    200|    source = (ogs_nas_authentication_failure_parameter_t *)pkbuf->data;
 1387|       |
 1388|    200|    authentication_failure_parameter->length = source->length;
 1389|    200|    size = authentication_failure_parameter->length + sizeof(authentication_failure_parameter->length);
 1390|       |
 1391|    200|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1391:9): [True: 1, False: 199]
  ------------------
 1392|      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__) 
  |  |  ------------------
  ------------------
 1393|      1|       return -1;
 1394|      1|    }
 1395|       |
 1396|    199|    if (sizeof(*authentication_failure_parameter) < size) return -1;
  ------------------
  |  Branch (1396:9): [True: 1, False: 198]
  ------------------
 1397|    198|    memcpy(authentication_failure_parameter, pkbuf->data - size, size);
 1398|       |
 1399|    198|    ogs_trace("  AUTHENTICATION_FAILURE_PARAMETER - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1400|    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
  |  |  ------------------
  ------------------
 1401|       |
 1402|    198|    return size;
 1403|    199|}
ogs_nas_5gs_decode_authentication_parameter_autn:
 1423|    224|{
 1424|    224|    int size = 0;
 1425|    224|    ogs_nas_authentication_parameter_autn_t *source = NULL;
 1426|       |
 1427|    224|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1427:9): [True: 3, False: 221]
  ------------------
 1428|      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__) 
  |  |  ------------------
  ------------------
 1429|      3|       return -1;
 1430|      3|    }
 1431|       |
 1432|    221|    source = (ogs_nas_authentication_parameter_autn_t *)pkbuf->data;
 1433|       |
 1434|    221|    authentication_parameter_autn->length = source->length;
 1435|    221|    size = authentication_parameter_autn->length + sizeof(authentication_parameter_autn->length);
 1436|       |
 1437|    221|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1437:9): [True: 2, False: 219]
  ------------------
 1438|      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__) 
  |  |  ------------------
  ------------------
 1439|      2|       return -1;
 1440|      2|    }
 1441|       |
 1442|    219|    if (sizeof(*authentication_parameter_autn) < size) return -1;
  ------------------
  |  Branch (1442:9): [True: 1, False: 218]
  ------------------
 1443|    218|    memcpy(authentication_parameter_autn, pkbuf->data - size, size);
 1444|       |
 1445|    218|    ogs_trace("  AUTHENTICATION_PARAMETER_AUTN - ");
  ------------------
  |  |   40|    218|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    218|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    218|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    218|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    218|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    218|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1446|    218|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    218|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    218|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1447|       |
 1448|    218|    return size;
 1449|    219|}
ogs_nas_5gs_decode_authentication_parameter_rand:
 1469|    147|{
 1470|    147|    int size = sizeof(ogs_nas_authentication_parameter_rand_t);
 1471|       |
 1472|    147|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1472:9): [True: 13, False: 134]
  ------------------
 1473|     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__) 
  |  |  ------------------
  ------------------
 1474|     13|       return -1;
 1475|     13|    }
 1476|       |
 1477|    134|    memcpy(authentication_parameter_rand, pkbuf->data - size, size);
 1478|       |
 1479|    134|    ogs_trace("  AUTHENTICATION_PARAMETER_RAND - ");
  ------------------
  |  |   40|    134|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    134|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    134|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    134|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    134|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    134|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1480|    134|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    134|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    134|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1481|       |
 1482|    134|    return size;
 1483|    147|}
ogs_nas_5gs_decode_authentication_response_parameter:
 1503|    227|{
 1504|    227|    int size = 0;
 1505|    227|    ogs_nas_authentication_response_parameter_t *source = NULL;
 1506|       |
 1507|    227|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1507:9): [True: 3, False: 224]
  ------------------
 1508|      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__) 
  |  |  ------------------
  ------------------
 1509|      3|       return -1;
 1510|      3|    }
 1511|       |
 1512|    224|    source = (ogs_nas_authentication_response_parameter_t *)pkbuf->data;
 1513|       |
 1514|    224|    authentication_response_parameter->length = source->length;
 1515|    224|    size = authentication_response_parameter->length + sizeof(authentication_response_parameter->length);
 1516|       |
 1517|    224|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1517:9): [True: 1, False: 223]
  ------------------
 1518|      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__) 
  |  |  ------------------
  ------------------
 1519|      1|       return -1;
 1520|      1|    }
 1521|       |
 1522|    223|    if (sizeof(*authentication_response_parameter) < size) return -1;
  ------------------
  |  Branch (1522:9): [True: 2, False: 221]
  ------------------
 1523|    221|    memcpy(authentication_response_parameter, pkbuf->data - size, size);
 1524|       |
 1525|    221|    ogs_trace("  AUTHENTICATION_RESPONSE_PARAMETER - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1526|    221|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    221|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    221|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1527|       |
 1528|    221|    return size;
 1529|    223|}
ogs_nas_5gs_decode_configuration_update_indication:
 1549|  1.83k|{
 1550|  1.83k|    int size = sizeof(ogs_nas_configuration_update_indication_t);
 1551|       |
 1552|  1.83k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1552:9): [True: 0, False: 1.83k]
  ------------------
 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.83k|    memcpy(configuration_update_indication, pkbuf->data - size, size);
 1558|       |
 1559|  1.83k|    ogs_trace("  CONFIGURATION_UPDATE_INDICATION - ");
  ------------------
  |  |   40|  1.83k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 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__) 
  |  |  ------------------
  ------------------
 1560|  1.83k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.83k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.83k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1561|       |
 1562|  1.83k|    return size;
 1563|  1.83k|}
ogs_nas_5gs_decode_cag_information_list:
 1581|  1.07k|{
 1582|  1.07k|    int size = 0;
 1583|  1.07k|    ogs_nas_cag_information_list_t *source = NULL;
 1584|       |
 1585|  1.07k|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (1585:9): [True: 8, False: 1.07k]
  ------------------
 1586|      8|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1587|      8|       return -1;
 1588|      8|    }
 1589|       |
 1590|  1.07k|    source = (ogs_nas_cag_information_list_t *)pkbuf->data;
 1591|       |
 1592|  1.07k|    cag_information_list->length = be16toh(source->length);
 1593|  1.07k|    size = cag_information_list->length + sizeof(cag_information_list->length);
 1594|       |
 1595|  1.07k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1595:9): [True: 22, False: 1.04k]
  ------------------
 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.04k|    cag_information_list->buffer = pkbuf->data - size + sizeof(cag_information_list->length);
 1601|       |
 1602|  1.04k|    ogs_trace("  CAG_INFORMATION_LIST - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1603|  1.04k|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)cag_information_list->buffer, cag_information_list->length);
  ------------------
  |  |   53|  1.04k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.04k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1604|       |
 1605|  1.04k|    return size;
 1606|  1.07k|}
ogs_nas_5gs_decode_ciphering_key_data:
 1634|    280|{
 1635|    280|    int size = 0;
 1636|    280|    ogs_nas_ciphering_key_data_t *source = NULL;
 1637|       |
 1638|    280|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (1638:9): [True: 5, False: 275]
  ------------------
 1639|      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__) 
  |  |  ------------------
  ------------------
 1640|      5|       return -1;
 1641|      5|    }
 1642|       |
 1643|    275|    source = (ogs_nas_ciphering_key_data_t *)pkbuf->data;
 1644|       |
 1645|    275|    ciphering_key_data->length = be16toh(source->length);
 1646|    275|    size = ciphering_key_data->length + sizeof(ciphering_key_data->length);
 1647|       |
 1648|    275|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1648:9): [True: 23, False: 252]
  ------------------
 1649|     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__) 
  |  |  ------------------
  ------------------
 1650|     23|       return -1;
 1651|     23|    }
 1652|       |
 1653|    252|    ciphering_key_data->buffer = pkbuf->data - size + sizeof(ciphering_key_data->length);
 1654|       |
 1655|    252|    ogs_trace("  CIPHERING_KEY_DATA - ");
  ------------------
  |  |   40|    252|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    252|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    252|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    252|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    252|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    252|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1656|    252|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)ciphering_key_data->buffer, ciphering_key_data->length);
  ------------------
  |  |   53|    252|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    252|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1657|       |
 1658|    252|    return size;
 1659|    275|}
ogs_nas_5gs_decode_daylight_saving_time:
 1687|    388|{
 1688|    388|    int size = 0;
 1689|    388|    ogs_nas_daylight_saving_time_t *source = NULL;
 1690|       |
 1691|    388|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1691:9): [True: 5, False: 383]
  ------------------
 1692|      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__) 
  |  |  ------------------
  ------------------
 1693|      5|       return -1;
 1694|      5|    }
 1695|       |
 1696|    383|    source = (ogs_nas_daylight_saving_time_t *)pkbuf->data;
 1697|       |
 1698|    383|    daylight_saving_time->length = source->length;
 1699|    383|    size = daylight_saving_time->length + sizeof(daylight_saving_time->length);
 1700|       |
 1701|    383|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1701:9): [True: 5, False: 378]
  ------------------
 1702|      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__) 
  |  |  ------------------
  ------------------
 1703|      5|       return -1;
 1704|      5|    }
 1705|       |
 1706|    378|    if (sizeof(*daylight_saving_time) < size) return -1;
  ------------------
  |  Branch (1706:9): [True: 2, False: 376]
  ------------------
 1707|    376|    memcpy(daylight_saving_time, pkbuf->data - size, size);
 1708|       |
 1709|    376|    ogs_trace("  DAYLIGHT_SAVING_TIME - ");
  ------------------
  |  |   40|    376|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    376|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    376|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    376|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    376|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    376|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1710|    376|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    376|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    376|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1711|       |
 1712|    376|    return size;
 1713|    378|}
ogs_nas_5gs_decode_5gmm_cause:
 1733|    858|{
 1734|    858|    int size = sizeof(ogs_nas_5gmm_cause_t);
 1735|       |
 1736|    858|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1736:9): [True: 6, False: 852]
  ------------------
 1737|      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__) 
  |  |  ------------------
  ------------------
 1738|      6|       return -1;
 1739|      6|    }
 1740|       |
 1741|    852|    memcpy(gmm_cause, pkbuf->data - size, size);
 1742|       |
 1743|    852|    ogs_trace("  5GMM_CAUSE - ");
  ------------------
  |  |   40|    852|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    852|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    852|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    852|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    852|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    852|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1744|    852|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    852|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    852|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1745|       |
 1746|    852|    return size;
 1747|    858|}
ogs_nas_5gs_decode_de_registration_type:
 1767|    234|{
 1768|    234|    int size = sizeof(ogs_nas_de_registration_type_t);
 1769|       |
 1770|    234|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1770:9): [True: 0, False: 234]
  ------------------
 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|    234|    memcpy(de_registration_type, pkbuf->data - size, size);
 1776|       |
 1777|    234|    ogs_trace("  DE_REGISTRATION_TYPE - ");
  ------------------
  |  |   40|    234|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    234|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    234|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    234|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    234|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    234|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1778|    234|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    234|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    234|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1779|       |
 1780|    234|    return size;
 1781|    234|}
ogs_nas_5gs_decode_emergency_number_list:
 1801|    215|{
 1802|    215|    int size = 0;
 1803|    215|    ogs_nas_emergency_number_list_t *source = NULL;
 1804|       |
 1805|    215|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1805:9): [True: 2, False: 213]
  ------------------
 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|    213|    source = (ogs_nas_emergency_number_list_t *)pkbuf->data;
 1811|       |
 1812|    213|    emergency_number_list->length = source->length;
 1813|    213|    size = emergency_number_list->length + sizeof(emergency_number_list->length);
 1814|       |
 1815|    213|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1815:9): [True: 2, False: 211]
  ------------------
 1816|      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__) 
  |  |  ------------------
  ------------------
 1817|      2|       return -1;
 1818|      2|    }
 1819|       |
 1820|    211|    if (sizeof(*emergency_number_list) < size) return -1;
  ------------------
  |  Branch (1820:9): [True: 1, False: 210]
  ------------------
 1821|    210|    memcpy(emergency_number_list, pkbuf->data - size, size);
 1822|       |
 1823|    210|    ogs_trace("  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__) 
  |  |  ------------------
  ------------------
 1824|    210|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    210|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    210|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1825|       |
 1826|    210|    return size;
 1827|    211|}
ogs_nas_5gs_decode_eps_bearer_context_status:
 1847|    453|{
 1848|    453|    int size = 0;
 1849|    453|    ogs_nas_eps_bearer_context_status_t *source = NULL;
 1850|       |
 1851|    453|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1851:9): [True: 5, False: 448]
  ------------------
 1852|      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__) 
  |  |  ------------------
  ------------------
 1853|      5|       return -1;
 1854|      5|    }
 1855|       |
 1856|    448|    source = (ogs_nas_eps_bearer_context_status_t *)pkbuf->data;
 1857|       |
 1858|    448|    eps_bearer_context_status->length = source->length;
 1859|    448|    size = eps_bearer_context_status->length + sizeof(eps_bearer_context_status->length);
 1860|       |
 1861|    448|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1861:9): [True: 1, False: 447]
  ------------------
 1862|      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__) 
  |  |  ------------------
  ------------------
 1863|      1|       return -1;
 1864|      1|    }
 1865|       |
 1866|    447|    if (sizeof(*eps_bearer_context_status) < size) return -1;
  ------------------
  |  Branch (1866:9): [True: 1, False: 446]
  ------------------
 1867|    446|    memcpy(eps_bearer_context_status, pkbuf->data - size, size);
 1868|       |
 1869|    446|    ogs_trace("  EPS_BEARER_CONTEXT_STATUS - ");
  ------------------
  |  |   40|    446|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    446|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    446|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    446|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    446|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    446|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1870|    446|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    446|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    446|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1871|       |
 1872|    446|    return size;
 1873|    447|}
ogs_nas_5gs_decode_eps_nas_message_container:
 1893|    264|{
 1894|    264|    int size = 0;
 1895|    264|    ogs_nas_eps_nas_message_container_t *source = NULL;
 1896|       |
 1897|    264|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (1897:9): [True: 4, False: 260]
  ------------------
 1898|      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__) 
  |  |  ------------------
  ------------------
 1899|      4|       return -1;
 1900|      4|    }
 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: 26, False: 234]
  ------------------
 1908|     26|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1909|     26|       return -1;
 1910|     26|    }
 1911|       |
 1912|    234|    eps_nas_message_container->buffer = pkbuf->data - size + sizeof(eps_nas_message_container->length);
 1913|       |
 1914|    234|    ogs_trace("  EPS_NAS_MESSAGE_CONTAINER - ");
  ------------------
  |  |   40|    234|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    234|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    234|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    234|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    234|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    234|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1915|    234|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)eps_nas_message_container->buffer, eps_nas_message_container->length);
  ------------------
  |  |   53|    234|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    234|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1916|       |
 1917|    234|    return size;
 1918|    260|}
ogs_nas_5gs_decode_eps_nas_security_algorithms:
 1946|    216|{
 1947|    216|    int size = sizeof(ogs_nas_eps_nas_security_algorithms_t);
 1948|       |
 1949|    216|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1949:9): [True: 2, False: 214]
  ------------------
 1950|      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__) 
  |  |  ------------------
  ------------------
 1951|      2|       return -1;
 1952|      2|    }
 1953|       |
 1954|    214|    memcpy(eps_nas_security_algorithms, pkbuf->data - size, size);
 1955|       |
 1956|    214|    ogs_trace("  EPS_NAS_SECURITY_ALGORITHMS - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1957|    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
  |  |  ------------------
  ------------------
 1958|       |
 1959|    214|    return size;
 1960|    216|}
ogs_nas_5gs_decode_extended_emergency_number_list:
 1980|    246|{
 1981|    246|    int size = 0;
 1982|    246|    ogs_nas_extended_emergency_number_list_t *source = NULL;
 1983|       |
 1984|    246|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (1984:9): [True: 5, False: 241]
  ------------------
 1985|      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__) 
  |  |  ------------------
  ------------------
 1986|      5|       return -1;
 1987|      5|    }
 1988|       |
 1989|    241|    source = (ogs_nas_extended_emergency_number_list_t *)pkbuf->data;
 1990|       |
 1991|    241|    extended_emergency_number_list->length = be16toh(source->length);
 1992|    241|    size = extended_emergency_number_list->length + sizeof(extended_emergency_number_list->length);
 1993|       |
 1994|    241|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1994:9): [True: 16, False: 225]
  ------------------
 1995|     16|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1996|     16|       return -1;
 1997|     16|    }
 1998|       |
 1999|    225|    extended_emergency_number_list->buffer = pkbuf->data - size + sizeof(extended_emergency_number_list->length);
 2000|       |
 2001|    225|    ogs_trace("  EXTENDED_EMERGENCY_NUMBER_LIST - ");
  ------------------
  |  |   40|    225|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    225|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    225|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    225|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    225|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    225|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2002|    225|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)extended_emergency_number_list->buffer, extended_emergency_number_list->length);
  ------------------
  |  |   53|    225|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    225|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2003|       |
 2004|    225|    return size;
 2005|    241|}
ogs_nas_5gs_decode_extended_drx_parameters:
 2033|    419|{
 2034|    419|    int size = 0;
 2035|    419|    ogs_nas_extended_drx_parameters_t *source = NULL;
 2036|       |
 2037|    419|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (2037:9): [True: 4, False: 415]
  ------------------
 2038|      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__) 
  |  |  ------------------
  ------------------
 2039|      4|       return -1;
 2040|      4|    }
 2041|       |
 2042|    415|    source = (ogs_nas_extended_drx_parameters_t *)pkbuf->data;
 2043|       |
 2044|    415|    extended_drx_parameters->length = source->length;
 2045|    415|    size = extended_drx_parameters->length + sizeof(extended_drx_parameters->length);
 2046|       |
 2047|    415|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2047:9): [True: 1, False: 414]
  ------------------
 2048|      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__) 
  |  |  ------------------
  ------------------
 2049|      1|       return -1;
 2050|      1|    }
 2051|       |
 2052|    414|    if (sizeof(*extended_drx_parameters) < size) return -1;
  ------------------
  |  Branch (2052:9): [True: 1, False: 413]
  ------------------
 2053|    413|    memcpy(extended_drx_parameters, pkbuf->data - size, size);
 2054|       |
 2055|    413|    ogs_trace("  EXTENDED_DRX_PARAMETERS - ");
  ------------------
  |  |   40|    413|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    413|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    413|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    413|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    413|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    413|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2056|    413|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    413|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    413|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2057|       |
 2058|    413|    return size;
 2059|    414|}
ogs_nas_5gs_decode_imeisv_request:
 2079|    510|{
 2080|    510|    int size = sizeof(ogs_nas_imeisv_request_t);
 2081|       |
 2082|    510|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2082:9): [True: 0, False: 510]
  ------------------
 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|    510|    memcpy(imeisv_request, pkbuf->data - size, size);
 2088|       |
 2089|    510|    ogs_trace("  IMEISV_REQUEST - ");
  ------------------
  |  |   40|    510|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    510|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    510|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    510|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    510|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    510|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2090|    510|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    510|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    510|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2091|       |
 2092|    510|    return size;
 2093|    510|}
ogs_nas_5gs_decode_ladn_indication:
 2111|    216|{
 2112|    216|    int size = 0;
 2113|    216|    ogs_nas_ladn_indication_t *source = NULL;
 2114|       |
 2115|    216|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (2115:9): [True: 4, False: 212]
  ------------------
 2116|      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__) 
  |  |  ------------------
  ------------------
 2117|      4|       return -1;
 2118|      4|    }
 2119|       |
 2120|    212|    source = (ogs_nas_ladn_indication_t *)pkbuf->data;
 2121|       |
 2122|    212|    ladn_indication->length = be16toh(source->length);
 2123|    212|    size = ladn_indication->length + sizeof(ladn_indication->length);
 2124|       |
 2125|    212|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2125:9): [True: 7, False: 205]
  ------------------
 2126|      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__) 
  |  |  ------------------
  ------------------
 2127|      7|       return -1;
 2128|      7|    }
 2129|       |
 2130|    205|    ladn_indication->buffer = pkbuf->data - size + sizeof(ladn_indication->length);
 2131|       |
 2132|    205|    ogs_trace("  LADN_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__) 
  |  |  ------------------
  ------------------
 2133|    205|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)ladn_indication->buffer, ladn_indication->length);
  ------------------
  |  |   53|    205|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    205|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2134|       |
 2135|    205|    return size;
 2136|    212|}
ogs_nas_5gs_decode_5gs_drx_parameters:
 2164|    414|{
 2165|    414|    int size = 0;
 2166|    414|    ogs_nas_5gs_drx_parameters_t *source = NULL;
 2167|       |
 2168|    414|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (2168:9): [True: 5, False: 409]
  ------------------
 2169|      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__) 
  |  |  ------------------
  ------------------
 2170|      5|       return -1;
 2171|      5|    }
 2172|       |
 2173|    409|    source = (ogs_nas_5gs_drx_parameters_t *)pkbuf->data;
 2174|       |
 2175|    409|    drx_parameters->length = source->length;
 2176|    409|    size = drx_parameters->length + sizeof(drx_parameters->length);
 2177|       |
 2178|    409|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2178:9): [True: 2, False: 407]
  ------------------
 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|    407|    if (sizeof(*drx_parameters) < size) return -1;
  ------------------
  |  Branch (2183:9): [True: 2, False: 405]
  ------------------
 2184|    405|    memcpy(drx_parameters, pkbuf->data - size, size);
 2185|       |
 2186|    405|    ogs_trace("  5GS_DRX_PARAMETERS - ");
  ------------------
  |  |   40|    405|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    405|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    405|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    405|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    405|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    405|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2187|    405|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    405|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    405|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2188|       |
 2189|    405|    return size;
 2190|    407|}
ogs_nas_5gs_decode_5gs_identity_type:
 2210|      2|{
 2211|      2|    int size = sizeof(ogs_nas_5gs_identity_type_t);
 2212|       |
 2213|      2|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2213:9): [True: 0, False: 2]
  ------------------
 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|      2|    memcpy(identity_type, pkbuf->data - size, size);
 2219|       |
 2220|      2|    ogs_trace("  5GS_IDENTITY_TYPE - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 2221|      2|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|      2|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2222|       |
 2223|      2|    return size;
 2224|      2|}
ogs_nas_5gs_decode_ladn_information:
 2244|    478|{
 2245|    478|    int size = 0;
 2246|    478|    ogs_nas_ladn_information_t *source = NULL;
 2247|       |
 2248|    478|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (2248:9): [True: 5, False: 473]
  ------------------
 2249|      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__) 
  |  |  ------------------
  ------------------
 2250|      5|       return -1;
 2251|      5|    }
 2252|       |
 2253|    473|    source = (ogs_nas_ladn_information_t *)pkbuf->data;
 2254|       |
 2255|    473|    ladn_information->length = be16toh(source->length);
 2256|    473|    size = ladn_information->length + sizeof(ladn_information->length);
 2257|       |
 2258|    473|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2258:9): [True: 25, False: 448]
  ------------------
 2259|     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__) 
  |  |  ------------------
  ------------------
 2260|     25|       return -1;
 2261|     25|    }
 2262|       |
 2263|    448|    ladn_information->buffer = pkbuf->data - size + sizeof(ladn_information->length);
 2264|       |
 2265|    448|    ogs_trace("  LADN_INFORMATION - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 2266|    448|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)ladn_information->buffer, ladn_information->length);
  ------------------
  |  |   53|    448|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    448|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2267|       |
 2268|    448|    return size;
 2269|    473|}
ogs_nas_5gs_decode_mico_indication:
 2297|  2.18k|{
 2298|  2.18k|    int size = sizeof(ogs_nas_mico_indication_t);
 2299|       |
 2300|  2.18k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2300:9): [True: 0, False: 2.18k]
  ------------------
 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.18k|    memcpy(mico_indication, pkbuf->data - size, size);
 2306|       |
 2307|  2.18k|    ogs_trace("  MICO_INDICATION - ");
  ------------------
  |  |   40|  2.18k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.18k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.18k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.18k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.18k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.18k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2308|  2.18k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  2.18k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  2.18k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2309|       |
 2310|  2.18k|    return size;
 2311|  2.18k|}
ogs_nas_5gs_decode_ma_pdu_session_information:
 2329|    543|{
 2330|    543|    int size = sizeof(ogs_nas_ma_pdu_session_information_t);
 2331|       |
 2332|    543|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2332:9): [True: 0, False: 543]
  ------------------
 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|    543|    memcpy(ma_pdu_session_information, pkbuf->data - size, size);
 2338|       |
 2339|    543|    ogs_trace("  MA_PDU_SESSION_INFORMATION - ");
  ------------------
  |  |   40|    543|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    543|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    543|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    543|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    543|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    543|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2340|    543|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    543|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    543|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2341|       |
 2342|    543|    return size;
 2343|    543|}
ogs_nas_5gs_decode_mapped_nssai:
 2361|    219|{
 2362|    219|    int size = 0;
 2363|    219|    ogs_nas_mapped_nssai_t *source = NULL;
 2364|       |
 2365|    219|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (2365:9): [True: 1, False: 218]
  ------------------
 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|    218|    source = (ogs_nas_mapped_nssai_t *)pkbuf->data;
 2371|       |
 2372|    218|    mapped_nssai->length = source->length;
 2373|    218|    size = mapped_nssai->length + sizeof(mapped_nssai->length);
 2374|       |
 2375|    218|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2375:9): [True: 1, False: 217]
  ------------------
 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|    217|    if (sizeof(*mapped_nssai) < size) return -1;
  ------------------
  |  Branch (2380:9): [True: 1, False: 216]
  ------------------
 2381|    216|    memcpy(mapped_nssai, pkbuf->data - size, size);
 2382|       |
 2383|    216|    ogs_trace("  MAPPED_NSSAI - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 2384|    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
  |  |  ------------------
  ------------------
 2385|       |
 2386|    216|    return size;
 2387|    217|}
ogs_nas_5gs_decode_mobile_station_classmark_2:
 2407|    251|{
 2408|    251|    int size = 0;
 2409|    251|    ogs_nas_mobile_station_classmark_2_t *source = NULL;
 2410|       |
 2411|    251|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (2411:9): [True: 4, False: 247]
  ------------------
 2412|      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__) 
  |  |  ------------------
  ------------------
 2413|      4|       return -1;
 2414|      4|    }
 2415|       |
 2416|    247|    source = (ogs_nas_mobile_station_classmark_2_t *)pkbuf->data;
 2417|       |
 2418|    247|    mobile_station_classmark_2->length = source->length;
 2419|    247|    size = mobile_station_classmark_2->length + sizeof(mobile_station_classmark_2->length);
 2420|       |
 2421|    247|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2421:9): [True: 1, False: 246]
  ------------------
 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|    246|    if (sizeof(*mobile_station_classmark_2) < size) return -1;
  ------------------
  |  Branch (2426:9): [True: 1, False: 245]
  ------------------
 2427|    245|    memcpy(mobile_station_classmark_2, pkbuf->data - size, size);
 2428|       |
 2429|    245|    ogs_trace("  MOBILE_STATION_CLASSMARK_2 - ");
  ------------------
  |  |   40|    245|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    245|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    245|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    245|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    245|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    245|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2430|    245|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    245|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    245|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2431|       |
 2432|    245|    return size;
 2433|    246|}
ogs_nas_5gs_decode_key_set_identifier:
 2453|  1.14k|{
 2454|  1.14k|    int size = sizeof(ogs_nas_key_set_identifier_t);
 2455|       |
 2456|  1.14k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2456:9): [True: 1, False: 1.14k]
  ------------------
 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.14k|    memcpy(key_set_identifier, pkbuf->data - size, size);
 2462|       |
 2463|  1.14k|    ogs_trace("  KEY_SET_IDENTIFIER - ");
  ------------------
  |  |   40|  1.14k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.14k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.14k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.14k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.14k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.14k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2464|  1.14k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.14k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.14k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2465|       |
 2466|  1.14k|    return size;
 2467|  1.14k|}
ogs_nas_5gs_decode_message_container:
 2485|    994|{
 2486|    994|    int size = 0;
 2487|    994|    ogs_nas_message_container_t *source = NULL;
 2488|       |
 2489|    994|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (2489:9): [True: 9, False: 985]
  ------------------
 2490|      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__) 
  |  |  ------------------
  ------------------
 2491|      9|       return -1;
 2492|      9|    }
 2493|       |
 2494|    985|    source = (ogs_nas_message_container_t *)pkbuf->data;
 2495|       |
 2496|    985|    message_container->length = be16toh(source->length);
 2497|    985|    size = message_container->length + sizeof(message_container->length);
 2498|       |
 2499|    985|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2499:9): [True: 21, False: 964]
  ------------------
 2500|     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__) 
  |  |  ------------------
  ------------------
 2501|     21|       return -1;
 2502|     21|    }
 2503|       |
 2504|    964|    message_container->buffer = pkbuf->data - size + sizeof(message_container->length);
 2505|       |
 2506|    964|    ogs_trace("  MESSAGE_CONTAINER - ");
  ------------------
  |  |   40|    964|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    964|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    964|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    964|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    964|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    964|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2507|    964|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)message_container->buffer, message_container->length);
  ------------------
  |  |   53|    964|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    964|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2508|       |
 2509|    964|    return size;
 2510|    985|}
ogs_nas_5gs_decode_security_algorithms:
 2538|    146|{
 2539|    146|    int size = sizeof(ogs_nas_security_algorithms_t);
 2540|       |
 2541|    146|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2541:9): [True: 0, False: 146]
  ------------------
 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|    146|    memcpy(security_algorithms, pkbuf->data - size, size);
 2547|       |
 2548|    146|    ogs_trace("  SECURITY_ALGORITHMS - ");
  ------------------
  |  |   40|    146|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    146|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    146|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    146|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    146|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    146|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2549|    146|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    146|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    146|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2550|       |
 2551|    146|    return size;
 2552|    146|}
ogs_nas_5gs_decode_network_name:
 2572|    588|{
 2573|    588|    int size = 0;
 2574|    588|    ogs_nas_network_name_t *source = NULL;
 2575|       |
 2576|    588|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (2576:9): [True: 3, False: 585]
  ------------------
 2577|      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__) 
  |  |  ------------------
  ------------------
 2578|      3|       return -1;
 2579|      3|    }
 2580|       |
 2581|    585|    source = (ogs_nas_network_name_t *)pkbuf->data;
 2582|       |
 2583|    585|    network_name->length = source->length;
 2584|    585|    size = network_name->length + sizeof(network_name->length);
 2585|       |
 2586|    585|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2586:9): [True: 5, False: 580]
  ------------------
 2587|      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__) 
  |  |  ------------------
  ------------------
 2588|      5|       return -1;
 2589|      5|    }
 2590|       |
 2591|    580|    if (sizeof(*network_name) < size) return -1;
  ------------------
  |  Branch (2591:9): [True: 0, False: 580]
  ------------------
 2592|    580|    memcpy(network_name, pkbuf->data - size, size);
 2593|       |
 2594|    580|    ogs_trace("  NETWORK_NAME - ");
  ------------------
  |  |   40|    580|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    580|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    580|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    580|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    580|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    580|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2595|    580|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    580|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    580|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2596|       |
 2597|    580|    return size;
 2598|    580|}
ogs_nas_5gs_decode_network_slicing_indication:
 2618|  2.88k|{
 2619|  2.88k|    int size = sizeof(ogs_nas_network_slicing_indication_t);
 2620|       |
 2621|  2.88k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2621:9): [True: 0, False: 2.88k]
  ------------------
 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|  2.88k|    memcpy(network_slicing_indication, pkbuf->data - size, size);
 2627|       |
 2628|  2.88k|    ogs_trace("  NETWORK_SLICING_INDICATION - ");
  ------------------
  |  |   40|  2.88k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.88k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.88k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.88k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.88k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.88k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2629|  2.88k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  2.88k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  2.88k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2630|       |
 2631|  2.88k|    return size;
 2632|  2.88k|}
ogs_nas_5gs_decode_non_3gpp_nw_provided_policies:
 2650|    557|{
 2651|    557|    int size = sizeof(ogs_nas_non_3gpp_nw_provided_policies_t);
 2652|       |
 2653|    557|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2653:9): [True: 4, False: 553]
  ------------------
 2654|      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__) 
  |  |  ------------------
  ------------------
 2655|      4|       return -1;
 2656|      4|    }
 2657|       |
 2658|    553|    memcpy(non_3gpp_nw_provided_policies, pkbuf->data - size, size);
 2659|       |
 2660|    553|    ogs_trace("  NON_3GPP_NW_PROVIDED_POLICIES - ");
  ------------------
  |  |   40|    553|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    553|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    553|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    553|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    553|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    553|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2661|    553|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    553|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    553|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2662|       |
 2663|    553|    return size;
 2664|    557|}
ogs_nas_5gs_decode_nssai:
 2682|  1.41k|{
 2683|  1.41k|    int size = 0;
 2684|  1.41k|    ogs_nas_nssai_t *source = NULL;
 2685|       |
 2686|  1.41k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (2686:9): [True: 6, False: 1.40k]
  ------------------
 2687|      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__) 
  |  |  ------------------
  ------------------
 2688|      6|       return -1;
 2689|      6|    }
 2690|       |
 2691|  1.40k|    source = (ogs_nas_nssai_t *)pkbuf->data;
 2692|       |
 2693|  1.40k|    nssai->length = source->length;
 2694|  1.40k|    size = nssai->length + sizeof(nssai->length);
 2695|       |
 2696|  1.40k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2696:9): [True: 4, False: 1.40k]
  ------------------
 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.40k|    if (sizeof(*nssai) < size) return -1;
  ------------------
  |  Branch (2701:9): [True: 2, False: 1.40k]
  ------------------
 2702|  1.40k|    memcpy(nssai, pkbuf->data - size, size);
 2703|       |
 2704|  1.40k|    ogs_trace("  NSSAI - ");
  ------------------
  |  |   40|  1.40k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.40k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.40k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.40k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.40k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.40k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2705|  1.40k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.40k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.40k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2706|       |
 2707|  1.40k|    return size;
 2708|  1.40k|}
ogs_nas_5gs_decode_nssai_inclusion_mode:
 2728|    839|{
 2729|    839|    int size = sizeof(ogs_nas_nssai_inclusion_mode_t);
 2730|       |
 2731|    839|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2731:9): [True: 0, False: 839]
  ------------------
 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|    839|    memcpy(nssai_inclusion_mode, pkbuf->data - size, size);
 2737|       |
 2738|    839|    ogs_trace("  NSSAI_INCLUSION_MODE - ");
  ------------------
  |  |   40|    839|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    839|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    839|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    839|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    839|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    839|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2739|    839|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    839|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    839|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2740|       |
 2741|    839|    return size;
 2742|    839|}
ogs_nas_5gs_decode_operator_defined_access_category_definitions:
 2760|    461|{
 2761|    461|    int size = 0;
 2762|    461|    ogs_nas_operator_defined_access_category_definitions_t *source = NULL;
 2763|       |
 2764|    461|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (2764:9): [True: 6, False: 455]
  ------------------
 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|    455|    source = (ogs_nas_operator_defined_access_category_definitions_t *)pkbuf->data;
 2770|       |
 2771|    455|    operator_defined_access_category_definitions->length = be16toh(source->length);
 2772|    455|    size = operator_defined_access_category_definitions->length + sizeof(operator_defined_access_category_definitions->length);
 2773|       |
 2774|    455|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2774:9): [True: 21, False: 434]
  ------------------
 2775|     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__) 
  |  |  ------------------
  ------------------
 2776|     21|       return -1;
 2777|     21|    }
 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|    455|}
ogs_nas_5gs_decode_payload_container:
 2813|    652|{
 2814|    652|    int size = 0;
 2815|    652|    ogs_nas_payload_container_t *source = NULL;
 2816|       |
 2817|    652|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (2817:9): [True: 4, False: 648]
  ------------------
 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|    648|    source = (ogs_nas_payload_container_t *)pkbuf->data;
 2823|       |
 2824|    648|    payload_container->length = be16toh(source->length);
 2825|    648|    size = payload_container->length + sizeof(payload_container->length);
 2826|       |
 2827|    648|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2827:9): [True: 23, False: 625]
  ------------------
 2828|     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__) 
  |  |  ------------------
  ------------------
 2829|     23|       return -1;
 2830|     23|    }
 2831|       |
 2832|    625|    payload_container->buffer = pkbuf->data - size + sizeof(payload_container->length);
 2833|       |
 2834|    625|    ogs_trace("  PAYLOAD_CONTAINER - ");
  ------------------
  |  |   40|    625|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    625|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    625|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    625|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    625|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    625|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2835|    625|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)payload_container->buffer, payload_container->length);
  ------------------
  |  |   53|    625|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    625|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2836|       |
 2837|    625|    return size;
 2838|    648|}
ogs_nas_5gs_decode_5gs_mobile_identity:
 2866|  1.92k|{
 2867|  1.92k|    int size = 0;
 2868|  1.92k|    ogs_nas_5gs_mobile_identity_t *source = NULL;
 2869|       |
 2870|  1.92k|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (2870:9): [True: 13, False: 1.91k]
  ------------------
 2871|     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__) 
  |  |  ------------------
  ------------------
 2872|     13|       return -1;
 2873|     13|    }
 2874|       |
 2875|  1.91k|    source = (ogs_nas_5gs_mobile_identity_t *)pkbuf->data;
 2876|       |
 2877|  1.91k|    mobile_identity->length = be16toh(source->length);
 2878|  1.91k|    size = mobile_identity->length + sizeof(mobile_identity->length);
 2879|       |
 2880|  1.91k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2880:9): [True: 25, False: 1.89k]
  ------------------
 2881|     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__) 
  |  |  ------------------
  ------------------
 2882|     25|       return -1;
 2883|     25|    }
 2884|       |
 2885|  1.89k|    mobile_identity->buffer = pkbuf->data - size + sizeof(mobile_identity->length);
 2886|       |
 2887|  1.89k|    ogs_trace("  5GS_MOBILE_IDENTITY - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 2888|  1.89k|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)mobile_identity->buffer, mobile_identity->length);
  ------------------
  |  |   53|  1.89k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.89k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2889|       |
 2890|  1.89k|    return size;
 2891|  1.91k|}
ogs_nas_5gs_decode_payload_container_type:
 2919|  1.00k|{
 2920|  1.00k|    int size = sizeof(ogs_nas_payload_container_type_t);
 2921|       |
 2922|  1.00k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2922:9): [True: 0, False: 1.00k]
  ------------------
 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.00k|    memcpy(payload_container_type, pkbuf->data - size, size);
 2928|       |
 2929|  1.00k|    ogs_trace("  PAYLOAD_CONTAINER_TYPE - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 2930|  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
  |  |  ------------------
  ------------------
 2931|       |
 2932|  1.00k|    return size;
 2933|  1.00k|}
ogs_nas_5gs_decode_pdu_session_identity_2:
 2951|    631|{
 2952|    631|    int size = sizeof(ogs_nas_pdu_session_identity_2_t);
 2953|       |
 2954|    631|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2954:9): [True: 6, False: 625]
  ------------------
 2955|      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__) 
  |  |  ------------------
  ------------------
 2956|      6|       return -1;
 2957|      6|    }
 2958|       |
 2959|    625|    memcpy(pdu_session_identity_2, pkbuf->data - size, size);
 2960|       |
 2961|    625|    ogs_trace("  PDU_SESSION_IDENTITY_2 - ");
  ------------------
  |  |   40|    625|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    625|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    625|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    625|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    625|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    625|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2962|    625|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    625|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    625|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2963|       |
 2964|    625|    return size;
 2965|    631|}
ogs_nas_5gs_decode_pdu_session_reactivation_result:
 2985|    532|{
 2986|    532|    int size = 0;
 2987|    532|    ogs_nas_pdu_session_reactivation_result_t *source = NULL;
 2988|       |
 2989|    532|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (2989:9): [True: 3, False: 529]
  ------------------
 2990|      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__) 
  |  |  ------------------
  ------------------
 2991|      3|       return -1;
 2992|      3|    }
 2993|       |
 2994|    529|    source = (ogs_nas_pdu_session_reactivation_result_t *)pkbuf->data;
 2995|       |
 2996|    529|    pdu_session_reactivation_result->length = source->length;
 2997|    529|    size = pdu_session_reactivation_result->length + sizeof(pdu_session_reactivation_result->length);
 2998|       |
 2999|    529|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2999:9): [True: 7, False: 522]
  ------------------
 3000|      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__) 
  |  |  ------------------
  ------------------
 3001|      7|       return -1;
 3002|      7|    }
 3003|       |
 3004|    522|    if (sizeof(*pdu_session_reactivation_result) < size) return -1;
  ------------------
  |  Branch (3004:9): [True: 1, False: 521]
  ------------------
 3005|    521|    memcpy(pdu_session_reactivation_result, pkbuf->data - size, size);
 3006|       |
 3007|    521|    pdu_session_reactivation_result->psi = be16toh(pdu_session_reactivation_result->psi);
 3008|       |
 3009|    521|    ogs_trace("  PDU_SESSION_REACTIVATION_RESULT - ");
  ------------------
  |  |   40|    521|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    521|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    521|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    521|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    521|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    521|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3010|    521|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    521|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    521|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3011|       |
 3012|    521|    return size;
 3013|    522|}
ogs_nas_5gs_decode_pdu_session_reactivation_result_error_cause:
 3035|    482|{
 3036|    482|    int size = 0;
 3037|    482|    ogs_nas_pdu_session_reactivation_result_error_cause_t *source = NULL;
 3038|       |
 3039|    482|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (3039:9): [True: 5, False: 477]
  ------------------
 3040|      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__) 
  |  |  ------------------
  ------------------
 3041|      5|       return -1;
 3042|      5|    }
 3043|       |
 3044|    477|    source = (ogs_nas_pdu_session_reactivation_result_error_cause_t *)pkbuf->data;
 3045|       |
 3046|    477|    pdu_session_reactivation_result_error_cause->length = be16toh(source->length);
 3047|    477|    size = pdu_session_reactivation_result_error_cause->length + sizeof(pdu_session_reactivation_result_error_cause->length);
 3048|       |
 3049|    477|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3049:9): [True: 24, False: 453]
  ------------------
 3050|     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__) 
  |  |  ------------------
  ------------------
 3051|     24|       return -1;
 3052|     24|    }
 3053|       |
 3054|    453|    pdu_session_reactivation_result_error_cause->buffer = pkbuf->data - size + sizeof(pdu_session_reactivation_result_error_cause->length);
 3055|       |
 3056|    453|    ogs_trace("  PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE - ");
  ------------------
  |  |   40|    453|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    453|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    453|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    453|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    453|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    453|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3057|    453|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)pdu_session_reactivation_result_error_cause->buffer, pdu_session_reactivation_result_error_cause->length);
  ------------------
  |  |   53|    453|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    453|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3058|       |
 3059|    453|    return size;
 3060|    477|}
ogs_nas_5gs_decode_pdu_session_status:
 3088|  1.42k|{
 3089|  1.42k|    int size = 0;
 3090|  1.42k|    ogs_nas_pdu_session_status_t *source = NULL;
 3091|       |
 3092|  1.42k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3092:9): [True: 8, False: 1.41k]
  ------------------
 3093|      8|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 3094|      8|       return -1;
 3095|      8|    }
 3096|       |
 3097|  1.41k|    source = (ogs_nas_pdu_session_status_t *)pkbuf->data;
 3098|       |
 3099|  1.41k|    pdu_session_status->length = source->length;
 3100|  1.41k|    size = pdu_session_status->length + sizeof(pdu_session_status->length);
 3101|       |
 3102|  1.41k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3102:9): [True: 4, False: 1.41k]
  ------------------
 3103|      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__) 
  |  |  ------------------
  ------------------
 3104|      4|       return -1;
 3105|      4|    }
 3106|       |
 3107|  1.41k|    if (sizeof(*pdu_session_status) < size) return -1;
  ------------------
  |  Branch (3107:9): [True: 2, False: 1.41k]
  ------------------
 3108|  1.41k|    memcpy(pdu_session_status, pkbuf->data - size, size);
 3109|       |
 3110|  1.41k|    pdu_session_status->psi = be16toh(pdu_session_status->psi);
 3111|       |
 3112|  1.41k|    ogs_trace("  PDU_SESSION_STATUS - ");
  ------------------
  |  |   40|  1.41k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.41k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.41k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.41k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.41k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.41k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3113|  1.41k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.41k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.41k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3114|       |
 3115|  1.41k|    return size;
 3116|  1.41k|}
ogs_nas_5gs_decode_plmn_list:
 3138|    215|{
 3139|    215|    int size = 0;
 3140|    215|    ogs_nas_plmn_list_t *source = NULL;
 3141|       |
 3142|    215|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3142:9): [True: 4, False: 211]
  ------------------
 3143|      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__) 
  |  |  ------------------
  ------------------
 3144|      4|       return -1;
 3145|      4|    }
 3146|       |
 3147|    211|    source = (ogs_nas_plmn_list_t *)pkbuf->data;
 3148|       |
 3149|    211|    plmn_list->length = source->length;
 3150|    211|    size = plmn_list->length + sizeof(plmn_list->length);
 3151|       |
 3152|    211|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3152:9): [True: 2, False: 209]
  ------------------
 3153|      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__) 
  |  |  ------------------
  ------------------
 3154|      2|       return -1;
 3155|      2|    }
 3156|       |
 3157|    209|    if (sizeof(*plmn_list) < size) return -1;
  ------------------
  |  Branch (3157:9): [True: 2, False: 207]
  ------------------
 3158|    207|    memcpy(plmn_list, pkbuf->data - size, size);
 3159|       |
 3160|    207|    ogs_trace("  PLMN_LIST - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 3161|    207|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    207|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    207|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3162|       |
 3163|    207|    return size;
 3164|    209|}
ogs_nas_5gs_decode_rejected_nssai:
 3184|    957|{
 3185|    957|    int size = 0;
 3186|    957|    ogs_nas_rejected_nssai_t *source = NULL;
 3187|       |
 3188|    957|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3188:9): [True: 5, False: 952]
  ------------------
 3189|      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__) 
  |  |  ------------------
  ------------------
 3190|      5|       return -1;
 3191|      5|    }
 3192|       |
 3193|    952|    source = (ogs_nas_rejected_nssai_t *)pkbuf->data;
 3194|       |
 3195|    952|    rejected_nssai->length = source->length;
 3196|    952|    size = rejected_nssai->length + sizeof(rejected_nssai->length);
 3197|       |
 3198|    952|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3198:9): [True: 2, False: 950]
  ------------------
 3199|      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__) 
  |  |  ------------------
  ------------------
 3200|      2|       return -1;
 3201|      2|    }
 3202|       |
 3203|    950|    if (sizeof(*rejected_nssai) < size) return -1;
  ------------------
  |  Branch (3203:9): [True: 1, False: 949]
  ------------------
 3204|    949|    memcpy(rejected_nssai, pkbuf->data - size, size);
 3205|       |
 3206|    949|    ogs_trace("  REJECTED_NSSAI - ");
  ------------------
  |  |   40|    949|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    949|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    949|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    949|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    949|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    949|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3207|    949|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    949|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    949|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3208|       |
 3209|    949|    return size;
 3210|    950|}
ogs_nas_5gs_decode_release_assistance_indication:
 3230|  2.66k|{
 3231|  2.66k|    int size = sizeof(ogs_nas_release_assistance_indication_t);
 3232|       |
 3233|  2.66k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3233:9): [True: 0, False: 2.66k]
  ------------------
 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.66k|    memcpy(release_assistance_indication, pkbuf->data - size, size);
 3239|       |
 3240|  2.66k|    ogs_trace("  RELEASE_ASSISTANCE_INDICATION - ");
  ------------------
  |  |   40|  2.66k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.66k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.66k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.66k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.66k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.66k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3241|  2.66k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  2.66k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  2.66k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3242|       |
 3243|  2.66k|    return size;
 3244|  2.66k|}
ogs_nas_5gs_decode_request_type:
 3262|    834|{
 3263|    834|    int size = sizeof(ogs_nas_request_type_t);
 3264|       |
 3265|    834|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3265:9): [True: 0, False: 834]
  ------------------
 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|    834|    memcpy(request_type, pkbuf->data - size, size);
 3271|       |
 3272|    834|    ogs_trace("  REQUEST_TYPE - ");
  ------------------
  |  |   40|    834|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    834|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    834|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    834|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    834|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    834|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3273|    834|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    834|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    834|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3274|       |
 3275|    834|    return size;
 3276|    834|}
ogs_nas_5gs_decode_s1_ue_network_capability:
 3294|    235|{
 3295|    235|    int size = 0;
 3296|    235|    ogs_nas_s1_ue_network_capability_t *source = NULL;
 3297|       |
 3298|    235|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3298:9): [True: 2, False: 233]
  ------------------
 3299|      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__) 
  |  |  ------------------
  ------------------
 3300|      2|       return -1;
 3301|      2|    }
 3302|       |
 3303|    233|    source = (ogs_nas_s1_ue_network_capability_t *)pkbuf->data;
 3304|       |
 3305|    233|    s1_ue_network_capability->length = source->length;
 3306|    233|    size = s1_ue_network_capability->length + sizeof(s1_ue_network_capability->length);
 3307|       |
 3308|    233|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3308:9): [True: 2, False: 231]
  ------------------
 3309|      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__) 
  |  |  ------------------
  ------------------
 3310|      2|       return -1;
 3311|      2|    }
 3312|       |
 3313|    231|    if (sizeof(*s1_ue_network_capability) < size) return -1;
  ------------------
  |  Branch (3313:9): [True: 3, False: 228]
  ------------------
 3314|    228|    memcpy(s1_ue_network_capability, pkbuf->data - size, size);
 3315|       |
 3316|    228|    ogs_trace("  S1_UE_NETWORK_CAPABILITY - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 3317|    228|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    228|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    228|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3318|       |
 3319|    228|    return size;
 3320|    231|}
ogs_nas_5gs_decode_s1_ue_security_capability:
 3340|    213|{
 3341|    213|    int size = 0;
 3342|    213|    ogs_nas_s1_ue_security_capability_t *source = NULL;
 3343|       |
 3344|    213|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3344:9): [True: 3, False: 210]
  ------------------
 3345|      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__) 
  |  |  ------------------
  ------------------
 3346|      3|       return -1;
 3347|      3|    }
 3348|       |
 3349|    210|    source = (ogs_nas_s1_ue_security_capability_t *)pkbuf->data;
 3350|       |
 3351|    210|    s1_ue_security_capability->length = source->length;
 3352|    210|    size = s1_ue_security_capability->length + sizeof(s1_ue_security_capability->length);
 3353|       |
 3354|    210|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3354:9): [True: 2, False: 208]
  ------------------
 3355|      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__) 
  |  |  ------------------
  ------------------
 3356|      2|       return -1;
 3357|      2|    }
 3358|       |
 3359|    208|    if (sizeof(*s1_ue_security_capability) < size) return -1;
  ------------------
  |  Branch (3359:9): [True: 1, False: 207]
  ------------------
 3360|    207|    memcpy(s1_ue_security_capability, pkbuf->data - size, size);
 3361|       |
 3362|    207|    ogs_trace("  S1_UE_SECURITY_CAPABILITY - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 3363|    207|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    207|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    207|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3364|       |
 3365|    207|    return size;
 3366|    208|}
ogs_nas_5gs_decode_service_area_list:
 3386|    514|{
 3387|    514|    int size = 0;
 3388|    514|    ogs_nas_service_area_list_t *source = NULL;
 3389|       |
 3390|    514|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3390:9): [True: 1, False: 513]
  ------------------
 3391|      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__) 
  |  |  ------------------
  ------------------
 3392|      1|       return -1;
 3393|      1|    }
 3394|       |
 3395|    513|    source = (ogs_nas_service_area_list_t *)pkbuf->data;
 3396|       |
 3397|    513|    service_area_list->length = source->length;
 3398|    513|    size = service_area_list->length + sizeof(service_area_list->length);
 3399|       |
 3400|    513|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3400:9): [True: 2, False: 511]
  ------------------
 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|    511|    if (sizeof(*service_area_list) < size) return -1;
  ------------------
  |  Branch (3405:9): [True: 1, False: 510]
  ------------------
 3406|    510|    memcpy(service_area_list, pkbuf->data - size, size);
 3407|       |
 3408|    510|    ogs_trace("  SERVICE_AREA_LIST - ");
  ------------------
  |  |   40|    510|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    510|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    510|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    510|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    510|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    510|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3409|    510|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    510|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    510|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3410|       |
 3411|    510|    return size;
 3412|    511|}
ogs_nas_5gs_decode_5gs_network_feature_support:
 3432|    216|{
 3433|    216|    int size = 0;
 3434|    216|    ogs_nas_5gs_network_feature_support_t *source = NULL;
 3435|       |
 3436|    216|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3436:9): [True: 3, False: 213]
  ------------------
 3437|      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__) 
  |  |  ------------------
  ------------------
 3438|      3|       return -1;
 3439|      3|    }
 3440|       |
 3441|    213|    source = (ogs_nas_5gs_network_feature_support_t *)pkbuf->data;
 3442|       |
 3443|    213|    network_feature_support->length = source->length;
 3444|    213|    size = network_feature_support->length + sizeof(network_feature_support->length);
 3445|       |
 3446|    213|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3446:9): [True: 1, False: 212]
  ------------------
 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|    212|    if (sizeof(*network_feature_support) < size) return -1;
  ------------------
  |  Branch (3451:9): [True: 1, False: 211]
  ------------------
 3452|    211|    memcpy(network_feature_support, pkbuf->data - size, size);
 3453|       |
 3454|    211|    ogs_trace("  5GS_NETWORK_FEATURE_SUPPORT - ");
  ------------------
  |  |   40|    211|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    211|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    211|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    211|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    211|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    211|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3455|    211|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    211|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    211|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3456|       |
 3457|    211|    return size;
 3458|    212|}
ogs_nas_5gs_decode_sms_indication:
 3478|  7.35k|{
 3479|  7.35k|    int size = sizeof(ogs_nas_sms_indication_t);
 3480|       |
 3481|  7.35k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3481:9): [True: 0, False: 7.35k]
  ------------------
 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|  7.35k|    memcpy(sms_indication, pkbuf->data - size, size);
 3487|       |
 3488|  7.35k|    ogs_trace("  SMS_INDICATION - ");
  ------------------
  |  |   40|  7.35k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  7.35k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  7.35k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  7.35k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  7.35k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  7.35k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3489|  7.35k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  7.35k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  7.35k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3490|       |
 3491|  7.35k|    return size;
 3492|  7.35k|}
ogs_nas_5gs_decode_sor_transparent_container:
 3510|    611|{
 3511|    611|    int size = 0;
 3512|    611|    ogs_nas_sor_transparent_container_t *source = NULL;
 3513|       |
 3514|    611|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (3514:9): [True: 4, False: 607]
  ------------------
 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|    607|    source = (ogs_nas_sor_transparent_container_t *)pkbuf->data;
 3520|       |
 3521|    607|    sor_transparent_container->length = be16toh(source->length);
 3522|    607|    size = sor_transparent_container->length + sizeof(sor_transparent_container->length);
 3523|       |
 3524|    607|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3524:9): [True: 23, False: 584]
  ------------------
 3525|     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__) 
  |  |  ------------------
  ------------------
 3526|     23|       return -1;
 3527|     23|    }
 3528|       |
 3529|    584|    sor_transparent_container->buffer = pkbuf->data - size + sizeof(sor_transparent_container->length);
 3530|       |
 3531|    584|    ogs_trace("  SOR_TRANSPARENT_CONTAINER - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 3532|    584|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)sor_transparent_container->buffer, sor_transparent_container->length);
  ------------------
  |  |   53|    584|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    584|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3533|       |
 3534|    584|    return size;
 3535|    607|}
ogs_nas_5gs_decode_supported_codec_list:
 3563|    217|{
 3564|    217|    int size = 0;
 3565|    217|    ogs_nas_supported_codec_list_t *source = NULL;
 3566|       |
 3567|    217|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3567:9): [True: 1, False: 216]
  ------------------
 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|    216|    source = (ogs_nas_supported_codec_list_t *)pkbuf->data;
 3573|       |
 3574|    216|    supported_codec_list->length = source->length;
 3575|    216|    size = supported_codec_list->length + sizeof(supported_codec_list->length);
 3576|       |
 3577|    216|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3577:9): [True: 1, False: 215]
  ------------------
 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|    215|    if (sizeof(*supported_codec_list) < size) return -1;
  ------------------
  |  Branch (3582:9): [True: 1, False: 214]
  ------------------
 3583|    214|    memcpy(supported_codec_list, pkbuf->data - size, size);
 3584|       |
 3585|    214|    ogs_trace("  SUPPORTED_CODEC_LIST - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 3586|    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
  |  |  ------------------
  ------------------
 3587|       |
 3588|    214|    return size;
 3589|    215|}
ogs_nas_5gs_decode_time_zone:
 3609|    270|{
 3610|    270|    int size = sizeof(ogs_nas_time_zone_t);
 3611|       |
 3612|    270|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3612:9): [True: 4, False: 266]
  ------------------
 3613|      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__) 
  |  |  ------------------
  ------------------
 3614|      4|       return -1;
 3615|      4|    }
 3616|       |
 3617|    266|    memcpy(time_zone, pkbuf->data - size, size);
 3618|       |
 3619|    266|    ogs_trace("  TIME_ZONE - ");
  ------------------
  |  |   40|    266|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 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__) 
  |  |  ------------------
  ------------------
 3620|    266|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    266|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    266|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3621|       |
 3622|    266|    return size;
 3623|    270|}
ogs_nas_5gs_decode_time_zone_and_time:
 3643|    232|{
 3644|    232|    int size = sizeof(ogs_nas_time_zone_and_time_t);
 3645|       |
 3646|    232|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3646:9): [True: 11, False: 221]
  ------------------
 3647|     11|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 3648|     11|       return -1;
 3649|     11|    }
 3650|       |
 3651|    221|    memcpy(time_zone_and_time, pkbuf->data - size, size);
 3652|       |
 3653|    221|    ogs_trace("  TIME_ZONE_AND_TIME - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 3654|    221|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    221|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    221|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3655|       |
 3656|    221|    return size;
 3657|    232|}
ogs_nas_5gs_decode_ue_security_capability:
 3677|    400|{
 3678|    400|    int size = 0;
 3679|    400|    ogs_nas_ue_security_capability_t *source = NULL;
 3680|       |
 3681|    400|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3681:9): [True: 4, False: 396]
  ------------------
 3682|      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__) 
  |  |  ------------------
  ------------------
 3683|      4|       return -1;
 3684|      4|    }
 3685|       |
 3686|    396|    source = (ogs_nas_ue_security_capability_t *)pkbuf->data;
 3687|       |
 3688|    396|    ue_security_capability->length = source->length;
 3689|    396|    size = ue_security_capability->length + sizeof(ue_security_capability->length);
 3690|       |
 3691|    396|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3691:9): [True: 6, False: 390]
  ------------------
 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|    390|    if (sizeof(*ue_security_capability) < size) return -1;
  ------------------
  |  Branch (3696:9): [True: 1, False: 389]
  ------------------
 3697|    389|    memcpy(ue_security_capability, pkbuf->data - size, size);
 3698|       |
 3699|    389|    ogs_trace("  UE_SECURITY_CAPABILITY - ");
  ------------------
  |  |   40|    389|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    389|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    389|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    389|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    389|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    389|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3700|    389|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    389|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    389|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3701|       |
 3702|    389|    return size;
 3703|    390|}
ogs_nas_5gs_decode_ue_usage_setting:
 3723|    212|{
 3724|    212|    int size = 0;
 3725|    212|    ogs_nas_ue_usage_setting_t *source = NULL;
 3726|       |
 3727|    212|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3727:9): [True: 4, False: 208]
  ------------------
 3728|      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__) 
  |  |  ------------------
  ------------------
 3729|      4|       return -1;
 3730|      4|    }
 3731|       |
 3732|    208|    source = (ogs_nas_ue_usage_setting_t *)pkbuf->data;
 3733|       |
 3734|    208|    ue_usage_setting->length = source->length;
 3735|    208|    size = ue_usage_setting->length + sizeof(ue_usage_setting->length);
 3736|       |
 3737|    208|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3737:9): [True: 2, False: 206]
  ------------------
 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|    206|    if (sizeof(*ue_usage_setting) < size) return -1;
  ------------------
  |  Branch (3742:9): [True: 1, False: 205]
  ------------------
 3743|    205|    memcpy(ue_usage_setting, pkbuf->data - size, size);
 3744|       |
 3745|    205|    ogs_trace("  UE_USAGE_SETTING - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 3746|    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
  |  |  ------------------
  ------------------
 3747|       |
 3748|    205|    return size;
 3749|    206|}
ogs_nas_5gs_decode_ue_status:
 3769|    200|{
 3770|    200|    int size = 0;
 3771|    200|    ogs_nas_ue_status_t *source = NULL;
 3772|       |
 3773|    200|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3773:9): [True: 2, False: 198]
  ------------------
 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|    198|    source = (ogs_nas_ue_status_t *)pkbuf->data;
 3779|       |
 3780|    198|    ue_status->length = source->length;
 3781|    198|    size = ue_status->length + sizeof(ue_status->length);
 3782|       |
 3783|    198|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3783:9): [True: 1, False: 197]
  ------------------
 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|    197|    if (sizeof(*ue_status) < size) return -1;
  ------------------
  |  Branch (3788:9): [True: 1, False: 196]
  ------------------
 3789|    196|    memcpy(ue_status, pkbuf->data - size, size);
 3790|       |
 3791|    196|    ogs_trace("  UE_STATUS - ");
  ------------------
  |  |   40|    196|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    196|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    196|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    196|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    196|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    196|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3792|    196|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    196|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    196|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3793|       |
 3794|    196|    return size;
 3795|    197|}
ogs_nas_5gs_decode_uplink_data_status:
 3815|    452|{
 3816|    452|    int size = 0;
 3817|    452|    ogs_nas_uplink_data_status_t *source = NULL;
 3818|       |
 3819|    452|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3819:9): [True: 2, False: 450]
  ------------------
 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|    450|    source = (ogs_nas_uplink_data_status_t *)pkbuf->data;
 3825|       |
 3826|    450|    uplink_data_status->length = source->length;
 3827|    450|    size = uplink_data_status->length + sizeof(uplink_data_status->length);
 3828|       |
 3829|    450|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3829:9): [True: 1, False: 449]
  ------------------
 3830|      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__) 
  |  |  ------------------
  ------------------
 3831|      1|       return -1;
 3832|      1|    }
 3833|       |
 3834|    449|    if (sizeof(*uplink_data_status) < size) return -1;
  ------------------
  |  Branch (3834:9): [True: 1, False: 448]
  ------------------
 3835|    448|    memcpy(uplink_data_status, pkbuf->data - size, size);
 3836|       |
 3837|    448|    uplink_data_status->psi = be16toh(uplink_data_status->psi);
 3838|       |
 3839|    448|    ogs_trace("  UPLINK_DATA_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__) 
  |  |  ------------------
  ------------------
 3840|    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
  |  |  ------------------
  ------------------
 3841|       |
 3842|    448|    return size;
 3843|    449|}
ogs_nas_5gs_decode_5gs_registration_result:
 3865|  1.18k|{
 3866|  1.18k|    int size = 0;
 3867|  1.18k|    ogs_nas_5gs_registration_result_t *source = NULL;
 3868|       |
 3869|  1.18k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3869:9): [True: 1, False: 1.18k]
  ------------------
 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.18k|    source = (ogs_nas_5gs_registration_result_t *)pkbuf->data;
 3875|       |
 3876|  1.18k|    registration_result->length = source->length;
 3877|  1.18k|    size = registration_result->length + sizeof(registration_result->length);
 3878|       |
 3879|  1.18k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3879:9): [True: 9, False: 1.17k]
  ------------------
 3880|      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__) 
  |  |  ------------------
  ------------------
 3881|      9|       return -1;
 3882|      9|    }
 3883|       |
 3884|  1.17k|    if (sizeof(*registration_result) < size) return -1;
  ------------------
  |  Branch (3884:9): [True: 1, False: 1.17k]
  ------------------
 3885|  1.17k|    memcpy(registration_result, pkbuf->data - size, size);
 3886|       |
 3887|  1.17k|    ogs_trace("  5GS_REGISTRATION_RESULT - ");
  ------------------
  |  |   40|  1.17k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.17k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.17k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.17k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.17k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.17k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3888|  1.17k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.17k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.17k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3889|       |
 3890|  1.17k|    return size;
 3891|  1.17k|}
ogs_nas_5gs_decode_ue_radio_capability_id:
 3911|    634|{
 3912|    634|    int size = 0;
 3913|    634|    ogs_nas_ue_radio_capability_id_t *source = NULL;
 3914|       |
 3915|    634|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3915:9): [True: 3, False: 631]
  ------------------
 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|    631|    source = (ogs_nas_ue_radio_capability_id_t *)pkbuf->data;
 3921|       |
 3922|    631|    ue_radio_capability_id->length = source->length;
 3923|    631|    size = ue_radio_capability_id->length + sizeof(ue_radio_capability_id->length);
 3924|       |
 3925|    631|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3925:9): [True: 3, False: 628]
  ------------------
 3926|      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__) 
  |  |  ------------------
  ------------------
 3927|      3|       return -1;
 3928|      3|    }
 3929|       |
 3930|    628|    if (sizeof(*ue_radio_capability_id) < size) return -1;
  ------------------
  |  Branch (3930:9): [True: 0, False: 628]
  ------------------
 3931|    628|    memcpy(ue_radio_capability_id, pkbuf->data - size, size);
 3932|       |
 3933|    628|    ogs_trace("  UE_RADIO_CAPABILITY_ID - ");
  ------------------
  |  |   40|    628|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    628|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    628|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    628|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    628|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    628|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3934|    628|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    628|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    628|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3935|       |
 3936|    628|    return size;
 3937|    628|}
ogs_nas_5gs_decode_ue_radio_capability_id_deletion_indication:
 3957|  1.69k|{
 3958|  1.69k|    int size = sizeof(ogs_nas_ue_radio_capability_id_deletion_indication_t);
 3959|       |
 3960|  1.69k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3960:9): [True: 0, False: 1.69k]
  ------------------
 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.69k|    memcpy(ue_radio_capability_id_deletion_indication, pkbuf->data - size, size);
 3966|       |
 3967|  1.69k|    ogs_trace("  UE_RADIO_CAPABILITY_ID_DELETION_INDICATION - ");
  ------------------
  |  |   40|  1.69k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.69k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.69k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.69k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.69k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.69k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3968|  1.69k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.69k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.69k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3969|       |
 3970|  1.69k|    return size;
 3971|  1.69k|}
ogs_nas_5gs_decode_5gs_registration_type:
 3989|    640|{
 3990|    640|    int size = sizeof(ogs_nas_5gs_registration_type_t);
 3991|       |
 3992|    640|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3992:9): [True: 0, False: 640]
  ------------------
 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|    640|    memcpy(registration_type, pkbuf->data - size, size);
 3998|       |
 3999|    640|    ogs_trace("  5GS_REGISTRATION_TYPE - ");
  ------------------
  |  |   40|    640|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    640|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    640|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    640|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    640|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    640|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4000|    640|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    640|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    640|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4001|       |
 4002|    640|    return size;
 4003|    640|}
ogs_nas_5gs_decode_truncated_5g_s_tmsi_configuration:
 4023|    491|{
 4024|    491|    int size = 0;
 4025|    491|    ogs_nas_truncated_5g_s_tmsi_configuration_t *source = NULL;
 4026|       |
 4027|    491|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4027:9): [True: 1, False: 490]
  ------------------
 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|    490|    source = (ogs_nas_truncated_5g_s_tmsi_configuration_t *)pkbuf->data;
 4033|       |
 4034|    490|    truncated_s_tmsi_configuration->length = source->length;
 4035|    490|    size = truncated_s_tmsi_configuration->length + sizeof(truncated_s_tmsi_configuration->length);
 4036|       |
 4037|    490|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4037:9): [True: 4, False: 486]
  ------------------
 4038|      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__) 
  |  |  ------------------
  ------------------
 4039|      4|       return -1;
 4040|      4|    }
 4041|       |
 4042|    486|    if (sizeof(*truncated_s_tmsi_configuration) < size) return -1;
  ------------------
  |  Branch (4042:9): [True: 2, False: 484]
  ------------------
 4043|    484|    memcpy(truncated_s_tmsi_configuration, pkbuf->data - size, size);
 4044|       |
 4045|    484|    ogs_trace("  TRUNCATED_5G_S_TMSI_CONFIGURATION - ");
  ------------------
  |  |   40|    484|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    484|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    484|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    484|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    484|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    484|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4046|    484|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    484|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    484|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4047|       |
 4048|    484|    return size;
 4049|    486|}
ogs_nas_5gs_decode_wus_assistance_information:
 4069|    512|{
 4070|    512|    int size = 0;
 4071|    512|    ogs_nas_wus_assistance_information_t *source = NULL;
 4072|       |
 4073|    512|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4073:9): [True: 5, False: 507]
  ------------------
 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|    507|    source = (ogs_nas_wus_assistance_information_t *)pkbuf->data;
 4079|       |
 4080|    507|    wus_assistance_information->length = source->length;
 4081|    507|    size = wus_assistance_information->length + sizeof(wus_assistance_information->length);
 4082|       |
 4083|    507|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4083:9): [True: 4, False: 503]
  ------------------
 4084|      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__) 
  |  |  ------------------
  ------------------
 4085|      4|       return -1;
 4086|      4|    }
 4087|       |
 4088|    503|    if (sizeof(*wus_assistance_information) < size) return -1;
  ------------------
  |  Branch (4088:9): [True: 0, False: 503]
  ------------------
 4089|    503|    memcpy(wus_assistance_information, pkbuf->data - size, size);
 4090|       |
 4091|    503|    ogs_trace("  WUS_ASSISTANCE_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__) 
  |  |  ------------------
  ------------------
 4092|    503|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    503|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    503|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4093|       |
 4094|    503|    return size;
 4095|    503|}
ogs_nas_5gs_decode_n5gc_indication:
 4115|  1.04k|{
 4116|  1.04k|    int size = sizeof(ogs_nas_n5gc_indication_t);
 4117|       |
 4118|  1.04k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4118:9): [True: 0, False: 1.04k]
  ------------------
 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|  1.04k|    memcpy(n5gc_indication, pkbuf->data - size, size);
 4124|       |
 4125|  1.04k|    ogs_trace("  N5GC_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__) 
  |  |  ------------------
  ------------------
 4126|  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
  |  |  ------------------
  ------------------
 4127|       |
 4128|  1.04k|    return size;
 4129|  1.04k|}
ogs_nas_5gs_decode_nb_n1_mode_drx_parameters:
 4147|    410|{
 4148|    410|    int size = 0;
 4149|    410|    ogs_nas_nb_n1_mode_drx_parameters_t *source = NULL;
 4150|       |
 4151|    410|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4151:9): [True: 4, False: 406]
  ------------------
 4152|      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__) 
  |  |  ------------------
  ------------------
 4153|      4|       return -1;
 4154|      4|    }
 4155|       |
 4156|    406|    source = (ogs_nas_nb_n1_mode_drx_parameters_t *)pkbuf->data;
 4157|       |
 4158|    406|    nb_n1_mode_drx_parameters->length = source->length;
 4159|    406|    size = nb_n1_mode_drx_parameters->length + sizeof(nb_n1_mode_drx_parameters->length);
 4160|       |
 4161|    406|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4161:9): [True: 2, False: 404]
  ------------------
 4162|      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__) 
  |  |  ------------------
  ------------------
 4163|      2|       return -1;
 4164|      2|    }
 4165|       |
 4166|    404|    if (sizeof(*nb_n1_mode_drx_parameters) < size) return -1;
  ------------------
  |  Branch (4166:9): [True: 2, False: 402]
  ------------------
 4167|    402|    memcpy(nb_n1_mode_drx_parameters, pkbuf->data - size, size);
 4168|       |
 4169|    402|    ogs_trace("  NB_N1_MODE_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__) 
  |  |  ------------------
  ------------------
 4170|    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
  |  |  ------------------
  ------------------
 4171|       |
 4172|    402|    return size;
 4173|    404|}
ogs_nas_5gs_decode_additional_configuration_indication:
 4193|    887|{
 4194|    887|    int size = sizeof(ogs_nas_additional_configuration_indication_t);
 4195|       |
 4196|    887|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4196:9): [True: 0, False: 887]
  ------------------
 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|    887|    memcpy(additional_configuration_indication, pkbuf->data - size, size);
 4202|       |
 4203|    887|    ogs_trace("  ADDITIONAL_CONFIGURATION_INDICATION - ");
  ------------------
  |  |   40|    887|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    887|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    887|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    887|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    887|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    887|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4204|    887|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    887|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    887|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4205|       |
 4206|    887|    return size;
 4207|    887|}
ogs_nas_5gs_decode_extended_rejected_nssai:
 4225|    883|{
 4226|    883|    int size = 0;
 4227|    883|    ogs_nas_extended_rejected_nssai_t *source = NULL;
 4228|       |
 4229|    883|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4229:9): [True: 3, False: 880]
  ------------------
 4230|      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__) 
  |  |  ------------------
  ------------------
 4231|      3|       return -1;
 4232|      3|    }
 4233|       |
 4234|    880|    source = (ogs_nas_extended_rejected_nssai_t *)pkbuf->data;
 4235|       |
 4236|    880|    extended_rejected_nssai->length = source->length;
 4237|    880|    size = extended_rejected_nssai->length + sizeof(extended_rejected_nssai->length);
 4238|       |
 4239|    880|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4239:9): [True: 6, False: 874]
  ------------------
 4240|      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__) 
  |  |  ------------------
  ------------------
 4241|      6|       return -1;
 4242|      6|    }
 4243|       |
 4244|    874|    if (sizeof(*extended_rejected_nssai) < size) return -1;
  ------------------
  |  Branch (4244:9): [True: 1, False: 873]
  ------------------
 4245|    873|    memcpy(extended_rejected_nssai, pkbuf->data - size, size);
 4246|       |
 4247|    873|    ogs_trace("  EXTENDED_REJECTED_NSSAI - ");
  ------------------
  |  |   40|    873|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    873|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    873|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    873|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    873|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    873|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4248|    873|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    873|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    873|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4249|       |
 4250|    873|    return size;
 4251|    874|}
ogs_nas_5gs_decode_ue_request_type:
 4271|    422|{
 4272|    422|    int size = 0;
 4273|    422|    ogs_nas_ue_request_type_t *source = NULL;
 4274|       |
 4275|    422|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4275:9): [True: 5, False: 417]
  ------------------
 4276|      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__) 
  |  |  ------------------
  ------------------
 4277|      5|       return -1;
 4278|      5|    }
 4279|       |
 4280|    417|    source = (ogs_nas_ue_request_type_t *)pkbuf->data;
 4281|       |
 4282|    417|    ue_request_type->length = source->length;
 4283|    417|    size = ue_request_type->length + sizeof(ue_request_type->length);
 4284|       |
 4285|    417|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4285:9): [True: 3, False: 414]
  ------------------
 4286|      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__) 
  |  |  ------------------
  ------------------
 4287|      3|       return -1;
 4288|      3|    }
 4289|       |
 4290|    414|    if (sizeof(*ue_request_type) < size) return -1;
  ------------------
  |  Branch (4290:9): [True: 1, False: 413]
  ------------------
 4291|    413|    memcpy(ue_request_type, pkbuf->data - size, size);
 4292|       |
 4293|    413|    ogs_trace("  UE_REQUEST_TYPE - ");
  ------------------
  |  |   40|    413|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    413|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    413|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    413|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    413|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    413|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4294|    413|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    413|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    413|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4295|       |
 4296|    413|    return size;
 4297|    414|}
ogs_nas_5gs_decode_paging_restriction:
 4317|    474|{
 4318|    474|    int size = 0;
 4319|    474|    ogs_nas_paging_restriction_t *source = NULL;
 4320|       |
 4321|    474|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4321:9): [True: 6, False: 468]
  ------------------
 4322|      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__) 
  |  |  ------------------
  ------------------
 4323|      6|       return -1;
 4324|      6|    }
 4325|       |
 4326|    468|    source = (ogs_nas_paging_restriction_t *)pkbuf->data;
 4327|       |
 4328|    468|    paging_restriction->length = source->length;
 4329|    468|    size = paging_restriction->length + sizeof(paging_restriction->length);
 4330|       |
 4331|    468|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4331:9): [True: 2, False: 466]
  ------------------
 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|    466|    if (sizeof(*paging_restriction) < size) return -1;
  ------------------
  |  Branch (4336:9): [True: 1, False: 465]
  ------------------
 4337|    465|    memcpy(paging_restriction, pkbuf->data - size, size);
 4338|       |
 4339|    465|    ogs_trace("  PAGING_RESTRICTION - ");
  ------------------
  |  |   40|    465|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    465|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    465|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    465|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    465|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    465|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4340|    465|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    465|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    465|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4341|       |
 4342|    465|    return size;
 4343|    466|}
ogs_nas_5gs_decode_nid:
 4363|    435|{
 4364|    435|    int size = 0;
 4365|    435|    ogs_nas_nid_t *source = NULL;
 4366|       |
 4367|    435|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4367:9): [True: 3, False: 432]
  ------------------
 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|    432|    source = (ogs_nas_nid_t *)pkbuf->data;
 4373|       |
 4374|    432|    nid->length = source->length;
 4375|    432|    size = nid->length + sizeof(nid->length);
 4376|       |
 4377|    432|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4377:9): [True: 5, False: 427]
  ------------------
 4378|      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__) 
  |  |  ------------------
  ------------------
 4379|      5|       return -1;
 4380|      5|    }
 4381|       |
 4382|    427|    if (sizeof(*nid) < size) return -1;
  ------------------
  |  Branch (4382:9): [True: 1, False: 426]
  ------------------
 4383|    426|    memcpy(nid, pkbuf->data - size, size);
 4384|       |
 4385|    426|    ogs_trace("  NID - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 4386|    426|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    426|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    426|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4387|       |
 4388|    426|    return size;
 4389|    427|}
ogs_nas_5gs_decode_5gs_tracking_area_identity:
 4409|    234|{
 4410|    234|    int size = sizeof(ogs_nas_5gs_tracking_area_identity_t);
 4411|       |
 4412|    234|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4412:9): [True: 7, False: 227]
  ------------------
 4413|      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__) 
  |  |  ------------------
  ------------------
 4414|      7|       return -1;
 4415|      7|    }
 4416|       |
 4417|    227|    memcpy(tracking_area_identity, pkbuf->data - size, size);
 4418|       |
 4419|    227|    tracking_area_identity->tac = ogs_be24toh(tracking_area_identity->tac);
 4420|       |
 4421|    227|    ogs_trace("  5GS_TRACKING_AREA_IDENTITY - ");
  ------------------
  |  |   40|    227|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    227|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    227|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    227|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    227|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    227|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4422|    227|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    227|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    227|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4423|       |
 4424|    227|    return size;
 4425|    234|}
ogs_nas_5gs_decode_peips_assistance_information:
 4447|    729|{
 4448|    729|    int size = 0;
 4449|    729|    ogs_nas_peips_assistance_information_t *source = NULL;
 4450|       |
 4451|    729|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4451:9): [True: 3, False: 726]
  ------------------
 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|    726|    source = (ogs_nas_peips_assistance_information_t *)pkbuf->data;
 4457|       |
 4458|    726|    peips_assistance_information->length = source->length;
 4459|    726|    size = peips_assistance_information->length + sizeof(peips_assistance_information->length);
 4460|       |
 4461|    726|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4461:9): [True: 4, False: 722]
  ------------------
 4462|      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__) 
  |  |  ------------------
  ------------------
 4463|      4|       return -1;
 4464|      4|    }
 4465|       |
 4466|    722|    if (sizeof(*peips_assistance_information) < size) return -1;
  ------------------
  |  Branch (4466:9): [True: 0, False: 722]
  ------------------
 4467|    722|    memcpy(peips_assistance_information, pkbuf->data - size, size);
 4468|       |
 4469|    722|    ogs_trace("  PEIPS_ASSISTANCE_INFORMATION - ");
  ------------------
  |  |   40|    722|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    722|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    722|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    722|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    722|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    722|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4470|    722|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    722|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    722|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4471|       |
 4472|    722|    return size;
 4473|    722|}
ogs_nas_5gs_decode_5gs_additional_request_result:
 4493|    419|{
 4494|    419|    int size = 0;
 4495|    419|    ogs_nas_5gs_additional_request_result_t *source = NULL;
 4496|       |
 4497|    419|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4497:9): [True: 2, False: 417]
  ------------------
 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|    417|    source = (ogs_nas_5gs_additional_request_result_t *)pkbuf->data;
 4503|       |
 4504|    417|    additional_request_result->length = source->length;
 4505|    417|    size = additional_request_result->length + sizeof(additional_request_result->length);
 4506|       |
 4507|    417|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4507:9): [True: 2, False: 415]
  ------------------
 4508|      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__) 
  |  |  ------------------
  ------------------
 4509|      2|       return -1;
 4510|      2|    }
 4511|       |
 4512|    415|    if (sizeof(*additional_request_result) < size) return -1;
  ------------------
  |  Branch (4512:9): [True: 2, False: 413]
  ------------------
 4513|    413|    memcpy(additional_request_result, pkbuf->data - size, size);
 4514|       |
 4515|    413|    ogs_trace("  5GS_ADDITIONAL_REQUEST_RESULT - ");
  ------------------
  |  |   40|    413|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    413|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    413|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    413|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    413|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    413|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4516|    413|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    413|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    413|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4517|       |
 4518|    413|    return size;
 4519|    415|}
ogs_nas_5gs_decode_nssrg_information:
 4539|    599|{
 4540|    599|    int size = 0;
 4541|    599|    ogs_nas_nssrg_information_t *source = NULL;
 4542|       |
 4543|    599|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (4543:9): [True: 3, False: 596]
  ------------------
 4544|      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__) 
  |  |  ------------------
  ------------------
 4545|      3|       return -1;
 4546|      3|    }
 4547|       |
 4548|    596|    source = (ogs_nas_nssrg_information_t *)pkbuf->data;
 4549|       |
 4550|    596|    nssrg_information->length = be16toh(source->length);
 4551|    596|    size = nssrg_information->length + sizeof(nssrg_information->length);
 4552|       |
 4553|    596|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4553:9): [True: 7, False: 589]
  ------------------
 4554|      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__) 
  |  |  ------------------
  ------------------
 4555|      7|       return -1;
 4556|      7|    }
 4557|       |
 4558|    589|    nssrg_information->buffer = pkbuf->data - size + sizeof(nssrg_information->length);
 4559|       |
 4560|    589|    ogs_trace("  NSSRG_INFORMATION - ");
  ------------------
  |  |   40|    589|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    589|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    589|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    589|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    589|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    589|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4561|    589|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)nssrg_information->buffer, nssrg_information->length);
  ------------------
  |  |   53|    589|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    589|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4562|       |
 4563|    589|    return size;
 4564|    596|}
ogs_nas_5gs_decode_list_of_plmns_to_be_used_in_disaster_condition:
 4592|    599|{
 4593|    599|    int size = 0;
 4594|    599|    ogs_nas_list_of_plmns_to_be_used_in_disaster_condition_t *source = NULL;
 4595|       |
 4596|    599|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4596:9): [True: 4, False: 595]
  ------------------
 4597|      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__) 
  |  |  ------------------
  ------------------
 4598|      4|       return -1;
 4599|      4|    }
 4600|       |
 4601|    595|    source = (ogs_nas_list_of_plmns_to_be_used_in_disaster_condition_t *)pkbuf->data;
 4602|       |
 4603|    595|    list_of_plmns_to_be_used_in_disaster_condition->length = source->length;
 4604|    595|    size = list_of_plmns_to_be_used_in_disaster_condition->length + sizeof(list_of_plmns_to_be_used_in_disaster_condition->length);
 4605|       |
 4606|    595|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4606:9): [True: 1, False: 594]
  ------------------
 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|    594|    if (sizeof(*list_of_plmns_to_be_used_in_disaster_condition) < size) return -1;
  ------------------
  |  Branch (4611:9): [True: 2, False: 592]
  ------------------
 4612|    592|    memcpy(list_of_plmns_to_be_used_in_disaster_condition, pkbuf->data - size, size);
 4613|       |
 4614|    592|    ogs_trace("  LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION - ");
  ------------------
  |  |   40|    592|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    592|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    592|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    592|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    592|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    592|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4615|    592|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    592|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    592|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4616|       |
 4617|    592|    return size;
 4618|    594|}
ogs_nas_5gs_decode_registration_wait_range:
 4638|  1.58k|{
 4639|  1.58k|    int size = 0;
 4640|  1.58k|    ogs_nas_registration_wait_range_t *source = NULL;
 4641|       |
 4642|  1.58k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4642:9): [True: 10, False: 1.57k]
  ------------------
 4643|     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__) 
  |  |  ------------------
  ------------------
 4644|     10|       return -1;
 4645|     10|    }
 4646|       |
 4647|  1.57k|    source = (ogs_nas_registration_wait_range_t *)pkbuf->data;
 4648|       |
 4649|  1.57k|    registration_wait_range->length = source->length;
 4650|  1.57k|    size = registration_wait_range->length + sizeof(registration_wait_range->length);
 4651|       |
 4652|  1.57k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4652:9): [True: 5, False: 1.56k]
  ------------------
 4653|      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__) 
  |  |  ------------------
  ------------------
 4654|      5|       return -1;
 4655|      5|    }
 4656|       |
 4657|  1.56k|    if (sizeof(*registration_wait_range) < size) return -1;
  ------------------
  |  Branch (4657:9): [True: 1, False: 1.56k]
  ------------------
 4658|  1.56k|    memcpy(registration_wait_range, pkbuf->data - size, size);
 4659|       |
 4660|  1.56k|    ogs_trace("  REGISTRATION_WAIT_RANGE - ");
  ------------------
  |  |   40|  1.56k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.56k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.56k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.56k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.56k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.56k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4661|  1.56k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.56k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.56k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4662|       |
 4663|  1.56k|    return size;
 4664|  1.56k|}
ogs_nas_5gs_decode_plmn_identity:
 4684|    355|{
 4685|    355|    int size = 0;
 4686|    355|    ogs_nas_plmn_identity_t *source = NULL;
 4687|       |
 4688|    355|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4688:9): [True: 2, False: 353]
  ------------------
 4689|      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__) 
  |  |  ------------------
  ------------------
 4690|      2|       return -1;
 4691|      2|    }
 4692|       |
 4693|    353|    source = (ogs_nas_plmn_identity_t *)pkbuf->data;
 4694|       |
 4695|    353|    plmn_identity->length = source->length;
 4696|    353|    size = plmn_identity->length + sizeof(plmn_identity->length);
 4697|       |
 4698|    353|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4698:9): [True: 4, False: 349]
  ------------------
 4699|      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__) 
  |  |  ------------------
  ------------------
 4700|      4|       return -1;
 4701|      4|    }
 4702|       |
 4703|    349|    if (sizeof(*plmn_identity) < size) return -1;
  ------------------
  |  Branch (4703:9): [True: 1, False: 348]
  ------------------
 4704|    348|    memcpy(plmn_identity, pkbuf->data - size, size);
 4705|       |
 4706|    348|    ogs_trace("  PLMN_IDENTITY - ");
  ------------------
  |  |   40|    348|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    348|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    348|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    348|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    348|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    348|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4707|    348|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    348|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    348|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4708|       |
 4709|    348|    return size;
 4710|    349|}
ogs_nas_5gs_decode_extended_cag_information_list:
 4730|  1.09k|{
 4731|  1.09k|    int size = 0;
 4732|  1.09k|    ogs_nas_extended_cag_information_list_t *source = NULL;
 4733|       |
 4734|  1.09k|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (4734:9): [True: 8, False: 1.09k]
  ------------------
 4735|      8|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 4736|      8|       return -1;
 4737|      8|    }
 4738|       |
 4739|  1.09k|    source = (ogs_nas_extended_cag_information_list_t *)pkbuf->data;
 4740|       |
 4741|  1.09k|    extended_cag_information_list->length = be16toh(source->length);
 4742|  1.09k|    size = extended_cag_information_list->length + sizeof(extended_cag_information_list->length);
 4743|       |
 4744|  1.09k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4744:9): [True: 24, False: 1.06k]
  ------------------
 4745|     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__) 
  |  |  ------------------
  ------------------
 4746|     24|       return -1;
 4747|     24|    }
 4748|       |
 4749|  1.06k|    extended_cag_information_list->buffer = pkbuf->data - size + sizeof(extended_cag_information_list->length);
 4750|       |
 4751|  1.06k|    ogs_trace("  EXTENDED_CAG_INFORMATION_LIST - ");
  ------------------
  |  |   40|  1.06k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.06k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.06k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.06k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.06k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.06k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4752|  1.06k|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)extended_cag_information_list->buffer, extended_cag_information_list->length);
  ------------------
  |  |   53|  1.06k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.06k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4753|       |
 4754|  1.06k|    return size;
 4755|  1.09k|}
ogs_nas_5gs_decode_nsag_information:
 4783|    497|{
 4784|    497|    int size = 0;
 4785|    497|    ogs_nas_nsag_information_t *source = NULL;
 4786|       |
 4787|    497|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (4787:9): [True: 5, False: 492]
  ------------------
 4788|      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__) 
  |  |  ------------------
  ------------------
 4789|      5|       return -1;
 4790|      5|    }
 4791|       |
 4792|    492|    source = (ogs_nas_nsag_information_t *)pkbuf->data;
 4793|       |
 4794|    492|    nsag_information->length = be16toh(source->length);
 4795|    492|    size = nsag_information->length + sizeof(nsag_information->length);
 4796|       |
 4797|    492|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4797:9): [True: 25, False: 467]
  ------------------
 4798|     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__) 
  |  |  ------------------
  ------------------
 4799|     25|       return -1;
 4800|     25|    }
 4801|       |
 4802|    467|    nsag_information->buffer = pkbuf->data - size + sizeof(nsag_information->length);
 4803|       |
 4804|    467|    ogs_trace("  NSAG_INFORMATION - ");
  ------------------
  |  |   40|    467|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    467|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    467|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    467|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    467|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    467|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4805|    467|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)nsag_information->buffer, nsag_information->length);
  ------------------
  |  |   53|    467|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    467|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4806|       |
 4807|    467|    return size;
 4808|    492|}
ogs_nas_5gs_decode_5gs_tracking_area_identity_list:
 4836|  2.49k|{
 4837|  2.49k|    int size = 0;
 4838|  2.49k|    ogs_nas_5gs_tracking_area_identity_list_t *source = NULL;
 4839|       |
 4840|  2.49k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4840:9): [True: 11, False: 2.47k]
  ------------------
 4841|     11|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 4842|     11|       return -1;
 4843|     11|    }
 4844|       |
 4845|  2.47k|    source = (ogs_nas_5gs_tracking_area_identity_list_t *)pkbuf->data;
 4846|       |
 4847|  2.47k|    tracking_area_identity_list->length = source->length;
 4848|  2.47k|    size = tracking_area_identity_list->length + sizeof(tracking_area_identity_list->length);
 4849|       |
 4850|  2.47k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4850:9): [True: 5, False: 2.47k]
  ------------------
 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.47k|    if (sizeof(*tracking_area_identity_list) < size) return -1;
  ------------------
  |  Branch (4855:9): [True: 1, False: 2.47k]
  ------------------
 4856|  2.47k|    memcpy(tracking_area_identity_list, pkbuf->data - size, size);
 4857|       |
 4858|  2.47k|    ogs_trace("  5GS_TRACKING_AREA_IDENTITY_LIST - ");
  ------------------
  |  |   40|  2.47k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.47k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.47k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.47k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.47k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.47k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4859|  2.47k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  2.47k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  2.47k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4860|       |
 4861|  2.47k|    return size;
 4862|  2.47k|}
ogs_nas_5gs_decode_priority_indicator:
 4882|  1.03k|{
 4883|  1.03k|    int size = sizeof(ogs_nas_priority_indicator_t);
 4884|       |
 4885|  1.03k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4885:9): [True: 0, False: 1.03k]
  ------------------
 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.03k|    memcpy(priority_indicator, pkbuf->data - size, size);
 4891|       |
 4892|  1.03k|    ogs_trace("  PRIORITY_INDICATOR - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 4893|  1.03k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.03k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.03k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4894|       |
 4895|  1.03k|    return size;
 4896|  1.03k|}
ogs_nas_5gs_decode_snpn_list:
 4914|    241|{
 4915|    241|    int size = 0;
 4916|    241|    ogs_nas_snpn_list_t *source = NULL;
 4917|       |
 4918|    241|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4918:9): [True: 4, False: 237]
  ------------------
 4919|      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__) 
  |  |  ------------------
  ------------------
 4920|      4|       return -1;
 4921|      4|    }
 4922|       |
 4923|    237|    source = (ogs_nas_snpn_list_t *)pkbuf->data;
 4924|       |
 4925|    237|    snpn_list->length = source->length;
 4926|    237|    size = snpn_list->length + sizeof(snpn_list->length);
 4927|       |
 4928|    237|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4928:9): [True: 2, False: 235]
  ------------------
 4929|      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__) 
  |  |  ------------------
  ------------------
 4930|      2|       return -1;
 4931|      2|    }
 4932|       |
 4933|    235|    if (sizeof(*snpn_list) < size) return -1;
  ------------------
  |  Branch (4933:9): [True: 1, False: 234]
  ------------------
 4934|    234|    memcpy(snpn_list, pkbuf->data - size, size);
 4935|       |
 4936|    234|    ogs_trace("  SNPN_LIST - ");
  ------------------
  |  |   40|    234|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    234|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    234|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    234|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    234|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    234|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4937|    234|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    234|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    234|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4938|       |
 4939|    234|    return size;
 4940|    235|}
ogs_nas_5gs_decode_n3iwf_identifier:
 4960|    227|{
 4961|    227|    int size = 0;
 4962|    227|    ogs_nas_n3iwf_identifier_t *source = NULL;
 4963|       |
 4964|    227|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4964:9): [True: 5, False: 222]
  ------------------
 4965|      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__) 
  |  |  ------------------
  ------------------
 4966|      5|       return -1;
 4967|      5|    }
 4968|       |
 4969|    222|    source = (ogs_nas_n3iwf_identifier_t *)pkbuf->data;
 4970|       |
 4971|    222|    n3iwf_identifier->length = source->length;
 4972|    222|    size = n3iwf_identifier->length + sizeof(n3iwf_identifier->length);
 4973|       |
 4974|    222|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4974:9): [True: 3, False: 219]
  ------------------
 4975|      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__) 
  |  |  ------------------
  ------------------
 4976|      3|       return -1;
 4977|      3|    }
 4978|       |
 4979|    219|    if (sizeof(*n3iwf_identifier) < size) return -1;
  ------------------
  |  Branch (4979:9): [True: 1, False: 218]
  ------------------
 4980|    218|    memcpy(n3iwf_identifier, pkbuf->data - size, size);
 4981|       |
 4982|    218|    ogs_trace("  N3IWF_IDENTIFIER - ");
  ------------------
  |  |   40|    218|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    218|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    218|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    218|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    218|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    218|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4983|    218|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    218|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    218|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4984|       |
 4985|    218|    return size;
 4986|    219|}
ogs_nas_5gs_decode_tnan_information:
 5006|    208|{
 5007|    208|    int size = 0;
 5008|    208|    ogs_nas_tnan_information_t *source = NULL;
 5009|       |
 5010|    208|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5010:9): [True: 2, False: 206]
  ------------------
 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|    206|    source = (ogs_nas_tnan_information_t *)pkbuf->data;
 5016|       |
 5017|    206|    tnan_information->length = source->length;
 5018|    206|    size = tnan_information->length + sizeof(tnan_information->length);
 5019|       |
 5020|    206|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5020:9): [True: 1, False: 205]
  ------------------
 5021|      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__) 
  |  |  ------------------
  ------------------
 5022|      1|       return -1;
 5023|      1|    }
 5024|       |
 5025|    205|    if (sizeof(*tnan_information) < size) return -1;
  ------------------
  |  Branch (5025:9): [True: 2, False: 203]
  ------------------
 5026|    203|    memcpy(tnan_information, pkbuf->data - size, size);
 5027|       |
 5028|    203|    ogs_trace("  TNAN_INFORMATION - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 5029|    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
  |  |  ------------------
  ------------------
 5030|       |
 5031|    203|    return size;
 5032|    205|}
ogs_nas_5gs_decode_ran_timing_synchronization:
 5052|    451|{
 5053|    451|    int size = 0;
 5054|    451|    ogs_nas_ran_timing_synchronization_t *source = NULL;
 5055|       |
 5056|    451|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5056:9): [True: 3, False: 448]
  ------------------
 5057|      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__) 
  |  |  ------------------
  ------------------
 5058|      3|       return -1;
 5059|      3|    }
 5060|       |
 5061|    448|    source = (ogs_nas_ran_timing_synchronization_t *)pkbuf->data;
 5062|       |
 5063|    448|    ran_timing_synchronization->length = source->length;
 5064|    448|    size = ran_timing_synchronization->length + sizeof(ran_timing_synchronization->length);
 5065|       |
 5066|    448|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5066:9): [True: 5, False: 443]
  ------------------
 5067|      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__) 
  |  |  ------------------
  ------------------
 5068|      5|       return -1;
 5069|      5|    }
 5070|       |
 5071|    443|    if (sizeof(*ran_timing_synchronization) < size) return -1;
  ------------------
  |  Branch (5071:9): [True: 1, False: 442]
  ------------------
 5072|    442|    memcpy(ran_timing_synchronization, pkbuf->data - size, size);
 5073|       |
 5074|    442|    ogs_trace("  RAN_TIMING_SYNCHRONIZATION - ");
  ------------------
  |  |   40|    442|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    442|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    442|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    442|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    442|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    442|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5075|    442|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    442|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    442|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5076|       |
 5077|    442|    return size;
 5078|    443|}
ogs_nas_5gs_decode_extended_ladn_information:
 5098|    257|{
 5099|    257|    int size = 0;
 5100|    257|    ogs_nas_extended_ladn_information_t *source = NULL;
 5101|       |
 5102|    257|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (5102:9): [True: 3, False: 254]
  ------------------
 5103|      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__) 
  |  |  ------------------
  ------------------
 5104|      3|       return -1;
 5105|      3|    }
 5106|       |
 5107|    254|    source = (ogs_nas_extended_ladn_information_t *)pkbuf->data;
 5108|       |
 5109|    254|    extended_ladn_information->length = be16toh(source->length);
 5110|    254|    size = extended_ladn_information->length + sizeof(extended_ladn_information->length);
 5111|       |
 5112|    254|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5112:9): [True: 16, False: 238]
  ------------------
 5113|     16|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 5114|     16|       return -1;
 5115|     16|    }
 5116|       |
 5117|    238|    extended_ladn_information->buffer = pkbuf->data - size + sizeof(extended_ladn_information->length);
 5118|       |
 5119|    238|    ogs_trace("  EXTENDED_LADN_INFORMATION - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 5120|    238|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)extended_ladn_information->buffer, extended_ladn_information->length);
  ------------------
  |  |   53|    238|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    238|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5121|       |
 5122|    238|    return size;
 5123|    254|}
ogs_nas_5gs_decode_alternative_nssai:
 5151|    429|{
 5152|    429|    int size = 0;
 5153|    429|    ogs_nas_alternative_nssai_t *source = NULL;
 5154|       |
 5155|    429|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5155:9): [True: 4, False: 425]
  ------------------
 5156|      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__) 
  |  |  ------------------
  ------------------
 5157|      4|       return -1;
 5158|      4|    }
 5159|       |
 5160|    425|    source = (ogs_nas_alternative_nssai_t *)pkbuf->data;
 5161|       |
 5162|    425|    alternative_nssai->length = source->length;
 5163|    425|    size = alternative_nssai->length + sizeof(alternative_nssai->length);
 5164|       |
 5165|    425|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5165:9): [True: 3, False: 422]
  ------------------
 5166|      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__) 
  |  |  ------------------
  ------------------
 5167|      3|       return -1;
 5168|      3|    }
 5169|       |
 5170|    422|    if (sizeof(*alternative_nssai) < size) return -1;
  ------------------
  |  Branch (5170:9): [True: 2, False: 420]
  ------------------
 5171|    420|    memcpy(alternative_nssai, pkbuf->data - size, size);
 5172|       |
 5173|    420|    ogs_trace("  ALTERNATIVE_NSSAI - ");
  ------------------
  |  |   40|    420|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    420|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    420|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    420|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    420|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    420|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5174|    420|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    420|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    420|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5175|       |
 5176|    420|    return size;
 5177|    422|}
ogs_nas_5gs_decode_type_6_ie_container:
 5197|    249|{
 5198|    249|    int size = 0;
 5199|    249|    ogs_nas_type_6_ie_container_t *source = NULL;
 5200|       |
 5201|    249|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (5201:9): [True: 5, False: 244]
  ------------------
 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|    244|    source = (ogs_nas_type_6_ie_container_t *)pkbuf->data;
 5207|       |
 5208|    244|    type_6_ie_container->length = be16toh(source->length);
 5209|    244|    size = type_6_ie_container->length + sizeof(type_6_ie_container->length);
 5210|       |
 5211|    244|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5211:9): [True: 24, False: 220]
  ------------------
 5212|     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__) 
  |  |  ------------------
  ------------------
 5213|     24|       return -1;
 5214|     24|    }
 5215|       |
 5216|    220|    type_6_ie_container->buffer = pkbuf->data - size + sizeof(type_6_ie_container->length);
 5217|       |
 5218|    220|    ogs_trace("  TYPE_6_IE_CONTAINER - ");
  ------------------
  |  |   40|    220|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    220|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    220|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    220|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    220|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    220|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5219|    220|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)type_6_ie_container->buffer, type_6_ie_container->length);
  ------------------
  |  |   53|    220|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    220|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5220|       |
 5221|    220|    return size;
 5222|    244|}
ogs_nas_5gs_decode_non_3gpp_access_path_switching_indication:
 5250|    206|{
 5251|    206|    int size = 0;
 5252|    206|    ogs_nas_non_3gpp_access_path_switching_indication_t *source = NULL;
 5253|       |
 5254|    206|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5254:9): [True: 1, False: 205]
  ------------------
 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|    205|    source = (ogs_nas_non_3gpp_access_path_switching_indication_t *)pkbuf->data;
 5260|       |
 5261|    205|    non_3gpp_access_path_switching_indication->length = source->length;
 5262|    205|    size = non_3gpp_access_path_switching_indication->length + sizeof(non_3gpp_access_path_switching_indication->length);
 5263|       |
 5264|    205|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5264:9): [True: 1, False: 204]
  ------------------
 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|    204|    if (sizeof(*non_3gpp_access_path_switching_indication) < size) return -1;
  ------------------
  |  Branch (5269:9): [True: 1, False: 203]
  ------------------
 5270|    203|    memcpy(non_3gpp_access_path_switching_indication, pkbuf->data - size, size);
 5271|       |
 5272|    203|    ogs_trace("  NON_3GPP_ACCESS_PATH_SWITCHING_INDICATION - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 5273|    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
  |  |  ------------------
  ------------------
 5274|       |
 5275|    203|    return size;
 5276|    204|}
ogs_nas_5gs_decode_5gs_update_type:
 5296|    218|{
 5297|    218|    int size = 0;
 5298|    218|    ogs_nas_5gs_update_type_t *source = NULL;
 5299|       |
 5300|    218|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5300:9): [True: 1, False: 217]
  ------------------
 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|    217|    source = (ogs_nas_5gs_update_type_t *)pkbuf->data;
 5306|       |
 5307|    217|    update_type->length = source->length;
 5308|    217|    size = update_type->length + sizeof(update_type->length);
 5309|       |
 5310|    217|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5310:9): [True: 1, False: 216]
  ------------------
 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|    216|    if (sizeof(*update_type) < size) return -1;
  ------------------
  |  Branch (5315:9): [True: 1, False: 215]
  ------------------
 5316|    215|    memcpy(update_type, pkbuf->data - size, size);
 5317|       |
 5318|    215|    ogs_trace("  5GS_UPDATE_TYPE - ");
  ------------------
  |  |   40|    215|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    215|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    215|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    215|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    215|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    215|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5319|    215|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    215|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    215|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5320|       |
 5321|    215|    return size;
 5322|    216|}
ogs_nas_5gs_decode_5gsm_capability:
 5342|    466|{
 5343|    466|    int size = 0;
 5344|    466|    ogs_nas_5gsm_capability_t *source = NULL;
 5345|       |
 5346|    466|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5346:9): [True: 5, False: 461]
  ------------------
 5347|      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__) 
  |  |  ------------------
  ------------------
 5348|      5|       return -1;
 5349|      5|    }
 5350|       |
 5351|    461|    source = (ogs_nas_5gsm_capability_t *)pkbuf->data;
 5352|       |
 5353|    461|    gsm_capability->length = source->length;
 5354|    461|    size = gsm_capability->length + sizeof(gsm_capability->length);
 5355|       |
 5356|    461|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5356:9): [True: 1, False: 460]
  ------------------
 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|    460|    if (sizeof(*gsm_capability) < size) return -1;
  ------------------
  |  Branch (5361:9): [True: 1, False: 459]
  ------------------
 5362|    459|    memcpy(gsm_capability, pkbuf->data - size, size);
 5363|       |
 5364|    459|    ogs_trace("  5GSM_CAPABILITY - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 5365|    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
  |  |  ------------------
  ------------------
 5366|       |
 5367|    459|    return size;
 5368|    460|}
ogs_nas_5gs_decode_pdu_address:
 5388|    413|{
 5389|    413|    int size = 0;
 5390|    413|    ogs_nas_pdu_address_t *source = NULL;
 5391|       |
 5392|    413|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5392:9): [True: 3, False: 410]
  ------------------
 5393|      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__) 
  |  |  ------------------
  ------------------
 5394|      3|       return -1;
 5395|      3|    }
 5396|       |
 5397|    410|    source = (ogs_nas_pdu_address_t *)pkbuf->data;
 5398|       |
 5399|    410|    pdu_address->length = source->length;
 5400|    410|    size = pdu_address->length + sizeof(pdu_address->length);
 5401|       |
 5402|    410|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5402:9): [True: 2, False: 408]
  ------------------
 5403|      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__) 
  |  |  ------------------
  ------------------
 5404|      2|       return -1;
 5405|      2|    }
 5406|       |
 5407|    408|    if (sizeof(*pdu_address) < size) return -1;
  ------------------
  |  Branch (5407:9): [True: 1, False: 407]
  ------------------
 5408|    407|    memcpy(pdu_address, pkbuf->data - size, size);
 5409|       |
 5410|    407|    ogs_trace("  PDU_ADDRESS - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 5411|    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
  |  |  ------------------
  ------------------
 5412|       |
 5413|    407|    return size;
 5414|    408|}
ogs_nas_5gs_decode_pdu_session_type:
 5434|    989|{
 5435|    989|    int size = sizeof(ogs_nas_pdu_session_type_t);
 5436|       |
 5437|    989|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5437:9): [True: 1, False: 988]
  ------------------
 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|    988|    memcpy(pdu_session_type, pkbuf->data - size, size);
 5443|       |
 5444|    988|    ogs_trace("  PDU_SESSION_TYPE - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 5445|    988|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    988|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    988|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5446|       |
 5447|    988|    return size;
 5448|    989|}
ogs_nas_5gs_decode_qos_flow_descriptions:
 5466|    665|{
 5467|    665|    int size = 0;
 5468|    665|    ogs_nas_qos_flow_descriptions_t *source = NULL;
 5469|       |
 5470|    665|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (5470:9): [True: 7, False: 658]
  ------------------
 5471|      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__) 
  |  |  ------------------
  ------------------
 5472|      7|       return -1;
 5473|      7|    }
 5474|       |
 5475|    658|    source = (ogs_nas_qos_flow_descriptions_t *)pkbuf->data;
 5476|       |
 5477|    658|    qos_flow_descriptions->length = be16toh(source->length);
 5478|    658|    size = qos_flow_descriptions->length + sizeof(qos_flow_descriptions->length);
 5479|       |
 5480|    658|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5480:9): [True: 21, False: 637]
  ------------------
 5481|     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__) 
  |  |  ------------------
  ------------------
 5482|     21|       return -1;
 5483|     21|    }
 5484|       |
 5485|    637|    qos_flow_descriptions->buffer = pkbuf->data - size + sizeof(qos_flow_descriptions->length);
 5486|       |
 5487|    637|    ogs_trace("  QOS_FLOW_DESCRIPTIONS - ");
  ------------------
  |  |   40|    637|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    637|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    637|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    637|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    637|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    637|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5488|    637|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)qos_flow_descriptions->buffer, qos_flow_descriptions->length);
  ------------------
  |  |   53|    637|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    637|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5489|       |
 5490|    637|    return size;
 5491|    658|}
ogs_nas_5gs_decode_qos_rules:
 5519|    774|{
 5520|    774|    int size = 0;
 5521|    774|    ogs_nas_qos_rules_t *source = NULL;
 5522|       |
 5523|    774|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (5523:9): [True: 9, False: 765]
  ------------------
 5524|      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__) 
  |  |  ------------------
  ------------------
 5525|      9|       return -1;
 5526|      9|    }
 5527|       |
 5528|    765|    source = (ogs_nas_qos_rules_t *)pkbuf->data;
 5529|       |
 5530|    765|    qos_rules->length = be16toh(source->length);
 5531|    765|    size = qos_rules->length + sizeof(qos_rules->length);
 5532|       |
 5533|    765|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5533:9): [True: 24, False: 741]
  ------------------
 5534|     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__) 
  |  |  ------------------
  ------------------
 5535|     24|       return -1;
 5536|     24|    }
 5537|       |
 5538|    741|    qos_rules->buffer = pkbuf->data - size + sizeof(qos_rules->length);
 5539|       |
 5540|    741|    ogs_trace("  QOS_RULES - ");
  ------------------
  |  |   40|    741|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    741|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    741|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    741|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    741|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    741|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5541|    741|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)qos_rules->buffer, qos_rules->length);
  ------------------
  |  |   53|    741|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    741|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5542|       |
 5543|    741|    return size;
 5544|    765|}
ogs_nas_5gs_decode_session_ambr:
 5572|    412|{
 5573|    412|    int size = 0;
 5574|    412|    ogs_nas_session_ambr_t *source = NULL;
 5575|       |
 5576|    412|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5576:9): [True: 2, False: 410]
  ------------------
 5577|      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__) 
  |  |  ------------------
  ------------------
 5578|      2|       return -1;
 5579|      2|    }
 5580|       |
 5581|    410|    source = (ogs_nas_session_ambr_t *)pkbuf->data;
 5582|       |
 5583|    410|    session_ambr->length = source->length;
 5584|    410|    size = session_ambr->length + sizeof(session_ambr->length);
 5585|       |
 5586|    410|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5586:9): [True: 4, False: 406]
  ------------------
 5587|      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__) 
  |  |  ------------------
  ------------------
 5588|      4|       return -1;
 5589|      4|    }
 5590|       |
 5591|    406|    if (sizeof(*session_ambr) < size) return -1;
  ------------------
  |  Branch (5591:9): [True: 5, False: 401]
  ------------------
 5592|    401|    memcpy(session_ambr, pkbuf->data - size, size);
 5593|       |
 5594|    401|    if (size != (int)sizeof(*session_ambr)) {
  ------------------
  |  Branch (5594:9): [True: 29, False: 372]
  ------------------
 5595|     29|        ogs_error("Invalid Session-AMBR length [%d]",
  ------------------
  |  |   36|     29|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     29|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     29|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     29|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     29|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     29|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5596|     29|                session_ambr->length);
 5597|     29|        return -1;
 5598|     29|    }
 5599|       |
 5600|    372|    session_ambr->downlink.value = be16toh(session_ambr->downlink.value);
 5601|    372|    session_ambr->uplink.value = be16toh(session_ambr->uplink.value);
 5602|       |
 5603|    372|    ogs_trace("  SESSION_AMBR - ");
  ------------------
  |  |   40|    372|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    372|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    372|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    372|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    372|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    372|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5604|    372|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    372|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    372|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5605|       |
 5606|    372|    return size;
 5607|    401|}
ogs_nas_5gs_decode_sm_pdu_dn_request_container:
 5630|    303|{
 5631|    303|    int size = 0;
 5632|    303|    ogs_nas_sm_pdu_dn_request_container_t *source = NULL;
 5633|       |
 5634|    303|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5634:9): [True: 2, False: 301]
  ------------------
 5635|      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__) 
  |  |  ------------------
  ------------------
 5636|      2|       return -1;
 5637|      2|    }
 5638|       |
 5639|    301|    source = (ogs_nas_sm_pdu_dn_request_container_t *)pkbuf->data;
 5640|       |
 5641|    301|    sm_pdu_dn_request_container->length = source->length;
 5642|    301|    size = sm_pdu_dn_request_container->length + sizeof(sm_pdu_dn_request_container->length);
 5643|       |
 5644|    301|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5644:9): [True: 2, False: 299]
  ------------------
 5645|      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__) 
  |  |  ------------------
  ------------------
 5646|      2|       return -1;
 5647|      2|    }
 5648|       |
 5649|    299|    if (sizeof(*sm_pdu_dn_request_container) < size) return -1;
  ------------------
  |  Branch (5649:9): [True: 0, False: 299]
  ------------------
 5650|    299|    memcpy(sm_pdu_dn_request_container, pkbuf->data - size, size);
 5651|       |
 5652|    299|    ogs_trace("  SM_PDU_DN_REQUEST_CONTAINER - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 5653|    299|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    299|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    299|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5654|       |
 5655|    299|    return size;
 5656|    299|}
ogs_nas_5gs_decode_ssc_mode:
 5676|  1.07k|{
 5677|  1.07k|    int size = sizeof(ogs_nas_ssc_mode_t);
 5678|       |
 5679|  1.07k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5679:9): [True: 0, False: 1.07k]
  ------------------
 5680|      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__) 
  |  |  ------------------
  ------------------
 5681|      0|       return -1;
 5682|      0|    }
 5683|       |
 5684|  1.07k|    memcpy(ssc_mode, pkbuf->data - size, size);
 5685|       |
 5686|  1.07k|    ogs_trace("  SSC_MODE - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 5687|  1.07k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.07k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.07k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5688|       |
 5689|  1.07k|    return size;
 5690|  1.07k|}
ogs_nas_5gs_decode_re_attempt_indicator:
 5708|    424|{
 5709|    424|    int size = 0;
 5710|    424|    ogs_nas_re_attempt_indicator_t *source = NULL;
 5711|       |
 5712|    424|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5712:9): [True: 5, False: 419]
  ------------------
 5713|      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__) 
  |  |  ------------------
  ------------------
 5714|      5|       return -1;
 5715|      5|    }
 5716|       |
 5717|    419|    source = (ogs_nas_re_attempt_indicator_t *)pkbuf->data;
 5718|       |
 5719|    419|    re_attempt_indicator->length = source->length;
 5720|    419|    size = re_attempt_indicator->length + sizeof(re_attempt_indicator->length);
 5721|       |
 5722|    419|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5722:9): [True: 2, False: 417]
  ------------------
 5723|      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__) 
  |  |  ------------------
  ------------------
 5724|      2|       return -1;
 5725|      2|    }
 5726|       |
 5727|    417|    if (sizeof(*re_attempt_indicator) < size) return -1;
  ------------------
  |  Branch (5727:9): [True: 1, False: 416]
  ------------------
 5728|    416|    memcpy(re_attempt_indicator, pkbuf->data - size, size);
 5729|       |
 5730|    416|    ogs_trace("  RE_ATTEMPT_INDICATOR - ");
  ------------------
  |  |   40|    416|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    416|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    416|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    416|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    416|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    416|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5731|    416|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    416|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    416|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5732|       |
 5733|    416|    return size;
 5734|    417|}
ogs_nas_5gs_decode_5gsm_network_feature_support:
 5754|    218|{
 5755|    218|    int size = 0;
 5756|    218|    ogs_nas_5gsm_network_feature_support_t *source = NULL;
 5757|       |
 5758|    218|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5758:9): [True: 1, False: 217]
  ------------------
 5759|      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__) 
  |  |  ------------------
  ------------------
 5760|      1|       return -1;
 5761|      1|    }
 5762|       |
 5763|    217|    source = (ogs_nas_5gsm_network_feature_support_t *)pkbuf->data;
 5764|       |
 5765|    217|    gsm_network_feature_support->length = source->length;
 5766|    217|    size = gsm_network_feature_support->length + sizeof(gsm_network_feature_support->length);
 5767|       |
 5768|    217|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5768:9): [True: 1, False: 216]
  ------------------
 5769|      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__) 
  |  |  ------------------
  ------------------
 5770|      1|       return -1;
 5771|      1|    }
 5772|       |
 5773|    216|    if (sizeof(*gsm_network_feature_support) < size) return -1;
  ------------------
  |  Branch (5773:9): [True: 1, False: 215]
  ------------------
 5774|    215|    memcpy(gsm_network_feature_support, pkbuf->data - size, size);
 5775|       |
 5776|    215|    ogs_trace("  5GSM_NETWORK_FEATURE_SUPPORT - ");
  ------------------
  |  |   40|    215|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    215|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    215|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    215|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    215|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    215|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5777|    215|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    215|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    215|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5778|       |
 5779|    215|    return size;
 5780|    216|}
ogs_nas_5gs_decode_5gsm_cause:
 5800|  1.47k|{
 5801|  1.47k|    int size = sizeof(ogs_nas_5gsm_cause_t);
 5802|       |
 5803|  1.47k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5803:9): [True: 15, False: 1.45k]
  ------------------
 5804|     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__) 
  |  |  ------------------
  ------------------
 5805|     15|       return -1;
 5806|     15|    }
 5807|       |
 5808|  1.45k|    memcpy(gsm_cause, pkbuf->data - size, size);
 5809|       |
 5810|  1.45k|    ogs_trace("  5GSM_CAUSE - ");
  ------------------
  |  |   40|  1.45k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.45k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.45k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.45k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.45k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.45k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5811|  1.45k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.45k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.45k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5812|       |
 5813|  1.45k|    return size;
 5814|  1.47k|}
ogs_nas_5gs_decode_serving_plmn_rate_control:
 5834|    433|{
 5835|    433|    int size = 0;
 5836|    433|    ogs_nas_serving_plmn_rate_control_t *source = NULL;
 5837|       |
 5838|    433|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5838:9): [True: 4, False: 429]
  ------------------
 5839|      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__) 
  |  |  ------------------
  ------------------
 5840|      4|       return -1;
 5841|      4|    }
 5842|       |
 5843|    429|    source = (ogs_nas_serving_plmn_rate_control_t *)pkbuf->data;
 5844|       |
 5845|    429|    serving_plmn_rate_control->length = source->length;
 5846|    429|    size = serving_plmn_rate_control->length + sizeof(serving_plmn_rate_control->length);
 5847|       |
 5848|    429|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5848:9): [True: 1, False: 428]
  ------------------
 5849|      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__) 
  |  |  ------------------
  ------------------
 5850|      1|       return -1;
 5851|      1|    }
 5852|       |
 5853|    428|    if (sizeof(*serving_plmn_rate_control) < size) return -1;
  ------------------
  |  Branch (5853:9): [True: 1, False: 427]
  ------------------
 5854|    427|    memcpy(serving_plmn_rate_control, pkbuf->data - size, size);
 5855|       |
 5856|    427|    ogs_trace("  SERVING_PLMN_RATE_CONTROL - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 5857|    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
  |  |  ------------------
  ------------------
 5858|       |
 5859|    427|    return size;
 5860|    428|}
ogs_nas_5gs_decode_5gsm_congestion_re_attempt_indicator:
 5880|    603|{
 5881|    603|    int size = 0;
 5882|    603|    ogs_nas_5gsm_congestion_re_attempt_indicator_t *source = NULL;
 5883|       |
 5884|    603|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5884:9): [True: 6, False: 597]
  ------------------
 5885|      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__) 
  |  |  ------------------
  ------------------
 5886|      6|       return -1;
 5887|      6|    }
 5888|       |
 5889|    597|    source = (ogs_nas_5gsm_congestion_re_attempt_indicator_t *)pkbuf->data;
 5890|       |
 5891|    597|    gsm_congestion_re_attempt_indicator->length = source->length;
 5892|    597|    size = gsm_congestion_re_attempt_indicator->length + sizeof(gsm_congestion_re_attempt_indicator->length);
 5893|       |
 5894|    597|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5894:9): [True: 2, False: 595]
  ------------------
 5895|      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__) 
  |  |  ------------------
  ------------------
 5896|      2|       return -1;
 5897|      2|    }
 5898|       |
 5899|    595|    if (sizeof(*gsm_congestion_re_attempt_indicator) < size) return -1;
  ------------------
  |  Branch (5899:9): [True: 1, False: 594]
  ------------------
 5900|    594|    memcpy(gsm_congestion_re_attempt_indicator, pkbuf->data - size, size);
 5901|       |
 5902|    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__) 
  |  |  ------------------
  ------------------
 5903|    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
  |  |  ------------------
  ------------------
 5904|       |
 5905|    594|    return size;
 5906|    595|}
ogs_nas_5gs_decode_atsss_container:
 5926|    789|{
 5927|    789|    int size = 0;
 5928|    789|    ogs_nas_atsss_container_t *source = NULL;
 5929|       |
 5930|    789|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (5930:9): [True: 6, False: 783]
  ------------------
 5931|      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__) 
  |  |  ------------------
  ------------------
 5932|      6|       return -1;
 5933|      6|    }
 5934|       |
 5935|    783|    source = (ogs_nas_atsss_container_t *)pkbuf->data;
 5936|       |
 5937|    783|    atsss_container->length = be16toh(source->length);
 5938|    783|    size = atsss_container->length + sizeof(atsss_container->length);
 5939|       |
 5940|    783|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5940:9): [True: 24, False: 759]
  ------------------
 5941|     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__) 
  |  |  ------------------
  ------------------
 5942|     24|       return -1;
 5943|     24|    }
 5944|       |
 5945|    759|    atsss_container->buffer = pkbuf->data - size + sizeof(atsss_container->length);
 5946|       |
 5947|    759|    ogs_trace("  ATSSS_CONTAINER - ");
  ------------------
  |  |   40|    759|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    759|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    759|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    759|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    759|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    759|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5948|    759|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)atsss_container->buffer, atsss_container->length);
  ------------------
  |  |   53|    759|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    759|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5949|       |
 5950|    759|    return size;
 5951|    783|}
ogs_nas_5gs_decode_control_plane_only_indication:
 5979|    364|{
 5980|    364|    int size = sizeof(ogs_nas_control_plane_only_indication_t);
 5981|       |
 5982|    364|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5982:9): [True: 0, False: 364]
  ------------------
 5983|      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__) 
  |  |  ------------------
  ------------------
 5984|      0|       return -1;
 5985|      0|    }
 5986|       |
 5987|    364|    memcpy(control_plane_only_indication, pkbuf->data - size, size);
 5988|       |
 5989|    364|    ogs_trace("  CONTROL_PLANE_ONLY_INDICATION - ");
  ------------------
  |  |   40|    364|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    364|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    364|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    364|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    364|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    364|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5990|    364|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    364|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    364|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5991|       |
 5992|    364|    return size;
 5993|    364|}
ogs_nas_5gs_decode_ip_header_compression_configuration:
 6011|    614|{
 6012|    614|    int size = 0;
 6013|    614|    ogs_nas_ip_header_compression_configuration_t *source = NULL;
 6014|       |
 6015|    614|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6015:9): [True: 4, False: 610]
  ------------------
 6016|      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__) 
  |  |  ------------------
  ------------------
 6017|      4|       return -1;
 6018|      4|    }
 6019|       |
 6020|    610|    source = (ogs_nas_ip_header_compression_configuration_t *)pkbuf->data;
 6021|       |
 6022|    610|    ip_header_compression_configuration->length = source->length;
 6023|    610|    size = ip_header_compression_configuration->length + sizeof(ip_header_compression_configuration->length);
 6024|       |
 6025|    610|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6025:9): [True: 1, False: 609]
  ------------------
 6026|      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__) 
  |  |  ------------------
  ------------------
 6027|      1|       return -1;
 6028|      1|    }
 6029|       |
 6030|    609|    if (sizeof(*ip_header_compression_configuration) < size) return -1;
  ------------------
  |  Branch (6030:9): [True: 0, False: 609]
  ------------------
 6031|    609|    memcpy(ip_header_compression_configuration, pkbuf->data - size, size);
 6032|       |
 6033|    609|    ogs_trace("  IP_HEADER_COMPRESSION_CONFIGURATION - ");
  ------------------
  |  |   40|    609|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    609|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    609|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    609|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    609|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    609|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6034|    609|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    609|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    609|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6035|       |
 6036|    609|    return size;
 6037|    609|}
ogs_nas_5gs_decode_header_compression_configuration:
 6057|    458|{
 6058|    458|    int size = 0;
 6059|    458|    ogs_nas_header_compression_configuration_t *source = NULL;
 6060|       |
 6061|    458|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6061:9): [True: 4, False: 454]
  ------------------
 6062|      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__) 
  |  |  ------------------
  ------------------
 6063|      4|       return -1;
 6064|      4|    }
 6065|       |
 6066|    454|    source = (ogs_nas_header_compression_configuration_t *)pkbuf->data;
 6067|       |
 6068|    454|    header_compression_configuration->length = source->length;
 6069|    454|    size = header_compression_configuration->length + sizeof(header_compression_configuration->length);
 6070|       |
 6071|    454|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6071:9): [True: 8, False: 446]
  ------------------
 6072|      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__) 
  |  |  ------------------
  ------------------
 6073|      8|       return -1;
 6074|      8|    }
 6075|       |
 6076|    446|    if (sizeof(*header_compression_configuration) < size) return -1;
  ------------------
  |  Branch (6076:9): [True: 0, False: 446]
  ------------------
 6077|    446|    memcpy(header_compression_configuration, pkbuf->data - size, size);
 6078|       |
 6079|    446|    header_compression_configuration->max_cid = be16toh(header_compression_configuration->max_cid);
 6080|       |
 6081|    446|    ogs_trace("  HEADER_COMPRESSION_CONFIGURATION - ");
  ------------------
  |  |   40|    446|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    446|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    446|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    446|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    446|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    446|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6082|    446|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    446|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    446|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6083|       |
 6084|    446|    return size;
 6085|    446|}
ogs_nas_5gs_decode_ds_tt_ethernet_port_mac_address:
 6107|    206|{
 6108|    206|    int size = 0;
 6109|    206|    ogs_nas_ds_tt_ethernet_port_mac_address_t *source = NULL;
 6110|       |
 6111|    206|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6111:9): [True: 1, False: 205]
  ------------------
 6112|      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__) 
  |  |  ------------------
  ------------------
 6113|      1|       return -1;
 6114|      1|    }
 6115|       |
 6116|    205|    source = (ogs_nas_ds_tt_ethernet_port_mac_address_t *)pkbuf->data;
 6117|       |
 6118|    205|    ds_tt_ethernet_port_mac_address->length = source->length;
 6119|    205|    size = ds_tt_ethernet_port_mac_address->length + sizeof(ds_tt_ethernet_port_mac_address->length);
 6120|       |
 6121|    205|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6121:9): [True: 1, False: 204]
  ------------------
 6122|      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__) 
  |  |  ------------------
  ------------------
 6123|      1|       return -1;
 6124|      1|    }
 6125|       |
 6126|    204|    if (sizeof(*ds_tt_ethernet_port_mac_address) < size) return -1;
  ------------------
  |  Branch (6126:9): [True: 2, False: 202]
  ------------------
 6127|    202|    memcpy(ds_tt_ethernet_port_mac_address, pkbuf->data - size, size);
 6128|       |
 6129|    202|    ogs_trace("  DS_TT_ETHERNET_PORT_MAC_ADDRESS - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 6130|    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
  |  |  ------------------
  ------------------
 6131|       |
 6132|    202|    return size;
 6133|    204|}
ogs_nas_5gs_decode_ue_ds_tt_residence_time:
 6153|    228|{
 6154|    228|    int size = 0;
 6155|    228|    ogs_nas_ue_ds_tt_residence_time_t *source = NULL;
 6156|       |
 6157|    228|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6157:9): [True: 4, False: 224]
  ------------------
 6158|      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__) 
  |  |  ------------------
  ------------------
 6159|      4|       return -1;
 6160|      4|    }
 6161|       |
 6162|    224|    source = (ogs_nas_ue_ds_tt_residence_time_t *)pkbuf->data;
 6163|       |
 6164|    224|    ue_ds_tt_residence_time->length = source->length;
 6165|    224|    size = ue_ds_tt_residence_time->length + sizeof(ue_ds_tt_residence_time->length);
 6166|       |
 6167|    224|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6167:9): [True: 2, False: 222]
  ------------------
 6168|      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__) 
  |  |  ------------------
  ------------------
 6169|      2|       return -1;
 6170|      2|    }
 6171|       |
 6172|    222|    if (sizeof(*ue_ds_tt_residence_time) < size) return -1;
  ------------------
  |  Branch (6172:9): [True: 1, False: 221]
  ------------------
 6173|    221|    memcpy(ue_ds_tt_residence_time, pkbuf->data - size, size);
 6174|       |
 6175|    221|    ogs_trace("  UE_DS_TT_RESIDENCE_TIME - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 6176|    221|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    221|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    221|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6177|       |
 6178|    221|    return size;
 6179|    222|}
ogs_nas_5gs_decode_port_management_information_container:
 6199|    889|{
 6200|    889|    int size = 0;
 6201|    889|    ogs_nas_port_management_information_container_t *source = NULL;
 6202|       |
 6203|    889|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6203:9): [True: 7, False: 882]
  ------------------
 6204|      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__) 
  |  |  ------------------
  ------------------
 6205|      7|       return -1;
 6206|      7|    }
 6207|       |
 6208|    882|    source = (ogs_nas_port_management_information_container_t *)pkbuf->data;
 6209|       |
 6210|    882|    port_management_information_container->length = be16toh(source->length);
 6211|    882|    size = port_management_information_container->length + sizeof(port_management_information_container->length);
 6212|       |
 6213|    882|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6213:9): [True: 24, False: 858]
  ------------------
 6214|     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__) 
  |  |  ------------------
  ------------------
 6215|     24|       return -1;
 6216|     24|    }
 6217|       |
 6218|    858|    port_management_information_container->buffer = pkbuf->data - size + sizeof(port_management_information_container->length);
 6219|       |
 6220|    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__) 
  |  |  ------------------
  ------------------
 6221|    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
  |  |  ------------------
  ------------------
 6222|       |
 6223|    858|    return size;
 6224|    882|}
ogs_nas_5gs_decode_ethernet_header_compression_configuration:
 6252|    853|{
 6253|    853|    int size = 0;
 6254|    853|    ogs_nas_ethernet_header_compression_configuration_t *source = NULL;
 6255|       |
 6256|    853|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6256:9): [True: 6, False: 847]
  ------------------
 6257|      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__) 
  |  |  ------------------
  ------------------
 6258|      6|       return -1;
 6259|      6|    }
 6260|       |
 6261|    847|    source = (ogs_nas_ethernet_header_compression_configuration_t *)pkbuf->data;
 6262|       |
 6263|    847|    ethernet_header_compression_configuration->length = source->length;
 6264|    847|    size = ethernet_header_compression_configuration->length + sizeof(ethernet_header_compression_configuration->length);
 6265|       |
 6266|    847|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6266:9): [True: 3, False: 844]
  ------------------
 6267|      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__) 
  |  |  ------------------
  ------------------
 6268|      3|       return -1;
 6269|      3|    }
 6270|       |
 6271|    844|    if (sizeof(*ethernet_header_compression_configuration) < size) return -1;
  ------------------
  |  Branch (6271:9): [True: 2, False: 842]
  ------------------
 6272|    842|    memcpy(ethernet_header_compression_configuration, pkbuf->data - size, size);
 6273|       |
 6274|    842|    ogs_trace("  ETHERNET_HEADER_COMPRESSION_CONFIGURATION - ");
  ------------------
  |  |   40|    842|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    842|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    842|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    842|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    842|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    842|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6275|    842|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    842|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    842|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6276|       |
 6277|    842|    return size;
 6278|    844|}
ogs_nas_5gs_decode_always_on_pdu_session_indication:
 6298|    866|{
 6299|    866|    int size = sizeof(ogs_nas_always_on_pdu_session_indication_t);
 6300|       |
 6301|    866|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6301:9): [True: 0, False: 866]
  ------------------
 6302|      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__) 
  |  |  ------------------
  ------------------
 6303|      0|       return -1;
 6304|      0|    }
 6305|       |
 6306|    866|    memcpy(always_on_pdu_session_indication, pkbuf->data - size, size);
 6307|       |
 6308|    866|    ogs_trace("  ALWAYS_ON_PDU_SESSION_INDICATION - ");
  ------------------
  |  |   40|    866|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    866|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    866|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    866|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    866|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    866|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6309|    866|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    866|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    866|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6310|       |
 6311|    866|    return size;
 6312|    866|}
ogs_nas_5gs_decode_requested_mbs_container:
 6330|    471|{
 6331|    471|    int size = 0;
 6332|    471|    ogs_nas_requested_mbs_container_t *source = NULL;
 6333|       |
 6334|    471|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6334:9): [True: 5, False: 466]
  ------------------
 6335|      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__) 
  |  |  ------------------
  ------------------
 6336|      5|       return -1;
 6337|      5|    }
 6338|       |
 6339|    466|    source = (ogs_nas_requested_mbs_container_t *)pkbuf->data;
 6340|       |
 6341|    466|    requested_mbs_container->length = be16toh(source->length);
 6342|    466|    size = requested_mbs_container->length + sizeof(requested_mbs_container->length);
 6343|       |
 6344|    466|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6344:9): [True: 24, False: 442]
  ------------------
 6345|     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__) 
  |  |  ------------------
  ------------------
 6346|     24|       return -1;
 6347|     24|    }
 6348|       |
 6349|    442|    requested_mbs_container->buffer = pkbuf->data - size + sizeof(requested_mbs_container->length);
 6350|       |
 6351|    442|    ogs_trace("  REQUESTED_MBS_CONTAINER - ");
  ------------------
  |  |   40|    442|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    442|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    442|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    442|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    442|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    442|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6352|    442|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)requested_mbs_container->buffer, requested_mbs_container->length);
  ------------------
  |  |   53|    442|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    442|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6353|       |
 6354|    442|    return size;
 6355|    466|}
ogs_nas_5gs_decode_received_mbs_container:
 6383|    429|{
 6384|    429|    int size = 0;
 6385|    429|    ogs_nas_received_mbs_container_t *source = NULL;
 6386|       |
 6387|    429|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6387:9): [True: 5, False: 424]
  ------------------
 6388|      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__) 
  |  |  ------------------
  ------------------
 6389|      5|       return -1;
 6390|      5|    }
 6391|       |
 6392|    424|    source = (ogs_nas_received_mbs_container_t *)pkbuf->data;
 6393|       |
 6394|    424|    received_mbs_container->length = be16toh(source->length);
 6395|    424|    size = received_mbs_container->length + sizeof(received_mbs_container->length);
 6396|       |
 6397|    424|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6397:9): [True: 6, False: 418]
  ------------------
 6398|      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__) 
  |  |  ------------------
  ------------------
 6399|      6|       return -1;
 6400|      6|    }
 6401|       |
 6402|    418|    received_mbs_container->buffer = pkbuf->data - size + sizeof(received_mbs_container->length);
 6403|       |
 6404|    418|    ogs_trace("  RECEIVED_MBS_CONTAINER - ");
  ------------------
  |  |   40|    418|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    418|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    418|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    418|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    418|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    418|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6405|    418|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)received_mbs_container->buffer, received_mbs_container->length);
  ------------------
  |  |   53|    418|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    418|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6406|       |
 6407|    418|    return size;
 6408|    424|}
ogs_nas_5gs_decode_pdu_session_pair_id:
 6436|    219|{
 6437|    219|    int size = 0;
 6438|    219|    ogs_nas_pdu_session_pair_id_t *source = NULL;
 6439|       |
 6440|    219|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6440:9): [True: 1, False: 218]
  ------------------
 6441|      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__) 
  |  |  ------------------
  ------------------
 6442|      1|       return -1;
 6443|      1|    }
 6444|       |
 6445|    218|    source = (ogs_nas_pdu_session_pair_id_t *)pkbuf->data;
 6446|       |
 6447|    218|    pdu_session_pair_id->length = source->length;
 6448|    218|    size = pdu_session_pair_id->length + sizeof(pdu_session_pair_id->length);
 6449|       |
 6450|    218|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6450:9): [True: 1, False: 217]
  ------------------
 6451|      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__) 
  |  |  ------------------
  ------------------
 6452|      1|       return -1;
 6453|      1|    }
 6454|       |
 6455|    217|    if (sizeof(*pdu_session_pair_id) < size) return -1;
  ------------------
  |  Branch (6455:9): [True: 1, False: 216]
  ------------------
 6456|    216|    memcpy(pdu_session_pair_id, pkbuf->data - size, size);
 6457|       |
 6458|    216|    ogs_trace("  PDU_SESSION_PAIR_ID - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 6459|    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
  |  |  ------------------
  ------------------
 6460|       |
 6461|    216|    return size;
 6462|    217|}
ogs_nas_5gs_decode_rsn:
 6482|    207|{
 6483|    207|    int size = 0;
 6484|    207|    ogs_nas_rsn_t *source = NULL;
 6485|       |
 6486|    207|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6486:9): [True: 1, False: 206]
  ------------------
 6487|      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__) 
  |  |  ------------------
  ------------------
 6488|      1|       return -1;
 6489|      1|    }
 6490|       |
 6491|    206|    source = (ogs_nas_rsn_t *)pkbuf->data;
 6492|       |
 6493|    206|    rsn->length = source->length;
 6494|    206|    size = rsn->length + sizeof(rsn->length);
 6495|       |
 6496|    206|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6496:9): [True: 1, False: 205]
  ------------------
 6497|      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__) 
  |  |  ------------------
  ------------------
 6498|      1|       return -1;
 6499|      1|    }
 6500|       |
 6501|    205|    if (sizeof(*rsn) < size) return -1;
  ------------------
  |  Branch (6501:9): [True: 2, False: 203]
  ------------------
 6502|    203|    memcpy(rsn, pkbuf->data - size, size);
 6503|       |
 6504|    203|    ogs_trace("  RSN - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 6505|    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
  |  |  ------------------
  ------------------
 6506|       |
 6507|    203|    return size;
 6508|    205|}
ogs_nas_5gs_decode_n3qai:
 6528|    486|{
 6529|    486|    int size = 0;
 6530|    486|    ogs_nas_n3qai_t *source = NULL;
 6531|       |
 6532|    486|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6532:9): [True: 5, False: 481]
  ------------------
 6533|      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__) 
  |  |  ------------------
  ------------------
 6534|      5|       return -1;
 6535|      5|    }
 6536|       |
 6537|    481|    source = (ogs_nas_n3qai_t *)pkbuf->data;
 6538|       |
 6539|    481|    n3qai->length = be16toh(source->length);
 6540|    481|    size = n3qai->length + sizeof(n3qai->length);
 6541|       |
 6542|    481|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6542:9): [True: 20, False: 461]
  ------------------
 6543|     20|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 6544|     20|       return -1;
 6545|     20|    }
 6546|       |
 6547|    461|    n3qai->buffer = pkbuf->data - size + sizeof(n3qai->length);
 6548|       |
 6549|    461|    ogs_trace("  N3QAI - ");
  ------------------
  |  |   40|    461|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    461|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    461|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    461|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    461|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    461|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6550|    461|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)n3qai->buffer, n3qai->length);
  ------------------
  |  |   53|    461|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    461|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6551|       |
 6552|    461|    return size;
 6553|    481|}
ogs_nas_5gs_decode_non_3gpp_delay_budget:
 6581|    259|{
 6582|    259|    int size = 0;
 6583|    259|    ogs_nas_non_3gpp_delay_budget_t *source = NULL;
 6584|       |
 6585|    259|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6585:9): [True: 4, False: 255]
  ------------------
 6586|      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__) 
  |  |  ------------------
  ------------------
 6587|      4|       return -1;
 6588|      4|    }
 6589|       |
 6590|    255|    source = (ogs_nas_non_3gpp_delay_budget_t *)pkbuf->data;
 6591|       |
 6592|    255|    non_3gpp_delay_budget->length = be16toh(source->length);
 6593|    255|    size = non_3gpp_delay_budget->length + sizeof(non_3gpp_delay_budget->length);
 6594|       |
 6595|    255|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6595:9): [True: 18, False: 237]
  ------------------
 6596|     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__) 
  |  |  ------------------
  ------------------
 6597|     18|       return -1;
 6598|     18|    }
 6599|       |
 6600|    237|    non_3gpp_delay_budget->buffer = pkbuf->data - size + sizeof(non_3gpp_delay_budget->length);
 6601|       |
 6602|    237|    ogs_trace("  NON_3GPP_DELAY_BUDGET - ");
  ------------------
  |  |   40|    237|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    237|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    237|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    237|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    237|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    237|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6603|    237|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)non_3gpp_delay_budget->buffer, non_3gpp_delay_budget->length);
  ------------------
  |  |   53|    237|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    237|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6604|       |
 6605|    237|    return size;
 6606|    255|}
ogs_nas_5gs_decode_ursp_rule_enforcement_reports:
 6634|    414|{
 6635|    414|    int size = 0;
 6636|    414|    ogs_nas_ursp_rule_enforcement_reports_t *source = NULL;
 6637|       |
 6638|    414|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6638:9): [True: 4, False: 410]
  ------------------
 6639|      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__) 
  |  |  ------------------
  ------------------
 6640|      4|       return -1;
 6641|      4|    }
 6642|       |
 6643|    410|    source = (ogs_nas_ursp_rule_enforcement_reports_t *)pkbuf->data;
 6644|       |
 6645|    410|    ursp_rule_enforcement_reports->length = source->length;
 6646|    410|    size = ursp_rule_enforcement_reports->length + sizeof(ursp_rule_enforcement_reports->length);
 6647|       |
 6648|    410|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6648:9): [True: 1, False: 409]
  ------------------
 6649|      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__) 
  |  |  ------------------
  ------------------
 6650|      1|       return -1;
 6651|      1|    }
 6652|       |
 6653|    409|    if (sizeof(*ursp_rule_enforcement_reports) < size) return -1;
  ------------------
  |  Branch (6653:9): [True: 1, False: 408]
  ------------------
 6654|    408|    memcpy(ursp_rule_enforcement_reports, pkbuf->data - size, size);
 6655|       |
 6656|    408|    ogs_trace("  URSP_RULE_ENFORCEMENT_REPORTS - ");
  ------------------
  |  |   40|    408|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    408|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    408|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    408|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    408|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    408|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6657|    408|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    408|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    408|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6658|       |
 6659|    408|    return size;
 6660|    409|}
ogs_nas_5gs_decode_protocol_description:
 6680|    446|{
 6681|    446|    int size = 0;
 6682|    446|    ogs_nas_protocol_description_t *source = NULL;
 6683|       |
 6684|    446|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6684:9): [True: 3, False: 443]
  ------------------
 6685|      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__) 
  |  |  ------------------
  ------------------
 6686|      3|       return -1;
 6687|      3|    }
 6688|       |
 6689|    443|    source = (ogs_nas_protocol_description_t *)pkbuf->data;
 6690|       |
 6691|    443|    protocol_description->length = be16toh(source->length);
 6692|    443|    size = protocol_description->length + sizeof(protocol_description->length);
 6693|       |
 6694|    443|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6694:9): [True: 23, False: 420]
  ------------------
 6695|     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__) 
  |  |  ------------------
  ------------------
 6696|     23|       return -1;
 6697|     23|    }
 6698|       |
 6699|    420|    protocol_description->buffer = pkbuf->data - size + sizeof(protocol_description->length);
 6700|       |
 6701|    420|    ogs_trace("  PROTOCOL_DESCRIPTION - ");
  ------------------
  |  |   40|    420|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    420|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    420|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    420|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    420|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    420|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6702|    420|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)protocol_description->buffer, protocol_description->length);
  ------------------
  |  |   53|    420|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    420|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6703|       |
 6704|    420|    return size;
 6705|    443|}
ogs_nas_5gs_decode_always_on_pdu_session_requested:
 6733|  1.25k|{
 6734|  1.25k|    int size = sizeof(ogs_nas_always_on_pdu_session_requested_t);
 6735|       |
 6736|  1.25k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6736:9): [True: 0, False: 1.25k]
  ------------------
 6737|      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__) 
  |  |  ------------------
  ------------------
 6738|      0|       return -1;
 6739|      0|    }
 6740|       |
 6741|  1.25k|    memcpy(always_on_pdu_session_requested, pkbuf->data - size, size);
 6742|       |
 6743|  1.25k|    ogs_trace("  ALWAYS_ON_PDU_SESSION_REQUESTED - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 6744|  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
  |  |  ------------------
  ------------------
 6745|       |
 6746|  1.25k|    return size;
 6747|  1.25k|}
ogs_nas_5gs_decode_ecn_marking_for_l4s_indication:
 6765|    404|{
 6766|    404|    int size = 0;
 6767|    404|    ogs_nas_ecn_marking_for_l4s_indication_t *source = NULL;
 6768|       |
 6769|    404|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6769:9): [True: 4, False: 400]
  ------------------
 6770|      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__) 
  |  |  ------------------
  ------------------
 6771|      4|       return -1;
 6772|      4|    }
 6773|       |
 6774|    400|    source = (ogs_nas_ecn_marking_for_l4s_indication_t *)pkbuf->data;
 6775|       |
 6776|    400|    ecn_marking_for_l4s_indication->length = source->length;
 6777|    400|    size = ecn_marking_for_l4s_indication->length + sizeof(ecn_marking_for_l4s_indication->length);
 6778|       |
 6779|    400|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6779:9): [True: 1, False: 399]
  ------------------
 6780|      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__) 
  |  |  ------------------
  ------------------
 6781|      1|       return -1;
 6782|      1|    }
 6783|       |
 6784|    399|    if (sizeof(*ecn_marking_for_l4s_indication) < size) return -1;
  ------------------
  |  Branch (6784:9): [True: 1, False: 398]
  ------------------
 6785|    398|    memcpy(ecn_marking_for_l4s_indication, pkbuf->data - size, size);
 6786|       |
 6787|    398|    ogs_trace("  ECN_MARKING_FOR_L4S_INDICATION - ");
  ------------------
  |  |   40|    398|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    398|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    398|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    398|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    398|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    398|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6788|    398|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    398|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    398|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6789|       |
 6790|    398|    return size;
 6791|    399|}
ogs_nas_5gs_decode_non_3gpp_device_information:
 6811|    353|{
 6812|    353|    int size = 0;
 6813|    353|    ogs_nas_non_3gpp_device_information_t *source = NULL;
 6814|       |
 6815|    353|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6815:9): [True: 3, False: 350]
  ------------------
 6816|      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__) 
  |  |  ------------------
  ------------------
 6817|      3|       return -1;
 6818|      3|    }
 6819|       |
 6820|    350|    source = (ogs_nas_non_3gpp_device_information_t *)pkbuf->data;
 6821|       |
 6822|    350|    non_3gpp_device_information->length = be16toh(source->length);
 6823|    350|    size = non_3gpp_device_information->length + sizeof(non_3gpp_device_information->length);
 6824|       |
 6825|    350|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6825:9): [True: 23, False: 327]
  ------------------
 6826|     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__) 
  |  |  ------------------
  ------------------
 6827|     23|       return -1;
 6828|     23|    }
 6829|       |
 6830|    327|    non_3gpp_device_information->buffer = pkbuf->data - size + sizeof(non_3gpp_device_information->length);
 6831|       |
 6832|    327|    ogs_trace("  NON_3GPP_DEVICE_INFORMATION - ");
  ------------------
  |  |   40|    327|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    327|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    327|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    327|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    327|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    327|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6833|    327|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)non_3gpp_device_information->buffer, non_3gpp_device_information->length);
  ------------------
  |  |   53|    327|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    327|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6834|       |
 6835|    327|    return size;
 6836|    350|}
ogs_nas_5gs_decode_allowed_ssc_mode:
 6864|    886|{
 6865|    886|    int size = sizeof(ogs_nas_allowed_ssc_mode_t);
 6866|       |
 6867|    886|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6867:9): [True: 0, False: 886]
  ------------------
 6868|      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__) 
  |  |  ------------------
  ------------------
 6869|      0|       return -1;
 6870|      0|    }
 6871|       |
 6872|    886|    memcpy(allowed_ssc_mode, pkbuf->data - size, size);
 6873|       |
 6874|    886|    ogs_trace("  ALLOWED_SSC_MODE - ");
  ------------------
  |  |   40|    886|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    886|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    886|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    886|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    886|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    886|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6875|    886|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    886|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    886|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6876|       |
 6877|    886|    return size;
 6878|    886|}
ogs_nas_5gs_decode_extended_protocol_configuration_options:
 6896|  3.15k|{
 6897|  3.15k|    int size = 0;
 6898|  3.15k|    ogs_nas_extended_protocol_configuration_options_t *source = NULL;
 6899|       |
 6900|  3.15k|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6900:9): [True: 20, False: 3.13k]
  ------------------
 6901|     20|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 6902|     20|       return -1;
 6903|     20|    }
 6904|       |
 6905|  3.13k|    source = (ogs_nas_extended_protocol_configuration_options_t *)pkbuf->data;
 6906|       |
 6907|  3.13k|    extended_protocol_configuration_options->length = be16toh(source->length);
 6908|  3.13k|    size = extended_protocol_configuration_options->length + sizeof(extended_protocol_configuration_options->length);
 6909|       |
 6910|  3.13k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6910:9): [True: 25, False: 3.10k]
  ------------------
 6911|     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__) 
  |  |  ------------------
  ------------------
 6912|     25|       return -1;
 6913|     25|    }
 6914|       |
 6915|  3.10k|    extended_protocol_configuration_options->buffer = pkbuf->data - size + sizeof(extended_protocol_configuration_options->length);
 6916|       |
 6917|  3.10k|    ogs_trace("  EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS - ");
  ------------------
  |  |   40|  3.10k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  3.10k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  3.10k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  3.10k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  3.10k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  3.10k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6918|  3.10k|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)extended_protocol_configuration_options->buffer, extended_protocol_configuration_options->length);
  ------------------
  |  |   53|  3.10k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  3.10k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6919|       |
 6920|  3.10k|    return size;
 6921|  3.13k|}
ogs_nas_5gs_decode_integrity_protection_maximum_data_rate:
 6949|    523|{
 6950|    523|    int size = sizeof(ogs_nas_integrity_protection_maximum_data_rate_t);
 6951|       |
 6952|    523|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6952:9): [True: 6, False: 517]
  ------------------
 6953|      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__) 
  |  |  ------------------
  ------------------
 6954|      6|       return -1;
 6955|      6|    }
 6956|       |
 6957|    517|    memcpy(integrity_protection_maximum_data_rate, pkbuf->data - size, size);
 6958|       |
 6959|    517|    ogs_trace("  INTEGRITY_PROTECTION_MAXIMUM_DATA_RATE - ");
  ------------------
  |  |   40|    517|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    517|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    517|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    517|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    517|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    517|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6960|    517|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    517|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    517|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6961|       |
 6962|    517|    return size;
 6963|    523|}
ogs_nas_5gs_decode_mapped_eps_bearer_contexts:
 6983|    915|{
 6984|    915|    int size = 0;
 6985|    915|    ogs_nas_mapped_eps_bearer_contexts_t *source = NULL;
 6986|       |
 6987|    915|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6987:9): [True: 8, False: 907]
  ------------------
 6988|      8|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 6989|      8|       return -1;
 6990|      8|    }
 6991|       |
 6992|    907|    source = (ogs_nas_mapped_eps_bearer_contexts_t *)pkbuf->data;
 6993|       |
 6994|    907|    mapped_eps_bearer_contexts->length = be16toh(source->length);
 6995|    907|    size = mapped_eps_bearer_contexts->length + sizeof(mapped_eps_bearer_contexts->length);
 6996|       |
 6997|    907|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6997:9): [True: 20, False: 887]
  ------------------
 6998|     20|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 6999|     20|       return -1;
 7000|     20|    }
 7001|       |
 7002|    887|    mapped_eps_bearer_contexts->buffer = pkbuf->data - size + sizeof(mapped_eps_bearer_contexts->length);
 7003|       |
 7004|    887|    ogs_trace("  MAPPED_EPS_BEARER_CONTEXTS - ");
  ------------------
  |  |   40|    887|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    887|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    887|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    887|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    887|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    887|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 7005|    887|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)mapped_eps_bearer_contexts->buffer, mapped_eps_bearer_contexts->length);
  ------------------
  |  |   53|    887|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    887|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 7006|       |
 7007|    887|    return size;
 7008|    907|}
ogs_nas_5gs_decode_maximum_number_of_supported_packet_filters:
 7036|    424|{
 7037|    424|    int size = sizeof(ogs_nas_maximum_number_of_supported_packet_filters_t);
 7038|       |
 7039|    424|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (7039:9): [True: 6, False: 418]
  ------------------
 7040|      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__) 
  |  |  ------------------
  ------------------
 7041|      6|       return -1;
 7042|      6|    }
 7043|       |
 7044|    418|    memcpy(maximum_number_of_supported_packet_filters, pkbuf->data - size, size);
 7045|       |
 7046|    418|    ogs_trace("  MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS - ");
  ------------------
  |  |   40|    418|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    418|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    418|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    418|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    418|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    418|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 7047|    418|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    418|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    418|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 7048|       |
 7049|    418|    return size;
 7050|    424|}

ogs_fqdn_parse:
  685|  1.49k|{
  686|  1.49k|    int i = 0, j = 0;
  687|  1.49k|    uint8_t len = 0;
  688|       |
  689|  3.73k|    while (i+1 <= length) {
  ------------------
  |  Branch (689:12): [True: 2.60k, False: 1.12k]
  ------------------
  690|  2.60k|        len = src[i++];
  691|  2.60k|        if ((j + len + 1) > length) {
  ------------------
  |  Branch (691:13): [True: 367, False: 2.24k]
  ------------------
  692|    367|            ogs_error("Invalid FQDN encoding[j:%d+len:%d] + 1 > length[%d]",
  ------------------
  |  |   36|    367|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    367|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   32|    367|#define OGS_LOG_DOMAIN      1
  |  |  |  |  ------------------
  |  |  |  |   44|    367|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    367|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    367|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  693|    367|                    j, len, length);
  694|    367|            ogs_log_hexdump(OGS_LOG_ERROR, (unsigned char *)src, length);
  ------------------
  |  |   53|    367|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   32|    367|#define OGS_LOG_DOMAIN      1
  |  |  ------------------
  ------------------
  695|    367|            return -EINVAL;
  696|    367|        }
  697|  2.24k|        memcpy(&dst[j], &src[i], len);
  698|       |
  699|  2.24k|        i += len;
  700|  2.24k|        j += len;
  701|       |
  702|  2.24k|        if (i+1 < length)
  ------------------
  |  Branch (702:13): [True: 987, False: 1.25k]
  ------------------
  703|    987|            dst[j++] = '.';
  704|  1.25k|        else
  705|  1.25k|            dst[j] = 0;
  706|  2.24k|    }
  707|       |
  708|  1.12k|    return j;
  709|  1.49k|}

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

