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

types.c:ogs_htobe24:
  137|    104|{
  138|    104|    uint32_t tmp = x.v;
  139|       |    tmp = htobe32(tmp);
  140|    104|    x.v = tmp >> 8;
  141|    104|    return x;
  142|    104|}
types.c:ogs_be24toh:
  129|     31|{
  130|     31|    uint32_t tmp = x.v;
  131|       |    tmp = be32toh(tmp);
  132|     31|    x.v = tmp >> 8;
  133|     31|    return x;
  134|     31|}
ies.c:ogs_be24toh:
  129|    305|{
  130|    305|    uint32_t tmp = x.v;
  131|       |    tmp = be32toh(tmp);
  132|    305|    x.v = tmp >> 8;
  133|    305|    return x;
  134|    305|}

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

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

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

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

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

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|    648|{
   80|    648|    ogs_nas_5gs_registration_request_t *registration_request = &message->gmm.registration_request;
   81|    648|    int decoded = 0;
   82|    648|    int size = 0;
   83|       |
   84|    648|    ogs_trace("[NAS] Decode REGISTRATION_REQUEST\n");
  ------------------
  |  |   40|    648|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    648|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    648|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    648|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    648|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    648|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
   85|       |
   86|    648|    size = ogs_nas_5gs_decode_5gs_registration_type(&registration_request->registration_type, pkbuf);
   87|    648|    if (size < 0) {
  ------------------
  |  Branch (87:9): [True: 0, False: 648]
  ------------------
   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|    648|    decoded += size;
   93|       |
   94|    648|    size = ogs_nas_5gs_decode_5gs_mobile_identity(&registration_request->mobile_identity, pkbuf);
   95|    648|    if (size < 0) {
  ------------------
  |  Branch (95:9): [True: 7, False: 641]
  ------------------
   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|    641|    decoded += size;
  101|       |
  102|  25.8k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (102:12): [True: 25.3k, False: 473]
  ------------------
  103|  25.3k|        uint8_t *buffer = pkbuf->data;
  104|  25.3k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (104:24): [True: 6.47k, False: 18.8k]
  ------------------
  105|       |
  106|  25.3k|        size = sizeof(uint8_t);
  107|  25.3k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (107:13): [True: 0, False: 25.3k]
  ------------------
  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|  25.3k|        decoded += size;
  112|       |
  113|  25.3k|        switch(type) {
  114|    495|        case OGS_NAS_5GS_REGISTRATION_REQUEST_NON_CURRENT_NATIVE_NAS_KEY_SET_IDENTIFIER_TYPE:
  ------------------
  |  |  163|    495|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NON_CURRENT_NATIVE_NAS_KEY_SET_IDENTIFIER_TYPE 0xC0
  ------------------
  |  Branch (114:9): [True: 495, False: 24.8k]
  ------------------
  115|    495|            decoded--;
  116|    495|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    495|    do { \
  |  |  114|    495|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    495|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 495, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    495|        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|    495|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 495]
  |  |  ------------------
  ------------------
  117|    495|            size = ogs_nas_5gs_decode_key_set_identifier(&registration_request->non_current_native_nas_key_set_identifier, pkbuf);
  118|    495|            if (size < 0) {
  ------------------
  |  Branch (118:17): [True: 0, False: 495]
  ------------------
  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|    495|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_NON_CURRENT_NATIVE_NAS_KEY_SET_IDENTIFIER_PRESENT;
  ------------------
  |  |  120|    495|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NON_CURRENT_NATIVE_NAS_KEY_SET_IDENTIFIER_PRESENT ((uint64_t)1<<0)
  ------------------
  124|    495|            decoded += size;
  125|    495|            break;
  126|    306|        case OGS_NAS_5GS_REGISTRATION_REQUEST_5GMM_CAPABILITY_TYPE:
  ------------------
  |  |  164|    306|#define OGS_NAS_5GS_REGISTRATION_REQUEST_5GMM_CAPABILITY_TYPE 0x10
  ------------------
  |  Branch (126:9): [True: 306, False: 25.0k]
  ------------------
  127|    306|            size = ogs_nas_5gs_decode_5gmm_capability(&registration_request->gmm_capability, pkbuf);
  128|    306|            if (size < 0) {
  ------------------
  |  Branch (128:17): [True: 12, False: 294]
  ------------------
  129|     12|               ogs_error("ogs_nas_5gs_decode_5gmm_capability() 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__) 
  |  |  ------------------
  ------------------
  130|     12|               return size;
  131|     12|            }
  132|       |
  133|    294|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_5GMM_CAPABILITY_PRESENT;
  ------------------
  |  |  121|    294|#define OGS_NAS_5GS_REGISTRATION_REQUEST_5GMM_CAPABILITY_PRESENT ((uint64_t)1<<1)
  ------------------
  134|    294|            decoded += size;
  135|    294|            break;
  136|    212|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UE_SECURITY_CAPABILITY_TYPE:
  ------------------
  |  |  165|    212|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_SECURITY_CAPABILITY_TYPE 0x2E
  ------------------
  |  Branch (136:9): [True: 212, False: 25.1k]
  ------------------
  137|    212|            size = ogs_nas_5gs_decode_ue_security_capability(&registration_request->ue_security_capability, pkbuf);
  138|    212|            if (size < 0) {
  ------------------
  |  Branch (138:17): [True: 3, False: 209]
  ------------------
  139|      3|               ogs_error("ogs_nas_5gs_decode_ue_security_capability() 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__) 
  |  |  ------------------
  ------------------
  140|      3|               return size;
  141|      3|            }
  142|       |
  143|    209|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UE_SECURITY_CAPABILITY_PRESENT;
  ------------------
  |  |  122|    209|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_SECURITY_CAPABILITY_PRESENT ((uint64_t)1<<2)
  ------------------
  144|    209|            decoded += size;
  145|    209|            break;
  146|    234|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NSSAI_TYPE:
  ------------------
  |  |  166|    234|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NSSAI_TYPE 0x2F
  ------------------
  |  Branch (146:9): [True: 234, False: 25.1k]
  ------------------
  147|    234|            size = ogs_nas_5gs_decode_nssai(&registration_request->requested_nssai, pkbuf);
  148|    234|            if (size < 0) {
  ------------------
  |  Branch (148:17): [True: 1, False: 233]
  ------------------
  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|    233|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NSSAI_PRESENT;
  ------------------
  |  |  123|    233|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NSSAI_PRESENT ((uint64_t)1<<3)
  ------------------
  154|    233|            decoded += size;
  155|    233|            break;
  156|    313|        case OGS_NAS_5GS_REGISTRATION_REQUEST_LAST_VISITED_REGISTERED_TAI_TYPE:
  ------------------
  |  |  167|    313|#define OGS_NAS_5GS_REGISTRATION_REQUEST_LAST_VISITED_REGISTERED_TAI_TYPE 0x52
  ------------------
  |  Branch (156:9): [True: 313, False: 25.0k]
  ------------------
  157|    313|            size = ogs_nas_5gs_decode_5gs_tracking_area_identity(&registration_request->last_visited_registered_tai, pkbuf);
  158|    313|            if (size < 0) {
  ------------------
  |  Branch (158:17): [True: 8, False: 305]
  ------------------
  159|      8|               ogs_error("ogs_nas_5gs_decode_5gs_tracking_area_identity() 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__) 
  |  |  ------------------
  ------------------
  160|      8|               return size;
  161|      8|            }
  162|       |
  163|    305|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_LAST_VISITED_REGISTERED_TAI_PRESENT;
  ------------------
  |  |  124|    305|#define OGS_NAS_5GS_REGISTRATION_REQUEST_LAST_VISITED_REGISTERED_TAI_PRESENT ((uint64_t)1<<4)
  ------------------
  164|    305|            decoded += size;
  165|    305|            break;
  166|    226|        case OGS_NAS_5GS_REGISTRATION_REQUEST_S1_UE_NETWORK_CAPABILITY_TYPE:
  ------------------
  |  |  168|    226|#define OGS_NAS_5GS_REGISTRATION_REQUEST_S1_UE_NETWORK_CAPABILITY_TYPE 0x17
  ------------------
  |  Branch (166:9): [True: 226, False: 25.1k]
  ------------------
  167|    226|            size = ogs_nas_5gs_decode_s1_ue_network_capability(&registration_request->s1_ue_network_capability, pkbuf);
  168|    226|            if (size < 0) {
  ------------------
  |  Branch (168:17): [True: 5, False: 221]
  ------------------
  169|      5|               ogs_error("ogs_nas_5gs_decode_s1_ue_network_capability() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  170|      5|               return size;
  171|      5|            }
  172|       |
  173|    221|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_S1_UE_NETWORK_CAPABILITY_PRESENT;
  ------------------
  |  |  125|    221|#define OGS_NAS_5GS_REGISTRATION_REQUEST_S1_UE_NETWORK_CAPABILITY_PRESENT ((uint64_t)1<<5)
  ------------------
  174|    221|            decoded += size;
  175|    221|            break;
  176|    245|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UPLINK_DATA_STATUS_TYPE:
  ------------------
  |  |  169|    245|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UPLINK_DATA_STATUS_TYPE 0x40
  ------------------
  |  Branch (176:9): [True: 245, False: 25.1k]
  ------------------
  177|    245|            size = ogs_nas_5gs_decode_uplink_data_status(&registration_request->uplink_data_status, pkbuf);
  178|    245|            if (size < 0) {
  ------------------
  |  Branch (178:17): [True: 4, False: 241]
  ------------------
  179|      4|               ogs_error("ogs_nas_5gs_decode_uplink_data_status() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  180|      4|               return size;
  181|      4|            }
  182|       |
  183|    241|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UPLINK_DATA_STATUS_PRESENT;
  ------------------
  |  |  126|    241|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UPLINK_DATA_STATUS_PRESENT ((uint64_t)1<<6)
  ------------------
  184|    241|            decoded += size;
  185|    241|            break;
  186|    217|        case OGS_NAS_5GS_REGISTRATION_REQUEST_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  |  170|    217|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PDU_SESSION_STATUS_TYPE 0x50
  ------------------
  |  Branch (186:9): [True: 217, False: 25.1k]
  ------------------
  187|    217|            size = ogs_nas_5gs_decode_pdu_session_status(&registration_request->pdu_session_status, pkbuf);
  188|    217|            if (size < 0) {
  ------------------
  |  Branch (188:17): [True: 1, False: 216]
  ------------------
  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|    216|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  |  127|    216|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<7)
  ------------------
  194|    216|            decoded += size;
  195|    216|            break;
  196|    979|        case OGS_NAS_5GS_REGISTRATION_REQUEST_MICO_INDICATION_TYPE:
  ------------------
  |  |  171|    979|#define OGS_NAS_5GS_REGISTRATION_REQUEST_MICO_INDICATION_TYPE 0xB0
  ------------------
  |  Branch (196:9): [True: 979, False: 24.3k]
  ------------------
  197|    979|            decoded--;
  198|    979|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    979|    do { \
  |  |  114|    979|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    979|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 979, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    979|        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|    979|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 979]
  |  |  ------------------
  ------------------
  199|    979|            size = ogs_nas_5gs_decode_mico_indication(&registration_request->mico_indication, pkbuf);
  200|    979|            if (size < 0) {
  ------------------
  |  Branch (200:17): [True: 0, False: 979]
  ------------------
  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|    979|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_MICO_INDICATION_PRESENT;
  ------------------
  |  |  128|    979|#define OGS_NAS_5GS_REGISTRATION_REQUEST_MICO_INDICATION_PRESENT ((uint64_t)1<<8)
  ------------------
  206|    979|            decoded += size;
  207|    979|            break;
  208|    214|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UE_STATUS_TYPE:
  ------------------
  |  |  172|    214|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_STATUS_TYPE 0x2B
  ------------------
  |  Branch (208:9): [True: 214, False: 25.1k]
  ------------------
  209|    214|            size = ogs_nas_5gs_decode_ue_status(&registration_request->ue_status, pkbuf);
  210|    214|            if (size < 0) {
  ------------------
  |  Branch (210:17): [True: 6, False: 208]
  ------------------
  211|      6|               ogs_error("ogs_nas_5gs_decode_ue_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__) 
  |  |  ------------------
  ------------------
  212|      6|               return size;
  213|      6|            }
  214|       |
  215|    208|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UE_STATUS_PRESENT;
  ------------------
  |  |  129|    208|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_STATUS_PRESENT ((uint64_t)1<<9)
  ------------------
  216|    208|            decoded += size;
  217|    208|            break;
  218|    240|        case OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_GUTI_TYPE:
  ------------------
  |  |  173|    240|#define OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_GUTI_TYPE 0x77
  ------------------
  |  Branch (218:9): [True: 240, False: 25.1k]
  ------------------
  219|    240|            size = ogs_nas_5gs_decode_5gs_mobile_identity(&registration_request->additional_guti, pkbuf);
  220|    240|            if (size < 0) {
  ------------------
  |  Branch (220:17): [True: 1, False: 239]
  ------------------
  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|    239|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_GUTI_PRESENT;
  ------------------
  |  |  130|    239|#define OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_GUTI_PRESENT ((uint64_t)1<<10)
  ------------------
  226|    239|            decoded += size;
  227|    239|            break;
  228|    357|        case OGS_NAS_5GS_REGISTRATION_REQUEST_ALLOWED_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  |  174|    357|#define OGS_NAS_5GS_REGISTRATION_REQUEST_ALLOWED_PDU_SESSION_STATUS_TYPE 0x25
  ------------------
  |  Branch (228:9): [True: 357, False: 25.0k]
  ------------------
  229|    357|            size = ogs_nas_5gs_decode_allowed_pdu_session_status(&registration_request->allowed_pdu_session_status, pkbuf);
  230|    357|            if (size < 0) {
  ------------------
  |  Branch (230:17): [True: 2, False: 355]
  ------------------
  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|    355|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_ALLOWED_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  |  131|    355|#define OGS_NAS_5GS_REGISTRATION_REQUEST_ALLOWED_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<11)
  ------------------
  236|    355|            decoded += size;
  237|    355|            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: 25.1k]
  ------------------
  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: 6, False: 206]
  ------------------
  241|      6|               ogs_error("ogs_nas_5gs_decode_ue_usage_setting() 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__) 
  |  |  ------------------
  ------------------
  242|      6|               return size;
  243|      6|            }
  244|       |
  245|    206|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UE_USAGE_SETTING_PRESENT;
  ------------------
  |  |  132|    206|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_USAGE_SETTING_PRESENT ((uint64_t)1<<12)
  ------------------
  246|    206|            decoded += size;
  247|    206|            break;
  248|    231|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_DRX_PARAMETERS_TYPE:
  ------------------
  |  |  176|    231|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_DRX_PARAMETERS_TYPE 0x51
  ------------------
  |  Branch (248:9): [True: 231, False: 25.1k]
  ------------------
  249|    231|            size = ogs_nas_5gs_decode_5gs_drx_parameters(&registration_request->requested_drx_parameters, pkbuf);
  250|    231|            if (size < 0) {
  ------------------
  |  Branch (250:17): [True: 3, False: 228]
  ------------------
  251|      3|               ogs_error("ogs_nas_5gs_decode_5gs_drx_parameters() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  252|      3|               return size;
  253|      3|            }
  254|       |
  255|    228|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_DRX_PARAMETERS_PRESENT;
  ------------------
  |  |  133|    228|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_DRX_PARAMETERS_PRESENT ((uint64_t)1<<13)
  ------------------
  256|    228|            decoded += size;
  257|    228|            break;
  258|    285|        case OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_NAS_MESSAGE_CONTAINER_TYPE:
  ------------------
  |  |  177|    285|#define OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_NAS_MESSAGE_CONTAINER_TYPE 0x70
  ------------------
  |  Branch (258:9): [True: 285, False: 25.0k]
  ------------------
  259|    285|            size = ogs_nas_5gs_decode_eps_nas_message_container(&registration_request->eps_nas_message_container, pkbuf);
  260|    285|            if (size < 0) {
  ------------------
  |  Branch (260:17): [True: 29, False: 256]
  ------------------
  261|     29|               ogs_error("ogs_nas_5gs_decode_eps_nas_message_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__) 
  |  |  ------------------
  ------------------
  262|     29|               return size;
  263|     29|            }
  264|       |
  265|    256|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_NAS_MESSAGE_CONTAINER_PRESENT;
  ------------------
  |  |  134|    256|#define OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_NAS_MESSAGE_CONTAINER_PRESENT ((uint64_t)1<<14)
  ------------------
  266|    256|            decoded += size;
  267|    256|            break;
  268|    213|        case OGS_NAS_5GS_REGISTRATION_REQUEST_LADN_INDICATION_TYPE:
  ------------------
  |  |  178|    213|#define OGS_NAS_5GS_REGISTRATION_REQUEST_LADN_INDICATION_TYPE 0x74
  ------------------
  |  Branch (268:9): [True: 213, False: 25.1k]
  ------------------
  269|    213|            size = ogs_nas_5gs_decode_ladn_indication(&registration_request->ladn_indication, pkbuf);
  270|    213|            if (size < 0) {
  ------------------
  |  Branch (270:17): [True: 9, False: 204]
  ------------------
  271|      9|               ogs_error("ogs_nas_5gs_decode_ladn_indication() 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__) 
  |  |  ------------------
  ------------------
  272|      9|               return size;
  273|      9|            }
  274|       |
  275|    204|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_LADN_INDICATION_PRESENT;
  ------------------
  |  |  135|    204|#define OGS_NAS_5GS_REGISTRATION_REQUEST_LADN_INDICATION_PRESENT ((uint64_t)1<<15)
  ------------------
  276|    204|            decoded += size;
  277|    204|            break;
  278|    660|        case OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_TYPE_TYPE:
  ------------------
  |  |  179|    660|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_TYPE_TYPE 0x80
  ------------------
  |  Branch (278:9): [True: 660, False: 24.7k]
  ------------------
  279|    660|            decoded--;
  280|    660|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    660|    do { \
  |  |  114|    660|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    660|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 660, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    660|        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|    660|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 660]
  |  |  ------------------
  ------------------
  281|    660|            size = ogs_nas_5gs_decode_payload_container_type(&registration_request->payload_container_type, pkbuf);
  282|    660|            if (size < 0) {
  ------------------
  |  Branch (282:17): [True: 0, False: 660]
  ------------------
  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|    660|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_TYPE_PRESENT;
  ------------------
  |  |  136|    660|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_TYPE_PRESENT ((uint64_t)1<<16)
  ------------------
  288|    660|            decoded += size;
  289|    660|            break;
  290|    367|        case OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_TYPE:
  ------------------
  |  |  180|    367|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_TYPE 0x7B
  ------------------
  |  Branch (290:9): [True: 367, False: 24.9k]
  ------------------
  291|    367|            size = ogs_nas_5gs_decode_payload_container(&registration_request->payload_container, pkbuf);
  292|    367|            if (size < 0) {
  ------------------
  |  Branch (292:17): [True: 2, False: 365]
  ------------------
  293|      2|               ogs_error("ogs_nas_5gs_decode_payload_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__) 
  |  |  ------------------
  ------------------
  294|      2|               return size;
  295|      2|            }
  296|       |
  297|    365|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_PRESENT;
  ------------------
  |  |  137|    365|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PAYLOAD_CONTAINER_PRESENT ((uint64_t)1<<17)
  ------------------
  298|    365|            decoded += size;
  299|    365|            break;
  300|    898|        case OGS_NAS_5GS_REGISTRATION_REQUEST_NETWORK_SLICING_INDICATION_TYPE:
  ------------------
  |  |  181|    898|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NETWORK_SLICING_INDICATION_TYPE 0x90
  ------------------
  |  Branch (300:9): [True: 898, False: 24.4k]
  ------------------
  301|    898|            decoded--;
  302|    898|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    898|    do { \
  |  |  114|    898|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    898|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 898, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    898|        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|    898|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 898]
  |  |  ------------------
  ------------------
  303|    898|            size = ogs_nas_5gs_decode_network_slicing_indication(&registration_request->network_slicing_indication, pkbuf);
  304|    898|            if (size < 0) {
  ------------------
  |  Branch (304:17): [True: 0, False: 898]
  ------------------
  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|    898|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_NETWORK_SLICING_INDICATION_PRESENT;
  ------------------
  |  |  138|    898|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NETWORK_SLICING_INDICATION_PRESENT ((uint64_t)1<<18)
  ------------------
  310|    898|            decoded += size;
  311|    898|            break;
  312|    208|        case OGS_NAS_5GS_REGISTRATION_REQUEST_5GS_UPDATE_TYPE_TYPE:
  ------------------
  |  |  182|    208|#define OGS_NAS_5GS_REGISTRATION_REQUEST_5GS_UPDATE_TYPE_TYPE 0x53
  ------------------
  |  Branch (312:9): [True: 208, False: 25.1k]
  ------------------
  313|    208|            size = ogs_nas_5gs_decode_5gs_update_type(&registration_request->update_type, pkbuf);
  314|    208|            if (size < 0) {
  ------------------
  |  Branch (314:17): [True: 4, False: 204]
  ------------------
  315|      4|               ogs_error("ogs_nas_5gs_decode_5gs_update_type() 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__) 
  |  |  ------------------
  ------------------
  316|      4|               return size;
  317|      4|            }
  318|       |
  319|    204|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_5GS_UPDATE_TYPE_PRESENT;
  ------------------
  |  |  139|    204|#define OGS_NAS_5GS_REGISTRATION_REQUEST_5GS_UPDATE_TYPE_PRESENT ((uint64_t)1<<19)
  ------------------
  320|    204|            decoded += size;
  321|    204|            break;
  322|    228|        case OGS_NAS_5GS_REGISTRATION_REQUEST_MOBILE_STATION_CLASSMARK_2_TYPE:
  ------------------
  |  |  183|    228|#define OGS_NAS_5GS_REGISTRATION_REQUEST_MOBILE_STATION_CLASSMARK_2_TYPE 0x41
  ------------------
  |  Branch (322:9): [True: 228, False: 25.1k]
  ------------------
  323|    228|            size = ogs_nas_5gs_decode_mobile_station_classmark_2(&registration_request->mobile_station_classmark_2, pkbuf);
  324|    228|            if (size < 0) {
  ------------------
  |  Branch (324:17): [True: 6, False: 222]
  ------------------
  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|    222|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_MOBILE_STATION_CLASSMARK_2_PRESENT;
  ------------------
  |  |  140|    222|#define OGS_NAS_5GS_REGISTRATION_REQUEST_MOBILE_STATION_CLASSMARK_2_PRESENT ((uint64_t)1<<20)
  ------------------
  330|    222|            decoded += size;
  331|    222|            break;
  332|    227|        case OGS_NAS_5GS_REGISTRATION_REQUEST_SUPPORTED_CODECS_TYPE:
  ------------------
  |  |  184|    227|#define OGS_NAS_5GS_REGISTRATION_REQUEST_SUPPORTED_CODECS_TYPE 0x42
  ------------------
  |  Branch (332:9): [True: 227, False: 25.1k]
  ------------------
  333|    227|            size = ogs_nas_5gs_decode_supported_codec_list(&registration_request->supported_codecs, pkbuf);
  334|    227|            if (size < 0) {
  ------------------
  |  Branch (334:17): [True: 3, False: 224]
  ------------------
  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|    224|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_SUPPORTED_CODECS_PRESENT;
  ------------------
  |  |  141|    224|#define OGS_NAS_5GS_REGISTRATION_REQUEST_SUPPORTED_CODECS_PRESENT ((uint64_t)1<<21)
  ------------------
  340|    224|            decoded += size;
  341|    224|            break;
  342|    226|        case OGS_NAS_5GS_REGISTRATION_REQUEST_NAS_MESSAGE_CONTAINER_TYPE:
  ------------------
  |  |  185|    226|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NAS_MESSAGE_CONTAINER_TYPE 0x71
  ------------------
  |  Branch (342:9): [True: 226, False: 25.1k]
  ------------------
  343|    226|            size = ogs_nas_5gs_decode_message_container(&registration_request->nas_message_container, pkbuf);
  344|    226|            if (size < 0) {
  ------------------
  |  Branch (344:17): [True: 1, False: 225]
  ------------------
  345|      1|               ogs_error("ogs_nas_5gs_decode_message_container() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  346|      1|               return size;
  347|      1|            }
  348|       |
  349|    225|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_NAS_MESSAGE_CONTAINER_PRESENT;
  ------------------
  |  |  142|    225|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NAS_MESSAGE_CONTAINER_PRESENT ((uint64_t)1<<22)
  ------------------
  350|    225|            decoded += size;
  351|    225|            break;
  352|    212|        case OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_BEARER_CONTEXT_STATUS_TYPE:
  ------------------
  |  |  186|    212|#define OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_BEARER_CONTEXT_STATUS_TYPE 0x60
  ------------------
  |  Branch (352:9): [True: 212, False: 25.1k]
  ------------------
  353|    212|            size = ogs_nas_5gs_decode_eps_bearer_context_status(&registration_request->eps_bearer_context_status, pkbuf);
  354|    212|            if (size < 0) {
  ------------------
  |  Branch (354:17): [True: 3, False: 209]
  ------------------
  355|      3|               ogs_error("ogs_nas_5gs_decode_eps_bearer_context_status() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  356|      3|               return size;
  357|      3|            }
  358|       |
  359|    209|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_BEARER_CONTEXT_STATUS_PRESENT;
  ------------------
  |  |  143|    209|#define OGS_NAS_5GS_REGISTRATION_REQUEST_EPS_BEARER_CONTEXT_STATUS_PRESENT ((uint64_t)1<<23)
  ------------------
  360|    209|            decoded += size;
  361|    209|            break;
  362|    222|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_EXTENDED_DRX_PARAMETERS_TYPE:
  ------------------
  |  |  187|    222|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_EXTENDED_DRX_PARAMETERS_TYPE 0x6E
  ------------------
  |  Branch (362:9): [True: 222, False: 25.1k]
  ------------------
  363|    222|            size = ogs_nas_5gs_decode_extended_drx_parameters(&registration_request->requested_extended_drx_parameters, pkbuf);
  364|    222|            if (size < 0) {
  ------------------
  |  Branch (364:17): [True: 2, False: 220]
  ------------------
  365|      2|               ogs_error("ogs_nas_5gs_decode_extended_drx_parameters() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  366|      2|               return size;
  367|      2|            }
  368|       |
  369|    220|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_EXTENDED_DRX_PARAMETERS_PRESENT;
  ------------------
  |  |  144|    220|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_EXTENDED_DRX_PARAMETERS_PRESENT ((uint64_t)1<<24)
  ------------------
  370|    220|            decoded += size;
  371|    220|            break;
  372|    206|        case OGS_NAS_5GS_REGISTRATION_REQUEST_T3324_VALUE_TYPE:
  ------------------
  |  |  188|    206|#define OGS_NAS_5GS_REGISTRATION_REQUEST_T3324_VALUE_TYPE 0x6A
  ------------------
  |  Branch (372:9): [True: 206, False: 25.1k]
  ------------------
  373|    206|            size = ogs_nas_5gs_decode_gprs_timer_3(&registration_request->t3324_value, pkbuf);
  374|    206|            if (size < 0) {
  ------------------
  |  Branch (374:17): [True: 2, False: 204]
  ------------------
  375|      2|               ogs_error("ogs_nas_5gs_decode_gprs_timer_3() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  376|      2|               return size;
  377|      2|            }
  378|       |
  379|    204|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_T3324_VALUE_PRESENT;
  ------------------
  |  |  145|    204|#define OGS_NAS_5GS_REGISTRATION_REQUEST_T3324_VALUE_PRESENT ((uint64_t)1<<25)
  ------------------
  380|    204|            decoded += size;
  381|    204|            break;
  382|    221|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UE_RADIO_CAPABILITY_ID_TYPE:
  ------------------
  |  |  189|    221|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_RADIO_CAPABILITY_ID_TYPE 0x67
  ------------------
  |  Branch (382:9): [True: 221, False: 25.1k]
  ------------------
  383|    221|            size = ogs_nas_5gs_decode_ue_radio_capability_id(&registration_request->ue_radio_capability_id, pkbuf);
  384|    221|            if (size < 0) {
  ------------------
  |  Branch (384:17): [True: 1, False: 220]
  ------------------
  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|    220|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UE_RADIO_CAPABILITY_ID_PRESENT;
  ------------------
  |  |  146|    220|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_RADIO_CAPABILITY_ID_PRESENT ((uint64_t)1<<26)
  ------------------
  390|    220|            decoded += size;
  391|    220|            break;
  392|    203|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_MAPPED_NSSAI_TYPE:
  ------------------
  |  |  190|    203|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_MAPPED_NSSAI_TYPE 0x35
  ------------------
  |  Branch (392:9): [True: 203, False: 25.1k]
  ------------------
  393|    203|            size = ogs_nas_5gs_decode_mapped_nssai(&registration_request->requested_mapped_nssai, pkbuf);
  394|    203|            if (size < 0) {
  ------------------
  |  Branch (394:17): [True: 3, False: 200]
  ------------------
  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|    200|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_MAPPED_NSSAI_PRESENT;
  ------------------
  |  |  147|    200|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_MAPPED_NSSAI_PRESENT ((uint64_t)1<<27)
  ------------------
  400|    200|            decoded += size;
  401|    200|            break;
  402|    238|        case OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_INFORMATION_REQUESTED_TYPE:
  ------------------
  |  |  191|    238|#define OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_INFORMATION_REQUESTED_TYPE 0x48
  ------------------
  |  Branch (402:9): [True: 238, False: 25.1k]
  ------------------
  403|    238|            size = ogs_nas_5gs_decode_additional_information_requested(&registration_request->additional_information_requested, pkbuf);
  404|    238|            if (size < 0) {
  ------------------
  |  Branch (404:17): [True: 5, False: 233]
  ------------------
  405|      5|               ogs_error("ogs_nas_5gs_decode_additional_information_requested() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  406|      5|               return size;
  407|      5|            }
  408|       |
  409|    233|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_INFORMATION_REQUESTED_PRESENT;
  ------------------
  |  |  148|    233|#define OGS_NAS_5GS_REGISTRATION_REQUEST_ADDITIONAL_INFORMATION_REQUESTED_PRESENT ((uint64_t)1<<28)
  ------------------
  410|    233|            decoded += size;
  411|    233|            break;
  412|    236|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_WUS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  192|    236|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_WUS_ASSISTANCE_INFORMATION_TYPE 0x1A
  ------------------
  |  Branch (412:9): [True: 236, False: 25.1k]
  ------------------
  413|    236|            size = ogs_nas_5gs_decode_wus_assistance_information(&registration_request->requested_wus_assistance_information, pkbuf);
  414|    236|            if (size < 0) {
  ------------------
  |  Branch (414:17): [True: 1, False: 235]
  ------------------
  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|    235|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_WUS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  149|    235|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_WUS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<29)
  ------------------
  420|    235|            decoded += size;
  421|    235|            break;
  422|    505|        case OGS_NAS_5GS_REGISTRATION_REQUEST_N5GC_INDICATION_TYPE:
  ------------------
  |  |  193|    505|#define OGS_NAS_5GS_REGISTRATION_REQUEST_N5GC_INDICATION_TYPE 0xA0
  ------------------
  |  Branch (422:9): [True: 505, False: 24.8k]
  ------------------
  423|    505|            decoded--;
  424|    505|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    505|    do { \
  |  |  114|    505|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    505|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 505, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    505|        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|    505|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 505]
  |  |  ------------------
  ------------------
  425|    505|            size = ogs_nas_5gs_decode_n5gc_indication(&registration_request->n5gc_indication, pkbuf);
  426|    505|            if (size < 0) {
  ------------------
  |  Branch (426:17): [True: 0, False: 505]
  ------------------
  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|    505|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_N5GC_INDICATION_PRESENT;
  ------------------
  |  |  150|    505|#define OGS_NAS_5GS_REGISTRATION_REQUEST_N5GC_INDICATION_PRESENT ((uint64_t)1<<30)
  ------------------
  432|    505|            decoded += size;
  433|    505|            break;
  434|    216|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NB_N1_MODE_DRX_PARAMETERS_TYPE:
  ------------------
  |  |  194|    216|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NB_N1_MODE_DRX_PARAMETERS_TYPE 0x30
  ------------------
  |  Branch (434:9): [True: 216, False: 25.1k]
  ------------------
  435|    216|            size = ogs_nas_5gs_decode_nb_n1_mode_drx_parameters(&registration_request->requested_nb_n1_mode_drx_parameters, pkbuf);
  436|    216|            if (size < 0) {
  ------------------
  |  Branch (436:17): [True: 1, False: 215]
  ------------------
  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|    215|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NB_N1_MODE_DRX_PARAMETERS_PRESENT;
  ------------------
  |  |  151|    215|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_NB_N1_MODE_DRX_PARAMETERS_PRESENT ((uint64_t)1<<31)
  ------------------
  442|    215|            decoded += size;
  443|    215|            break;
  444|    206|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UE_REQUEST_TYPE_TYPE:
  ------------------
  |  |  195|    206|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_REQUEST_TYPE_TYPE 0x29
  ------------------
  |  Branch (444:9): [True: 206, False: 25.1k]
  ------------------
  445|    206|            size = ogs_nas_5gs_decode_ue_request_type(&registration_request->ue_request_type, pkbuf);
  446|    206|            if (size < 0) {
  ------------------
  |  Branch (446:17): [True: 1, False: 205]
  ------------------
  447|      1|               ogs_error("ogs_nas_5gs_decode_ue_request_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__) 
  |  |  ------------------
  ------------------
  448|      1|               return size;
  449|      1|            }
  450|       |
  451|    205|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UE_REQUEST_TYPE_PRESENT;
  ------------------
  |  |  152|    205|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_REQUEST_TYPE_PRESENT ((uint64_t)1<<32)
  ------------------
  452|    205|            decoded += size;
  453|    205|            break;
  454|    250|        case OGS_NAS_5GS_REGISTRATION_REQUEST_PAGING_RESTRICTION_TYPE:
  ------------------
  |  |  196|    250|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PAGING_RESTRICTION_TYPE 0x28
  ------------------
  |  Branch (454:9): [True: 250, False: 25.1k]
  ------------------
  455|    250|            size = ogs_nas_5gs_decode_paging_restriction(&registration_request->paging_restriction, pkbuf);
  456|    250|            if (size < 0) {
  ------------------
  |  Branch (456:17): [True: 10, False: 240]
  ------------------
  457|     10|               ogs_error("ogs_nas_5gs_decode_paging_restriction() 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__) 
  |  |  ------------------
  ------------------
  458|     10|               return size;
  459|     10|            }
  460|       |
  461|    240|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_PAGING_RESTRICTION_PRESENT;
  ------------------
  |  |  153|    240|#define OGS_NAS_5GS_REGISTRATION_REQUEST_PAGING_RESTRICTION_PRESENT ((uint64_t)1<<33)
  ------------------
  462|    240|            decoded += size;
  463|    240|            break;
  464|    199|        case OGS_NAS_5GS_REGISTRATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  |  197|    199|#define OGS_NAS_5GS_REGISTRATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (464:9): [True: 199, False: 25.1k]
  ------------------
  465|    199|            size = ogs_nas_5gs_decode_service_level_aa_container(&registration_request->service_level_aa_container, pkbuf);
  466|    199|            if (size < 0) {
  ------------------
  |  Branch (466:17): [True: 1, False: 198]
  ------------------
  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|    198|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  |  154|    198|#define OGS_NAS_5GS_REGISTRATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<34)
  ------------------
  472|    198|            decoded += size;
  473|    198|            break;
  474|    202|        case OGS_NAS_5GS_REGISTRATION_REQUEST_NID_TYPE:
  ------------------
  |  |  198|    202|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NID_TYPE 0x32
  ------------------
  |  Branch (474:9): [True: 202, False: 25.1k]
  ------------------
  475|    202|            size = ogs_nas_5gs_decode_nid(&registration_request->nid, pkbuf);
  476|    202|            if (size < 0) {
  ------------------
  |  Branch (476:17): [True: 3, False: 199]
  ------------------
  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|    199|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_NID_PRESENT;
  ------------------
  |  |  155|    199|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NID_PRESENT ((uint64_t)1<<35)
  ------------------
  482|    199|            decoded += size;
  483|    199|            break;
  484|    227|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UE_DETERMINED_PLMN_WITH_DISASTER_CONDITION_TYPE:
  ------------------
  |  |  199|    227|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_DETERMINED_PLMN_WITH_DISASTER_CONDITION_TYPE 0x16
  ------------------
  |  Branch (484:9): [True: 227, False: 25.1k]
  ------------------
  485|    227|            size = ogs_nas_5gs_decode_plmn_identity(&registration_request->ue_determined_plmn_with_disaster_condition, pkbuf);
  486|    227|            if (size < 0) {
  ------------------
  |  Branch (486:17): [True: 6, False: 221]
  ------------------
  487|      6|               ogs_error("ogs_nas_5gs_decode_plmn_identity() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  488|      6|               return size;
  489|      6|            }
  490|       |
  491|    221|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UE_DETERMINED_PLMN_WITH_DISASTER_CONDITION_PRESENT;
  ------------------
  |  |  156|    221|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UE_DETERMINED_PLMN_WITH_DISASTER_CONDITION_PRESENT ((uint64_t)1<<36)
  ------------------
  492|    221|            decoded += size;
  493|    221|            break;
  494|    203|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_PEIPS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  200|    203|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_PEIPS_ASSISTANCE_INFORMATION_TYPE 0x2A
  ------------------
  |  Branch (494:9): [True: 203, False: 25.1k]
  ------------------
  495|    203|            size = ogs_nas_5gs_decode_peips_assistance_information(&registration_request->requested_peips_assistance_information, pkbuf);
  496|    203|            if (size < 0) {
  ------------------
  |  Branch (496:17): [True: 1, False: 202]
  ------------------
  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|    202|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_PEIPS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  157|    202|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_PEIPS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<37)
  ------------------
  502|    202|            decoded += size;
  503|    202|            break;
  504|    200|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_T3512_VALUE_TYPE:
  ------------------
  |  |  201|    200|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_T3512_VALUE_TYPE 0x3B
  ------------------
  |  Branch (504:9): [True: 200, False: 25.1k]
  ------------------
  505|    200|            size = ogs_nas_5gs_decode_gprs_timer_3(&registration_request->requested_t3512_value, pkbuf);
  506|    200|            if (size < 0) {
  ------------------
  |  Branch (506:17): [True: 1, False: 199]
  ------------------
  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|    199|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_T3512_VALUE_PRESENT;
  ------------------
  |  |  158|    199|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_T3512_VALUE_PRESENT ((uint64_t)1<<38)
  ------------------
  512|    199|            decoded += size;
  513|    199|            break;
  514|    217|        case OGS_NAS_5GS_REGISTRATION_REQUEST_UNAVAILABILITY_INFORMATION_TYPE:
  ------------------
  |  |  202|    217|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UNAVAILABILITY_INFORMATION_TYPE 0x3C
  ------------------
  |  Branch (514:9): [True: 217, False: 25.1k]
  ------------------
  515|    217|            size = ogs_nas_5gs_decode_unavailability_information(&registration_request->unavailability_information, pkbuf);
  516|    217|            if (size < 0) {
  ------------------
  |  Branch (516:17): [True: 5, False: 212]
  ------------------
  517|      5|               ogs_error("ogs_nas_5gs_decode_unavailability_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__) 
  |  |  ------------------
  ------------------
  518|      5|               return size;
  519|      5|            }
  520|       |
  521|    212|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_UNAVAILABILITY_INFORMATION_PRESENT;
  ------------------
  |  |  159|    212|#define OGS_NAS_5GS_REGISTRATION_REQUEST_UNAVAILABILITY_INFORMATION_PRESENT ((uint64_t)1<<39)
  ------------------
  522|    212|            decoded += size;
  523|    212|            break;
  524|    229|        case OGS_NAS_5GS_REGISTRATION_REQUEST_NON_3GPP_PATH_SWITCHING_INFORMATION_TYPE:
  ------------------
  |  |  203|    229|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NON_3GPP_PATH_SWITCHING_INFORMATION_TYPE 0x3F
  ------------------
  |  Branch (524:9): [True: 229, False: 25.1k]
  ------------------
  525|    229|            size = ogs_nas_5gs_decode_non_3gpp_path_switching_information(&registration_request->non_3gpp_path_switching_information, pkbuf);
  526|    229|            if (size < 0) {
  ------------------
  |  Branch (526:17): [True: 8, False: 221]
  ------------------
  527|      8|               ogs_error("ogs_nas_5gs_decode_non_3gpp_path_switching_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__) 
  |  |  ------------------
  ------------------
  528|      8|               return size;
  529|      8|            }
  530|       |
  531|    221|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_NON_3GPP_PATH_SWITCHING_INFORMATION_PRESENT;
  ------------------
  |  |  160|    221|#define OGS_NAS_5GS_REGISTRATION_REQUEST_NON_3GPP_PATH_SWITCHING_INFORMATION_PRESENT ((uint64_t)1<<40)
  ------------------
  532|    221|            decoded += size;
  533|    221|            break;
  534|    217|        case OGS_NAS_5GS_REGISTRATION_REQUEST_AUN3_INDICATION_TYPE:
  ------------------
  |  |  204|    217|#define OGS_NAS_5GS_REGISTRATION_REQUEST_AUN3_INDICATION_TYPE 0x56
  ------------------
  |  Branch (534:9): [True: 217, False: 25.1k]
  ------------------
  535|    217|            size = ogs_nas_5gs_decode_aun3_indication(&registration_request->aun3_indication, pkbuf);
  536|    217|            if (size < 0) {
  ------------------
  |  Branch (536:17): [True: 7, False: 210]
  ------------------
  537|      7|               ogs_error("ogs_nas_5gs_decode_aun3_indication() 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__) 
  |  |  ------------------
  ------------------
  538|      7|               return size;
  539|      7|            }
  540|       |
  541|    210|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_AUN3_INDICATION_PRESENT;
  ------------------
  |  |  161|    210|#define OGS_NAS_5GS_REGISTRATION_REQUEST_AUN3_INDICATION_PRESENT ((uint64_t)1<<41)
  ------------------
  542|    210|            decoded += size;
  543|    210|            break;
  544|    233|        case OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_LP_WUSPS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  205|    233|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_LP_WUSPS_ASSISTANCE_INFORMATION_TYPE 0x64
  ------------------
  |  Branch (544:9): [True: 233, False: 25.1k]
  ------------------
  545|    233|            size = ogs_nas_5gs_decode_lp_wusps_assistance_information(&registration_request->requested_lp_wusps_assistance_information, pkbuf);
  546|    233|            if (size < 0) {
  ------------------
  |  Branch (546:17): [True: 1, False: 232]
  ------------------
  547|      1|               ogs_error("ogs_nas_5gs_decode_lp_wusps_assistance_information() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  548|      1|               return size;
  549|      1|            }
  550|       |
  551|    232|            registration_request->presencemask |= OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_LP_WUSPS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  162|    232|#define OGS_NAS_5GS_REGISTRATION_REQUEST_REQUESTED_LP_WUSPS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<42)
  ------------------
  552|    232|            decoded += size;
  553|    232|            break;
  554|  12.9k|        default:
  ------------------
  |  Branch (554:9): [True: 12.9k, False: 12.4k]
  ------------------
  555|  12.9k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  12.9k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  12.9k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  12.9k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  12.9k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  12.9k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  12.9k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  556|  12.9k|            break;
  557|  25.3k|        }
  558|  25.3k|    }
  559|       |
  560|    473|    return decoded;
  561|    641|}
ogs_nas_5gs_decode_registration_accept:
  564|    976|{
  565|    976|    ogs_nas_5gs_registration_accept_t *registration_accept = &message->gmm.registration_accept;
  566|    976|    int decoded = 0;
  567|    976|    int size = 0;
  568|       |
  569|    976|    ogs_trace("[NAS] Decode REGISTRATION_ACCEPT\n");
  ------------------
  |  |   40|    976|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    976|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    976|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    976|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    976|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    976|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  570|       |
  571|    976|    size = ogs_nas_5gs_decode_5gs_registration_result(&registration_accept->registration_result, pkbuf);
  572|    976|    if (size < 0) {
  ------------------
  |  Branch (572:9): [True: 9, False: 967]
  ------------------
  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|    967|    decoded += size;
  578|       |
  579|  24.2k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (579:12): [True: 23.5k, False: 707]
  ------------------
  580|  23.5k|        uint8_t *buffer = pkbuf->data;
  581|  23.5k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (581:24): [True: 4.98k, False: 18.5k]
  ------------------
  582|       |
  583|  23.5k|        size = sizeof(uint8_t);
  584|  23.5k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (584:13): [True: 0, False: 23.5k]
  ------------------
  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|  23.5k|        decoded += size;
  589|       |
  590|  23.5k|        switch(type) {
  591|    203|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_5G_GUTI_TYPE:
  ------------------
  |  |  326|    203|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_5G_GUTI_TYPE 0x77
  ------------------
  |  Branch (591:9): [True: 203, False: 23.3k]
  ------------------
  592|    203|            size = ogs_nas_5gs_decode_5gs_mobile_identity(&registration_accept->guti, pkbuf);
  593|    203|            if (size < 0) {
  ------------------
  |  Branch (593:17): [True: 1, False: 202]
  ------------------
  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|    202|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_5G_GUTI_PRESENT;
  ------------------
  |  |  263|    202|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_5G_GUTI_PRESENT ((uint64_t)1<<0)
  ------------------
  599|    202|            decoded += size;
  600|    202|            break;
  601|    223|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_PLMNS_TYPE:
  ------------------
  |  |  327|    223|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_PLMNS_TYPE 0x4A
  ------------------
  |  Branch (601:9): [True: 223, False: 23.2k]
  ------------------
  602|    223|            size = ogs_nas_5gs_decode_plmn_list(&registration_accept->equivalent_plmns, pkbuf);
  603|    223|            if (size < 0) {
  ------------------
  |  Branch (603:17): [True: 10, False: 213]
  ------------------
  604|     10|               ogs_error("ogs_nas_5gs_decode_plmn_list() 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__) 
  |  |  ------------------
  ------------------
  605|     10|               return size;
  606|     10|            }
  607|       |
  608|    213|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_PLMNS_PRESENT;
  ------------------
  |  |  264|    213|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_PLMNS_PRESENT ((uint64_t)1<<1)
  ------------------
  609|    213|            decoded += size;
  610|    213|            break;
  611|    351|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_TAI_LIST_TYPE:
  ------------------
  |  |  328|    351|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_TAI_LIST_TYPE 0x54
  ------------------
  |  Branch (611:9): [True: 351, False: 23.1k]
  ------------------
  612|    351|            size = ogs_nas_5gs_decode_5gs_tracking_area_identity_list(&registration_accept->tai_list, pkbuf);
  613|    351|            if (size < 0) {
  ------------------
  |  Branch (613:17): [True: 1, False: 350]
  ------------------
  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|    350|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_TAI_LIST_PRESENT;
  ------------------
  |  |  265|    350|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_TAI_LIST_PRESENT ((uint64_t)1<<2)
  ------------------
  619|    350|            decoded += size;
  620|    350|            break;
  621|    248|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_ALLOWED_NSSAI_TYPE:
  ------------------
  |  |  329|    248|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_ALLOWED_NSSAI_TYPE 0x15
  ------------------
  |  Branch (621:9): [True: 248, False: 23.2k]
  ------------------
  622|    248|            size = ogs_nas_5gs_decode_nssai(&registration_accept->allowed_nssai, pkbuf);
  623|    248|            if (size < 0) {
  ------------------
  |  Branch (623:17): [True: 2, False: 246]
  ------------------
  624|      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__) 
  |  |  ------------------
  ------------------
  625|      2|               return size;
  626|      2|            }
  627|       |
  628|    246|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_ALLOWED_NSSAI_PRESENT;
  ------------------
  |  |  266|    246|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_ALLOWED_NSSAI_PRESENT ((uint64_t)1<<3)
  ------------------
  629|    246|            decoded += size;
  630|    246|            break;
  631|    229|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  330|    229|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_REJECTED_NSSAI_TYPE 0x11
  ------------------
  |  Branch (631:9): [True: 229, False: 23.2k]
  ------------------
  632|    229|            size = ogs_nas_5gs_decode_rejected_nssai(&registration_accept->rejected_nssai, pkbuf);
  633|    229|            if (size < 0) {
  ------------------
  |  Branch (633:17): [True: 1, False: 228]
  ------------------
  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|    228|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  267|    228|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_REJECTED_NSSAI_PRESENT ((uint64_t)1<<4)
  ------------------
  639|    228|            decoded += size;
  640|    228|            break;
  641|    210|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_CONFIGURED_NSSAI_TYPE:
  ------------------
  |  |  331|    210|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_CONFIGURED_NSSAI_TYPE 0x31
  ------------------
  |  Branch (641:9): [True: 210, False: 23.3k]
  ------------------
  642|    210|            size = ogs_nas_5gs_decode_nssai(&registration_accept->configured_nssai, pkbuf);
  643|    210|            if (size < 0) {
  ------------------
  |  Branch (643:17): [True: 2, False: 208]
  ------------------
  644|      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__) 
  |  |  ------------------
  ------------------
  645|      2|               return size;
  646|      2|            }
  647|       |
  648|    208|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_CONFIGURED_NSSAI_PRESENT;
  ------------------
  |  |  268|    208|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_CONFIGURED_NSSAI_PRESENT ((uint64_t)1<<5)
  ------------------
  649|    208|            decoded += size;
  650|    208|            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: 23.3k]
  ------------------
  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: 6, False: 210]
  ------------------
  654|      6|               ogs_error("ogs_nas_5gs_decode_5gs_network_feature_support() 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__) 
  |  |  ------------------
  ------------------
  655|      6|               return size;
  656|      6|            }
  657|       |
  658|    210|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_5GS_NETWORK_FEATURE_SUPPORT_PRESENT;
  ------------------
  |  |  269|    210|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_5GS_NETWORK_FEATURE_SUPPORT_PRESENT ((uint64_t)1<<6)
  ------------------
  659|    210|            decoded += size;
  660|    210|            break;
  661|    199|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  |  333|    199|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_STATUS_TYPE 0x50
  ------------------
  |  Branch (661:9): [True: 199, False: 23.3k]
  ------------------
  662|    199|            size = ogs_nas_5gs_decode_pdu_session_status(&registration_accept->pdu_session_status, pkbuf);
  663|    199|            if (size < 0) {
  ------------------
  |  Branch (663:17): [True: 1, False: 198]
  ------------------
  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|    198|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  |  270|    198|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<7)
  ------------------
  669|    198|            decoded += size;
  670|    198|            break;
  671|    202|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_TYPE:
  ------------------
  |  |  334|    202|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_TYPE 0x26
  ------------------
  |  Branch (671:9): [True: 202, False: 23.3k]
  ------------------
  672|    202|            size = ogs_nas_5gs_decode_pdu_session_reactivation_result(&registration_accept->pdu_session_reactivation_result, pkbuf);
  673|    202|            if (size < 0) {
  ------------------
  |  Branch (673:17): [True: 2, False: 200]
  ------------------
  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|    200|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_PRESENT;
  ------------------
  |  |  271|    200|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_PRESENT ((uint64_t)1<<8)
  ------------------
  679|    200|            decoded += size;
  680|    200|            break;
  681|    222|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_TYPE:
  ------------------
  |  |  335|    222|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_TYPE 0x72
  ------------------
  |  Branch (681:9): [True: 222, False: 23.2k]
  ------------------
  682|    222|            size = ogs_nas_5gs_decode_pdu_session_reactivation_result_error_cause(&registration_accept->pdu_session_reactivation_result_error_cause, pkbuf);
  683|    222|            if (size < 0) {
  ------------------
  |  Branch (683:17): [True: 4, False: 218]
  ------------------
  684|      4|               ogs_error("ogs_nas_5gs_decode_pdu_session_reactivation_result_error_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__) 
  |  |  ------------------
  ------------------
  685|      4|               return size;
  686|      4|            }
  687|       |
  688|    218|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_PRESENT;
  ------------------
  |  |  272|    218|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_PRESENT ((uint64_t)1<<9)
  ------------------
  689|    218|            decoded += size;
  690|    218|            break;
  691|    243|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_LADN_INFORMATION_TYPE:
  ------------------
  |  |  336|    243|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_LADN_INFORMATION_TYPE 0x79
  ------------------
  |  Branch (691:9): [True: 243, False: 23.2k]
  ------------------
  692|    243|            size = ogs_nas_5gs_decode_ladn_information(&registration_accept->ladn_information, pkbuf);
  693|    243|            if (size < 0) {
  ------------------
  |  Branch (693:17): [True: 5, False: 238]
  ------------------
  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|    238|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_LADN_INFORMATION_PRESENT;
  ------------------
  |  |  273|    238|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_LADN_INFORMATION_PRESENT ((uint64_t)1<<10)
  ------------------
  699|    238|            decoded += size;
  700|    238|            break;
  701|    455|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_MICO_INDICATION_TYPE:
  ------------------
  |  |  337|    455|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_MICO_INDICATION_TYPE 0xB0
  ------------------
  |  Branch (701:9): [True: 455, False: 23.0k]
  ------------------
  702|    455|            decoded--;
  703|    455|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    455|    do { \
  |  |  114|    455|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    455|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 455, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    455|        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|    455|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 455]
  |  |  ------------------
  ------------------
  704|    455|            size = ogs_nas_5gs_decode_mico_indication(&registration_accept->mico_indication, pkbuf);
  705|    455|            if (size < 0) {
  ------------------
  |  Branch (705:17): [True: 0, False: 455]
  ------------------
  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|    455|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_MICO_INDICATION_PRESENT;
  ------------------
  |  |  274|    455|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_MICO_INDICATION_PRESENT ((uint64_t)1<<11)
  ------------------
  711|    455|            decoded += size;
  712|    455|            break;
  713|    581|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NETWORK_SLICING_INDICATION_TYPE:
  ------------------
  |  |  338|    581|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NETWORK_SLICING_INDICATION_TYPE 0x90
  ------------------
  |  Branch (713:9): [True: 581, False: 22.9k]
  ------------------
  714|    581|            decoded--;
  715|    581|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    581|    do { \
  |  |  114|    581|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    581|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 581, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    581|        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|    581|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 581]
  |  |  ------------------
  ------------------
  716|    581|            size = ogs_nas_5gs_decode_network_slicing_indication(&registration_accept->network_slicing_indication, pkbuf);
  717|    581|            if (size < 0) {
  ------------------
  |  Branch (717:17): [True: 0, False: 581]
  ------------------
  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|    581|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NETWORK_SLICING_INDICATION_PRESENT;
  ------------------
  |  |  275|    581|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NETWORK_SLICING_INDICATION_PRESENT ((uint64_t)1<<12)
  ------------------
  723|    581|            decoded += size;
  724|    581|            break;
  725|    214|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_AREA_LIST_TYPE:
  ------------------
  |  |  339|    214|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_AREA_LIST_TYPE 0x27
  ------------------
  |  Branch (725:9): [True: 214, False: 23.3k]
  ------------------
  726|    214|            size = ogs_nas_5gs_decode_service_area_list(&registration_accept->service_area_list, pkbuf);
  727|    214|            if (size < 0) {
  ------------------
  |  Branch (727:17): [True: 2, False: 212]
  ------------------
  728|      2|               ogs_error("ogs_nas_5gs_decode_service_area_list() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  729|      2|               return size;
  730|      2|            }
  731|       |
  732|    212|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_AREA_LIST_PRESENT;
  ------------------
  |  |  276|    212|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_AREA_LIST_PRESENT ((uint64_t)1<<13)
  ------------------
  733|    212|            decoded += size;
  734|    212|            break;
  735|    198|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_T3512_VALUE_TYPE:
  ------------------
  |  |  340|    198|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3512_VALUE_TYPE 0x5E
  ------------------
  |  Branch (735:9): [True: 198, False: 23.3k]
  ------------------
  736|    198|            size = ogs_nas_5gs_decode_gprs_timer_3(&registration_accept->t3512_value, pkbuf);
  737|    198|            if (size < 0) {
  ------------------
  |  Branch (737:17): [True: 2, False: 196]
  ------------------
  738|      2|               ogs_error("ogs_nas_5gs_decode_gprs_timer_3() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  739|      2|               return size;
  740|      2|            }
  741|       |
  742|    196|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_T3512_VALUE_PRESENT;
  ------------------
  |  |  277|    196|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3512_VALUE_PRESENT ((uint64_t)1<<14)
  ------------------
  743|    196|            decoded += size;
  744|    196|            break;
  745|    199|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_DE_REGISTRATION_TIMER_VALUE_TYPE:
  ------------------
  |  |  341|    199|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_DE_REGISTRATION_TIMER_VALUE_TYPE 0x5D
  ------------------
  |  Branch (745:9): [True: 199, False: 23.3k]
  ------------------
  746|    199|            size = ogs_nas_5gs_decode_gprs_timer_2(&registration_accept->non_3gpp_de_registration_timer_value, pkbuf);
  747|    199|            if (size < 0) {
  ------------------
  |  Branch (747:17): [True: 2, False: 197]
  ------------------
  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|    197|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_DE_REGISTRATION_TIMER_VALUE_PRESENT;
  ------------------
  |  |  278|    197|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_DE_REGISTRATION_TIMER_VALUE_PRESENT ((uint64_t)1<<15)
  ------------------
  753|    197|            decoded += size;
  754|    197|            break;
  755|    199|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_T3502_VALUE_TYPE:
  ------------------
  |  |  342|    199|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3502_VALUE_TYPE 0x16
  ------------------
  |  Branch (755:9): [True: 199, False: 23.3k]
  ------------------
  756|    199|            size = ogs_nas_5gs_decode_gprs_timer_2(&registration_accept->t3502_value, pkbuf);
  757|    199|            if (size < 0) {
  ------------------
  |  Branch (757:17): [True: 2, False: 197]
  ------------------
  758|      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__) 
  |  |  ------------------
  ------------------
  759|      2|               return size;
  760|      2|            }
  761|       |
  762|    197|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_T3502_VALUE_PRESENT;
  ------------------
  |  |  279|    197|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3502_VALUE_PRESENT ((uint64_t)1<<16)
  ------------------
  763|    197|            decoded += size;
  764|    197|            break;
  765|    232|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EMERGENCY_NUMBER_LIST_TYPE:
  ------------------
  |  |  343|    232|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EMERGENCY_NUMBER_LIST_TYPE 0x34
  ------------------
  |  Branch (765:9): [True: 232, False: 23.2k]
  ------------------
  766|    232|            size = ogs_nas_5gs_decode_emergency_number_list(&registration_accept->emergency_number_list, pkbuf);
  767|    232|            if (size < 0) {
  ------------------
  |  Branch (767:17): [True: 6, False: 226]
  ------------------
  768|      6|               ogs_error("ogs_nas_5gs_decode_emergency_number_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__) 
  |  |  ------------------
  ------------------
  769|      6|               return size;
  770|      6|            }
  771|       |
  772|    226|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EMERGENCY_NUMBER_LIST_PRESENT;
  ------------------
  |  |  280|    226|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EMERGENCY_NUMBER_LIST_PRESENT ((uint64_t)1<<17)
  ------------------
  773|    226|            decoded += size;
  774|    226|            break;
  775|    264|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_EMERGENCY_NUMBER_LIST_TYPE:
  ------------------
  |  |  344|    264|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_EMERGENCY_NUMBER_LIST_TYPE 0x7A
  ------------------
  |  Branch (775:9): [True: 264, False: 23.2k]
  ------------------
  776|    264|            size = ogs_nas_5gs_decode_extended_emergency_number_list(&registration_accept->extended_emergency_number_list, pkbuf);
  777|    264|            if (size < 0) {
  ------------------
  |  Branch (777:17): [True: 23, False: 241]
  ------------------
  778|     23|               ogs_error("ogs_nas_5gs_decode_extended_emergency_number_list() 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__) 
  |  |  ------------------
  ------------------
  779|     23|               return size;
  780|     23|            }
  781|       |
  782|    241|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_EMERGENCY_NUMBER_LIST_PRESENT;
  ------------------
  |  |  281|    241|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_EMERGENCY_NUMBER_LIST_PRESENT ((uint64_t)1<<18)
  ------------------
  783|    241|            decoded += size;
  784|    241|            break;
  785|    269|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_SOR_TRANSPARENT_CONTAINER_TYPE:
  ------------------
  |  |  345|    269|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_SOR_TRANSPARENT_CONTAINER_TYPE 0x73
  ------------------
  |  Branch (785:9): [True: 269, False: 23.2k]
  ------------------
  786|    269|            size = ogs_nas_5gs_decode_sor_transparent_container(&registration_accept->sor_transparent_container, pkbuf);
  787|    269|            if (size < 0) {
  ------------------
  |  Branch (787:17): [True: 8, False: 261]
  ------------------
  788|      8|               ogs_error("ogs_nas_5gs_decode_sor_transparent_container() failed");
  ------------------
  |  |   36|      8|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      8|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      8|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      8|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      8|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      8|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  789|      8|               return size;
  790|      8|            }
  791|       |
  792|    261|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_SOR_TRANSPARENT_CONTAINER_PRESENT;
  ------------------
  |  |  282|    261|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_SOR_TRANSPARENT_CONTAINER_PRESENT ((uint64_t)1<<19)
  ------------------
  793|    261|            decoded += size;
  794|    261|            break;
  795|    206|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EAP_MESSAGE_TYPE:
  ------------------
  |  |  346|    206|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (795:9): [True: 206, False: 23.3k]
  ------------------
  796|    206|            size = ogs_nas_5gs_decode_eap_message(&registration_accept->eap_message, pkbuf);
  797|    206|            if (size < 0) {
  ------------------
  |  Branch (797:17): [True: 1, False: 205]
  ------------------
  798|      1|               ogs_error("ogs_nas_5gs_decode_eap_message() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  799|      1|               return size;
  800|      1|            }
  801|       |
  802|    205|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  283|    205|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EAP_MESSAGE_PRESENT ((uint64_t)1<<20)
  ------------------
  803|    205|            decoded += size;
  804|    205|            break;
  805|    496|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSAI_INCLUSION_MODE_TYPE:
  ------------------
  |  |  347|    496|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSAI_INCLUSION_MODE_TYPE 0xA0
  ------------------
  |  Branch (805:9): [True: 496, False: 23.0k]
  ------------------
  806|    496|            decoded--;
  807|    496|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    496|    do { \
  |  |  114|    496|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    496|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 496, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    496|        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|    496|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 496]
  |  |  ------------------
  ------------------
  808|    496|            size = ogs_nas_5gs_decode_nssai_inclusion_mode(&registration_accept->nssai_inclusion_mode, pkbuf);
  809|    496|            if (size < 0) {
  ------------------
  |  Branch (809:17): [True: 0, False: 496]
  ------------------
  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|    496|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSAI_INCLUSION_MODE_PRESENT;
  ------------------
  |  |  284|    496|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSAI_INCLUSION_MODE_PRESENT ((uint64_t)1<<21)
  ------------------
  815|    496|            decoded += size;
  816|    496|            break;
  817|    213|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_TYPE:
  ------------------
  |  |  348|    213|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_TYPE 0x76
  ------------------
  |  Branch (817:9): [True: 213, False: 23.3k]
  ------------------
  818|    213|            size = ogs_nas_5gs_decode_operator_defined_access_category_definitions(&registration_accept->operator_defined_access_category_definitions, pkbuf);
  819|    213|            if (size < 0) {
  ------------------
  |  Branch (819:17): [True: 5, False: 208]
  ------------------
  820|      5|               ogs_error("ogs_nas_5gs_decode_operator_defined_access_category_definitions() 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__) 
  |  |  ------------------
  ------------------
  821|      5|               return size;
  822|      5|            }
  823|       |
  824|    208|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_PRESENT;
  ------------------
  |  |  285|    208|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_PRESENT ((uint64_t)1<<22)
  ------------------
  825|    208|            decoded += size;
  826|    208|            break;
  827|    217|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_DRX_PARAMETERS_TYPE:
  ------------------
  |  |  349|    217|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_DRX_PARAMETERS_TYPE 0x51
  ------------------
  |  Branch (827:9): [True: 217, False: 23.2k]
  ------------------
  828|    217|            size = ogs_nas_5gs_decode_5gs_drx_parameters(&registration_accept->negotiated_drx_parameters, pkbuf);
  829|    217|            if (size < 0) {
  ------------------
  |  Branch (829:17): [True: 8, False: 209]
  ------------------
  830|      8|               ogs_error("ogs_nas_5gs_decode_5gs_drx_parameters() 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__) 
  |  |  ------------------
  ------------------
  831|      8|               return size;
  832|      8|            }
  833|       |
  834|    209|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_DRX_PARAMETERS_PRESENT;
  ------------------
  |  |  286|    209|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_DRX_PARAMETERS_PRESENT ((uint64_t)1<<23)
  ------------------
  835|    209|            decoded += size;
  836|    209|            break;
  837|    382|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_NW_POLICIES_TYPE:
  ------------------
  |  |  350|    382|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_NW_POLICIES_TYPE 0xD0
  ------------------
  |  Branch (837:9): [True: 382, False: 23.1k]
  ------------------
  838|    382|            decoded--;
  839|    382|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    382|    do { \
  |  |  114|    382|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    382|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 382, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    382|        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|    382|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 382]
  |  |  ------------------
  ------------------
  840|    382|            size = ogs_nas_5gs_decode_non_3gpp_nw_provided_policies(&registration_accept->non_3gpp_nw_policies, pkbuf);
  841|    382|            if (size < 0) {
  ------------------
  |  Branch (841:17): [True: 4, False: 378]
  ------------------
  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|    378|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_NW_POLICIES_PRESENT;
  ------------------
  |  |  287|    378|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NON_3GPP_NW_POLICIES_PRESENT ((uint64_t)1<<24)
  ------------------
  847|    378|            decoded += size;
  848|    378|            break;
  849|    243|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EPS_BEARER_CONTEXT_STATUS_TYPE:
  ------------------
  |  |  351|    243|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EPS_BEARER_CONTEXT_STATUS_TYPE 0x60
  ------------------
  |  Branch (849:9): [True: 243, False: 23.2k]
  ------------------
  850|    243|            size = ogs_nas_5gs_decode_eps_bearer_context_status(&registration_accept->eps_bearer_context_status, pkbuf);
  851|    243|            if (size < 0) {
  ------------------
  |  Branch (851:17): [True: 8, False: 235]
  ------------------
  852|      8|               ogs_error("ogs_nas_5gs_decode_eps_bearer_context_status() 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__) 
  |  |  ------------------
  ------------------
  853|      8|               return size;
  854|      8|            }
  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: 23.3k]
  ------------------
  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: 6, False: 205]
  ------------------
  862|      6|               ogs_error("ogs_nas_5gs_decode_extended_drx_parameters() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  863|      6|               return size;
  864|      6|            }
  865|       |
  866|    205|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_EXTENDED_DRX_PARAMETERS_PRESENT;
  ------------------
  |  |  289|    205|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_EXTENDED_DRX_PARAMETERS_PRESENT ((uint64_t)1<<26)
  ------------------
  867|    205|            decoded += size;
  868|    205|            break;
  869|    195|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_T3447_VALUE_TYPE:
  ------------------
  |  |  353|    195|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3447_VALUE_TYPE 0x6C
  ------------------
  |  Branch (869:9): [True: 195, False: 23.3k]
  ------------------
  870|    195|            size = ogs_nas_5gs_decode_gprs_timer_3(&registration_accept->t3447_value, pkbuf);
  871|    195|            if (size < 0) {
  ------------------
  |  Branch (871:17): [True: 1, False: 194]
  ------------------
  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|    194|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_T3447_VALUE_PRESENT;
  ------------------
  |  |  290|    194|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3447_VALUE_PRESENT ((uint64_t)1<<27)
  ------------------
  877|    194|            decoded += size;
  878|    194|            break;
  879|    208|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_T3448_VALUE_TYPE:
  ------------------
  |  |  354|    208|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3448_VALUE_TYPE 0x6B
  ------------------
  |  Branch (879:9): [True: 208, False: 23.3k]
  ------------------
  880|    208|            size = ogs_nas_5gs_decode_gprs_timer_2(&registration_accept->t3448_value, pkbuf);
  881|    208|            if (size < 0) {
  ------------------
  |  Branch (881:17): [True: 1, False: 207]
  ------------------
  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|    207|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_T3448_VALUE_PRESENT;
  ------------------
  |  |  291|    207|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3448_VALUE_PRESENT ((uint64_t)1<<28)
  ------------------
  887|    207|            decoded += size;
  888|    207|            break;
  889|    200|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_T3324_VALUE_TYPE:
  ------------------
  |  |  355|    200|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3324_VALUE_TYPE 0x6A
  ------------------
  |  Branch (889:9): [True: 200, False: 23.3k]
  ------------------
  890|    200|            size = ogs_nas_5gs_decode_gprs_timer_3(&registration_accept->t3324_value, pkbuf);
  891|    200|            if (size < 0) {
  ------------------
  |  Branch (891:17): [True: 2, False: 198]
  ------------------
  892|      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__) 
  |  |  ------------------
  ------------------
  893|      2|               return size;
  894|      2|            }
  895|       |
  896|    198|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_T3324_VALUE_PRESENT;
  ------------------
  |  |  292|    198|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_T3324_VALUE_PRESENT ((uint64_t)1<<29)
  ------------------
  897|    198|            decoded += size;
  898|    198|            break;
  899|    203|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_TYPE:
  ------------------
  |  |  356|    203|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_TYPE 0x67
  ------------------
  |  Branch (899:9): [True: 203, False: 23.3k]
  ------------------
  900|    203|            size = ogs_nas_5gs_decode_ue_radio_capability_id(&registration_accept->ue_radio_capability_id, pkbuf);
  901|    203|            if (size < 0) {
  ------------------
  |  Branch (901:17): [True: 3, False: 200]
  ------------------
  902|      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__) 
  |  |  ------------------
  ------------------
  903|      3|               return size;
  904|      3|            }
  905|       |
  906|    200|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_PRESENT;
  ------------------
  |  |  293|    200|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_PRESENT ((uint64_t)1<<30)
  ------------------
  907|    200|            decoded += size;
  908|    200|            break;
  909|    346|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_TYPE:
  ------------------
  |  |  357|    346|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_TYPE 0xE0
  ------------------
  |  Branch (909:9): [True: 346, False: 23.1k]
  ------------------
  910|    346|            decoded--;
  911|    346|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    346|    do { \
  |  |  114|    346|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    346|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 346, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    346|        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|    346|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 346]
  |  |  ------------------
  ------------------
  912|    346|            size = ogs_nas_5gs_decode_ue_radio_capability_id_deletion_indication(&registration_accept->ue_radio_capability_id_deletion_indication, pkbuf);
  913|    346|            if (size < 0) {
  ------------------
  |  Branch (913:17): [True: 0, False: 346]
  ------------------
  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|    346|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_PRESENT;
  ------------------
  |  |  294|    346|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_PRESENT ((uint64_t)1<<31)
  ------------------
  919|    346|            decoded += size;
  920|    346|            break;
  921|    200|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_PENDING_NSSAI_TYPE:
  ------------------
  |  |  358|    200|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PENDING_NSSAI_TYPE 0x39
  ------------------
  |  Branch (921:9): [True: 200, False: 23.3k]
  ------------------
  922|    200|            size = ogs_nas_5gs_decode_nssai(&registration_accept->pending_nssai, pkbuf);
  923|    200|            if (size < 0) {
  ------------------
  |  Branch (923:17): [True: 1, False: 199]
  ------------------
  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|    199|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_PENDING_NSSAI_PRESENT;
  ------------------
  |  |  295|    199|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_PENDING_NSSAI_PRESENT ((uint64_t)1<<32)
  ------------------
  929|    199|            decoded += size;
  930|    199|            break;
  931|    284|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_CIPHERING_KEY_DATA_TYPE:
  ------------------
  |  |  359|    284|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_CIPHERING_KEY_DATA_TYPE 0x74
  ------------------
  |  Branch (931:9): [True: 284, False: 23.2k]
  ------------------
  932|    284|            size = ogs_nas_5gs_decode_ciphering_key_data(&registration_accept->ciphering_key_data, pkbuf);
  933|    284|            if (size < 0) {
  ------------------
  |  Branch (933:17): [True: 29, False: 255]
  ------------------
  934|     29|               ogs_error("ogs_nas_5gs_decode_ciphering_key_data() 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__) 
  |  |  ------------------
  ------------------
  935|     29|               return size;
  936|     29|            }
  937|       |
  938|    255|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_CIPHERING_KEY_DATA_PRESENT;
  ------------------
  |  |  296|    255|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_CIPHERING_KEY_DATA_PRESENT ((uint64_t)1<<33)
  ------------------
  939|    255|            decoded += size;
  940|    255|            break;
  941|    204|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  360|    204|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_CAG_INFORMATION_LIST_TYPE 0x75
  ------------------
  |  Branch (941:9): [True: 204, False: 23.3k]
  ------------------
  942|    204|            size = ogs_nas_5gs_decode_cag_information_list(&registration_accept->cag_information_list, pkbuf);
  943|    204|            if (size < 0) {
  ------------------
  |  Branch (943:17): [True: 7, False: 197]
  ------------------
  944|      7|               ogs_error("ogs_nas_5gs_decode_cag_information_list() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  945|      7|               return size;
  946|      7|            }
  947|       |
  948|    197|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  297|    197|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<34)
  ------------------
  949|    197|            decoded += size;
  950|    197|            break;
  951|    207|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_TRUNCATED_5G_S_TMSI_CONFIGURATION_TYPE:
  ------------------
  |  |  361|    207|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_TRUNCATED_5G_S_TMSI_CONFIGURATION_TYPE 0x1B
  ------------------
  |  Branch (951:9): [True: 207, False: 23.3k]
  ------------------
  952|    207|            size = ogs_nas_5gs_decode_truncated_5g_s_tmsi_configuration(&registration_accept->truncated_s_tmsi_configuration, pkbuf);
  953|    207|            if (size < 0) {
  ------------------
  |  Branch (953:17): [True: 3, False: 204]
  ------------------
  954|      3|               ogs_error("ogs_nas_5gs_decode_truncated_5g_s_tmsi_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__) 
  |  |  ------------------
  ------------------
  955|      3|               return size;
  956|      3|            }
  957|       |
  958|    204|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_TRUNCATED_5G_S_TMSI_CONFIGURATION_PRESENT;
  ------------------
  |  |  298|    204|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_TRUNCATED_5G_S_TMSI_CONFIGURATION_PRESENT ((uint64_t)1<<35)
  ------------------
  959|    204|            decoded += size;
  960|    204|            break;
  961|    216|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_WUS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  362|    216|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_WUS_ASSISTANCE_INFORMATION_TYPE 0x1C
  ------------------
  |  Branch (961:9): [True: 216, False: 23.3k]
  ------------------
  962|    216|            size = ogs_nas_5gs_decode_wus_assistance_information(&registration_accept->negotiated_wus_assistance_information, pkbuf);
  963|    216|            if (size < 0) {
  ------------------
  |  Branch (963:17): [True: 5, False: 211]
  ------------------
  964|      5|               ogs_error("ogs_nas_5gs_decode_wus_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__) 
  |  |  ------------------
  ------------------
  965|      5|               return size;
  966|      5|            }
  967|       |
  968|    211|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_WUS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  299|    211|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_WUS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<36)
  ------------------
  969|    211|            decoded += size;
  970|    211|            break;
  971|    205|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_NB_N1_MODE_DRX_PARAMETERS_TYPE:
  ------------------
  |  |  363|    205|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_NB_N1_MODE_DRX_PARAMETERS_TYPE 0x29
  ------------------
  |  Branch (971:9): [True: 205, False: 23.3k]
  ------------------
  972|    205|            size = ogs_nas_5gs_decode_nb_n1_mode_drx_parameters(&registration_accept->negotiated_nb_n1_mode_drx_parameters, pkbuf);
  973|    205|            if (size < 0) {
  ------------------
  |  Branch (973:17): [True: 6, False: 199]
  ------------------
  974|      6|               ogs_error("ogs_nas_5gs_decode_nb_n1_mode_drx_parameters() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  975|      6|               return size;
  976|      6|            }
  977|       |
  978|    199|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_NB_N1_MODE_DRX_PARAMETERS_PRESENT;
  ------------------
  |  |  300|    199|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_NB_N1_MODE_DRX_PARAMETERS_PRESENT ((uint64_t)1<<37)
  ------------------
  979|    199|            decoded += size;
  980|    199|            break;
  981|    202|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  364|    202|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_REJECTED_NSSAI_TYPE 0x68
  ------------------
  |  Branch (981:9): [True: 202, False: 23.3k]
  ------------------
  982|    202|            size = ogs_nas_5gs_decode_extended_rejected_nssai(&registration_accept->extended_rejected_nssai, pkbuf);
  983|    202|            if (size < 0) {
  ------------------
  |  Branch (983:17): [True: 2, False: 200]
  ------------------
  984|      2|               ogs_error("ogs_nas_5gs_decode_extended_rejected_nssai() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  985|      2|               return size;
  986|      2|            }
  987|       |
  988|    200|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  301|    200|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_REJECTED_NSSAI_PRESENT ((uint64_t)1<<38)
  ------------------
  989|    200|            decoded += size;
  990|    200|            break;
  991|    252|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  |  365|    252|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x7B
  ------------------
  |  Branch (991:9): [True: 252, False: 23.2k]
  ------------------
  992|    252|            size = ogs_nas_5gs_decode_service_level_aa_container(&registration_accept->service_level_aa_container, pkbuf);
  993|    252|            if (size < 0) {
  ------------------
  |  Branch (993:17): [True: 4, False: 248]
  ------------------
  994|      4|               ogs_error("ogs_nas_5gs_decode_service_level_aa_container() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  995|      4|               return size;
  996|      4|            }
  997|       |
  998|    248|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  |  302|    248|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<39)
  ------------------
  999|    248|            decoded += size;
 1000|    248|            break;
 1001|    235|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_PEIPS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  366|    235|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_PEIPS_ASSISTANCE_INFORMATION_TYPE 0x33
  ------------------
  |  Branch (1001:9): [True: 235, False: 23.2k]
  ------------------
 1002|    235|            size = ogs_nas_5gs_decode_peips_assistance_information(&registration_accept->negotiated_peips_assistance_information, pkbuf);
 1003|    235|            if (size < 0) {
  ------------------
  |  Branch (1003:17): [True: 1, False: 234]
  ------------------
 1004|      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__) 
  |  |  ------------------
  ------------------
 1005|      1|               return size;
 1006|      1|            }
 1007|       |
 1008|    234|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_PEIPS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  303|    234|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_PEIPS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<40)
  ------------------
 1009|    234|            decoded += size;
 1010|    234|            break;
 1011|    198|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_TYPE:
  ------------------
  |  |  367|    198|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_TYPE 0x35
  ------------------
  |  Branch (1011:9): [True: 198, False: 23.3k]
  ------------------
 1012|    198|            size = ogs_nas_5gs_decode_5gs_additional_request_result(&registration_accept->additional_request_result, pkbuf);
 1013|    198|            if (size < 0) {
  ------------------
  |  Branch (1013:17): [True: 2, False: 196]
  ------------------
 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|    196|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_PRESENT;
  ------------------
  |  |  304|    196|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_PRESENT ((uint64_t)1<<41)
  ------------------
 1019|    196|            decoded += size;
 1020|    196|            break;
 1021|    395|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSRG_INFORMATION_TYPE:
  ------------------
  |  |  368|    395|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSRG_INFORMATION_TYPE 0x70
  ------------------
  |  Branch (1021:9): [True: 395, False: 23.1k]
  ------------------
 1022|    395|            size = ogs_nas_5gs_decode_nssrg_information(&registration_accept->nssrg_information, pkbuf);
 1023|    395|            if (size < 0) {
  ------------------
  |  Branch (1023:17): [True: 3, False: 392]
  ------------------
 1024|      3|               ogs_error("ogs_nas_5gs_decode_nssrg_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__) 
  |  |  ------------------
  ------------------
 1025|      3|               return size;
 1026|      3|            }
 1027|       |
 1028|    392|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSRG_INFORMATION_PRESENT;
  ------------------
  |  |  305|    392|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NSSRG_INFORMATION_PRESENT ((uint64_t)1<<42)
  ------------------
 1029|    392|            decoded += size;
 1030|    392|            break;
 1031|    265|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_ROAMING_WAIT_RANGE_TYPE:
  ------------------
  |  |  369|    265|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_ROAMING_WAIT_RANGE_TYPE 0x14
  ------------------
  |  Branch (1031:9): [True: 265, False: 23.2k]
  ------------------
 1032|    265|            size = ogs_nas_5gs_decode_registration_wait_range(&registration_accept->disaster_roaming_wait_range, pkbuf);
 1033|    265|            if (size < 0) {
  ------------------
  |  Branch (1033:17): [True: 2, False: 263]
  ------------------
 1034|      2|               ogs_error("ogs_nas_5gs_decode_registration_wait_range() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1035|      2|               return size;
 1036|      2|            }
 1037|       |
 1038|    263|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_ROAMING_WAIT_RANGE_PRESENT;
  ------------------
  |  |  306|    263|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_ROAMING_WAIT_RANGE_PRESENT ((uint64_t)1<<43)
  ------------------
 1039|    263|            decoded += size;
 1040|    263|            break;
 1041|    202|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_RETURN_WAIT_RANGE_TYPE:
  ------------------
  |  |  370|    202|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_RETURN_WAIT_RANGE_TYPE 0x2C
  ------------------
  |  Branch (1041:9): [True: 202, False: 23.3k]
  ------------------
 1042|    202|            size = ogs_nas_5gs_decode_registration_wait_range(&registration_accept->disaster_return_wait_range, pkbuf);
 1043|    202|            if (size < 0) {
  ------------------
  |  Branch (1043:17): [True: 2, False: 200]
  ------------------
 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|    200|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_RETURN_WAIT_RANGE_PRESENT;
  ------------------
  |  |  307|    200|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_DISASTER_RETURN_WAIT_RANGE_PRESENT ((uint64_t)1<<44)
  ------------------
 1049|    200|            decoded += size;
 1050|    200|            break;
 1051|    205|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION_TYPE:
  ------------------
  |  |  371|    205|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION_TYPE 0x13
  ------------------
  |  Branch (1051:9): [True: 205, False: 23.3k]
  ------------------
 1052|    205|            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|    205|            if (size < 0) {
  ------------------
  |  Branch (1053:17): [True: 1, False: 204]
  ------------------
 1054|      1|               ogs_error("ogs_nas_5gs_decode_list_of_plmns_to_be_used_in_disaster_condition() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1055|      1|               return size;
 1056|      1|            }
 1057|       |
 1058|    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|    204|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE:
  ------------------
  |  |  372|    204|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE 0x1D
  ------------------
  |  Branch (1061:9): [True: 204, False: 23.3k]
  ------------------
 1062|    204|            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|    204|            if (size < 0) {
  ------------------
  |  Branch (1063:17): [True: 1, False: 203]
  ------------------
 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|    203|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT;
  ------------------
  |  |  309|    203|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT ((uint64_t)1<<46)
  ------------------
 1069|    203|            decoded += size;
 1070|    203|            break;
 1071|    261|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_TYPE:
  ------------------
  |  |  373|    261|#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: 261, False: 23.2k]
  ------------------
 1072|    261|            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|    261|            if (size < 0) {
  ------------------
  |  Branch (1073:17): [True: 2, False: 259]
  ------------------
 1074|      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__) 
  |  |  ------------------
  ------------------
 1075|      2|               return size;
 1076|      2|            }
 1077|       |
 1078|    259|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_PRESENT;
  ------------------
  |  |  310|    259|#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|    259|            decoded += size;
 1080|    259|            break;
 1081|    196|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  374|    196|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_CAG_INFORMATION_LIST_TYPE 0x71
  ------------------
  |  Branch (1081:9): [True: 196, False: 23.3k]
  ------------------
 1082|    196|            size = ogs_nas_5gs_decode_extended_cag_information_list(&registration_accept->extended_cag_information_list, pkbuf);
 1083|    196|            if (size < 0) {
  ------------------
  |  Branch (1083:17): [True: 1, False: 195]
  ------------------
 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|    195|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  311|    195|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EXTENDED_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<48)
  ------------------
 1089|    195|            decoded += size;
 1090|    195|            break;
 1091|    209|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NSAG_INFORMATION_TYPE:
  ------------------
  |  |  375|    209|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NSAG_INFORMATION_TYPE 0x7C
  ------------------
  |  Branch (1091:9): [True: 209, False: 23.3k]
  ------------------
 1092|    209|            size = ogs_nas_5gs_decode_nsag_information(&registration_accept->nsag_information, pkbuf);
 1093|    209|            if (size < 0) {
  ------------------
  |  Branch (1093:17): [True: 7, False: 202]
  ------------------
 1094|      7|               ogs_error("ogs_nas_5gs_decode_nsag_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__) 
  |  |  ------------------
  ------------------
 1095|      7|               return size;
 1096|      7|            }
 1097|       |
 1098|    202|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NSAG_INFORMATION_PRESENT;
  ------------------
  |  |  312|    202|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NSAG_INFORMATION_PRESENT ((uint64_t)1<<49)
  ------------------
 1099|    202|            decoded += size;
 1100|    202|            break;
 1101|    214|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_SNPNS_TYPE:
  ------------------
  |  |  376|    214|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_SNPNS_TYPE 0x3D
  ------------------
  |  Branch (1101:9): [True: 214, False: 23.3k]
  ------------------
 1102|    214|            size = ogs_nas_5gs_decode_snpn_list(&registration_accept->equivalent_snpns, pkbuf);
 1103|    214|            if (size < 0) {
  ------------------
  |  Branch (1103:17): [True: 7, False: 207]
  ------------------
 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|    207|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_SNPNS_PRESENT;
  ------------------
  |  |  313|    207|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_EQUIVALENT_SNPNS_PRESENT ((uint64_t)1<<50)
  ------------------
 1109|    207|            decoded += size;
 1110|    207|            break;
 1111|    342|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NID_TYPE:
  ------------------
  |  |  377|    342|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NID_TYPE 0x32
  ------------------
  |  Branch (1111:9): [True: 342, False: 23.1k]
  ------------------
 1112|    342|            size = ogs_nas_5gs_decode_nid(&registration_accept->nid, pkbuf);
 1113|    342|            if (size < 0) {
  ------------------
  |  Branch (1113:17): [True: 8, False: 334]
  ------------------
 1114|      8|               ogs_error("ogs_nas_5gs_decode_nid() 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__) 
  |  |  ------------------
  ------------------
 1115|      8|               return size;
 1116|      8|            }
 1117|       |
 1118|    334|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NID_PRESENT;
  ------------------
  |  |  314|    334|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NID_PRESENT ((uint64_t)1<<51)
  ------------------
 1119|    334|            decoded += size;
 1120|    334|            break;
 1121|    337|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_REGISTRATION_ACCEPT_TYPE_6_IE_CONTAINER_TYPE:
  ------------------
  |  |  378|    337|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_REGISTRATION_ACCEPT_TYPE_6_IE_CONTAINER_TYPE 0x7D
  ------------------
  |  Branch (1121:9): [True: 337, False: 23.1k]
  ------------------
 1122|    337|            size = ogs_nas_5gs_decode_type_6_ie_container(&registration_accept->registration_accept_type_6_ie_container, pkbuf);
 1123|    337|            if (size < 0) {
  ------------------
  |  Branch (1123:17): [True: 28, False: 309]
  ------------------
 1124|     28|               ogs_error("ogs_nas_5gs_decode_type_6_ie_container() 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__) 
  |  |  ------------------
  ------------------
 1125|     28|               return size;
 1126|     28|            }
 1127|       |
 1128|    309|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_REGISTRATION_ACCEPT_TYPE_6_IE_CONTAINER_PRESENT;
  ------------------
  |  |  315|    309|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_REGISTRATION_ACCEPT_TYPE_6_IE_CONTAINER_PRESENT ((uint64_t)1<<52)
  ------------------
 1129|    309|            decoded += size;
 1130|    309|            break;
 1131|    204|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_RAN_TIMING_SYNCHRONIZATION_TYPE:
  ------------------
  |  |  379|    204|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_RAN_TIMING_SYNCHRONIZATION_TYPE 0x4B
  ------------------
  |  Branch (1131:9): [True: 204, False: 23.3k]
  ------------------
 1132|    204|            size = ogs_nas_5gs_decode_ran_timing_synchronization(&registration_accept->ran_timing_synchronization, pkbuf);
 1133|    204|            if (size < 0) {
  ------------------
  |  Branch (1133:17): [True: 1, False: 203]
  ------------------
 1134|      1|               ogs_error("ogs_nas_5gs_decode_ran_timing_synchronization() 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__) 
  |  |  ------------------
  ------------------
 1135|      1|               return size;
 1136|      1|            }
 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: 23.3k]
  ------------------
 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|    195|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_TYPE:
  ------------------
  |  |  381|    195|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_TYPE 0x4F
  ------------------
  |  Branch (1151:9): [True: 195, False: 23.3k]
  ------------------
 1152|    195|            size = ogs_nas_5gs_decode_gprs_timer_3(&registration_accept->discontinuous_coverage_maximum_time_offset, pkbuf);
 1153|    195|            if (size < 0) {
  ------------------
  |  Branch (1153:17): [True: 1, False: 194]
  ------------------
 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|    194|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_PRESENT;
  ------------------
  |  |  318|    194|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_PRESENT ((uint64_t)1<<55)
  ------------------
 1159|    194|            decoded += size;
 1160|    194|            break;
 1161|    199|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_S_NSSAI_TIME_VALIDITY_INFORMATION_TYPE:
  ------------------
  |  |  382|    199|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_S_NSSAI_TIME_VALIDITY_INFORMATION_TYPE 0x5B
  ------------------
  |  Branch (1161:9): [True: 199, False: 23.3k]
  ------------------
 1162|    199|            size = ogs_nas_5gs_decode_s_nssai_time_validity_information(&registration_accept->s_nssai_time_validity_information, pkbuf);
 1163|    199|            if (size < 0) {
  ------------------
  |  Branch (1163:17): [True: 3, False: 196]
  ------------------
 1164|      3|               ogs_error("ogs_nas_5gs_decode_s_nssai_time_validity_information() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1165|      3|               return size;
 1166|      3|            }
 1167|       |
 1168|    196|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_S_NSSAI_TIME_VALIDITY_INFORMATION_PRESENT;
  ------------------
  |  |  319|    196|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_S_NSSAI_TIME_VALIDITY_INFORMATION_PRESENT ((uint64_t)1<<56)
  ------------------
 1169|    196|            decoded += size;
 1170|    196|            break;
 1171|    218|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_UNAVAILABILITY_CONFIGURATION_TYPE:
  ------------------
  |  |  383|    218|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_UNAVAILABILITY_CONFIGURATION_TYPE 0x3C
  ------------------
  |  Branch (1171:9): [True: 218, False: 23.2k]
  ------------------
 1172|    218|            size = ogs_nas_5gs_decode_unavailability_configuration(&registration_accept->unavailability_configuration, pkbuf);
 1173|    218|            if (size < 0) {
  ------------------
  |  Branch (1173:17): [True: 7, False: 211]
  ------------------
 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|    211|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_UNAVAILABILITY_CONFIGURATION_PRESENT;
  ------------------
  |  |  320|    211|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_UNAVAILABILITY_CONFIGURATION_PRESENT ((uint64_t)1<<57)
  ------------------
 1179|    211|            decoded += size;
 1180|    211|            break;
 1181|    219|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_FEATURE_AUTHORIZATION_INDICATION_TYPE:
  ------------------
  |  |  384|    219|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_FEATURE_AUTHORIZATION_INDICATION_TYPE 0x5C
  ------------------
  |  Branch (1181:9): [True: 219, False: 23.2k]
  ------------------
 1182|    219|            size = ogs_nas_5gs_decode_feature_authorization_indication(&registration_accept->feature_authorization_indication, pkbuf);
 1183|    219|            if (size < 0) {
  ------------------
  |  Branch (1183:17): [True: 1, False: 218]
  ------------------
 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|    218|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_FEATURE_AUTHORIZATION_INDICATION_PRESENT;
  ------------------
  |  |  321|    218|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_FEATURE_AUTHORIZATION_INDICATION_PRESENT ((uint64_t)1<<58)
  ------------------
 1189|    218|            decoded += size;
 1190|    218|            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: 23.3k]
  ------------------
 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|    251|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE:
  ------------------
  |  |  386|    251|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE 0x63
  ------------------
  |  Branch (1201:9): [True: 251, False: 23.2k]
  ------------------
 1202|    251|            size = ogs_nas_5gs_decode_access_technology_utilization_control(&registration_accept->access_technology_utilization_control, pkbuf);
 1203|    251|            if (size < 0) {
  ------------------
  |  Branch (1203:17): [True: 1, False: 250]
  ------------------
 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|    250|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT;
  ------------------
  |  |  323|    250|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT ((uint64_t)1<<60)
  ------------------
 1209|    250|            decoded += size;
 1210|    250|            break;
 1211|    197|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_LP_WUSPS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  387|    197|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_LP_WUSPS_ASSISTANCE_INFORMATION_TYPE 0x64
  ------------------
  |  Branch (1211:9): [True: 197, False: 23.3k]
  ------------------
 1212|    197|            size = ogs_nas_5gs_decode_lp_wusps_assistance_information(&registration_accept->negotiated_lp_wusps_assistance_information, pkbuf);
 1213|    197|            if (size < 0) {
  ------------------
  |  Branch (1213:17): [True: 2, False: 195]
  ------------------
 1214|      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__) 
  |  |  ------------------
  ------------------
 1215|      2|               return size;
 1216|      2|            }
 1217|       |
 1218|    195|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_LP_WUSPS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  324|    195|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_NEGOTIATED_LP_WUSPS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<61)
  ------------------
 1219|    195|            decoded += size;
 1220|    195|            break;
 1221|    770|        case OGS_NAS_5GS_REGISTRATION_ACCEPT_LP_WUS_STATUS_TYPE:
  ------------------
  |  |  388|    770|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_LP_WUS_STATUS_TYPE 0x80
  ------------------
  |  Branch (1221:9): [True: 770, False: 22.7k]
  ------------------
 1222|    770|            decoded--;
 1223|    770|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    770|    do { \
  |  |  114|    770|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    770|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 770, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    770|        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|    770|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 770]
  |  |  ------------------
  ------------------
 1224|    770|            size = ogs_nas_5gs_decode_lp_wus_status(&registration_accept->lp_wus_status, pkbuf);
 1225|    770|            if (size < 0) {
  ------------------
  |  Branch (1225:17): [True: 0, False: 770]
  ------------------
 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|    770|            registration_accept->presencemask |= OGS_NAS_5GS_REGISTRATION_ACCEPT_LP_WUS_STATUS_PRESENT;
  ------------------
  |  |  325|    770|#define OGS_NAS_5GS_REGISTRATION_ACCEPT_LP_WUS_STATUS_PRESENT ((uint64_t)1<<62)
  ------------------
 1231|    770|            decoded += size;
 1232|    770|            break;
 1233|  7.54k|        default:
  ------------------
  |  Branch (1233:9): [True: 7.54k, False: 15.9k]
  ------------------
 1234|  7.54k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  7.54k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  7.54k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  7.54k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  7.54k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  7.54k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  7.54k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1235|  7.54k|            break;
 1236|  23.5k|        }
 1237|  23.5k|    }
 1238|       |
 1239|    707|    return decoded;
 1240|    967|}
ogs_nas_5gs_decode_registration_complete:
 1243|     65|{
 1244|     65|    ogs_nas_5gs_registration_complete_t *registration_complete = &message->gmm.registration_complete;
 1245|     65|    int decoded = 0;
 1246|     65|    int size = 0;
 1247|       |
 1248|     65|    ogs_trace("[NAS] Decode REGISTRATION_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__) 
  |  |  ------------------
  ------------------
 1249|       |
 1250|  1.52k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (1250:12): [True: 1.47k, False: 46]
  ------------------
 1251|  1.47k|        uint8_t *buffer = pkbuf->data;
 1252|  1.47k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (1252:24): [True: 419, False: 1.05k]
  ------------------
 1253|       |
 1254|  1.47k|        size = sizeof(uint8_t);
 1255|  1.47k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1255:13): [True: 0, False: 1.47k]
  ------------------
 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.47k|        decoded += size;
 1260|       |
 1261|  1.47k|        switch(type) {
 1262|    342|        case OGS_NAS_5GS_REGISTRATION_COMPLETE_SOR_TRANSPARENT_CONTAINER_TYPE:
  ------------------
  |  |  466|    342|#define OGS_NAS_5GS_REGISTRATION_COMPLETE_SOR_TRANSPARENT_CONTAINER_TYPE 0x73
  ------------------
  |  Branch (1262:9): [True: 342, False: 1.13k]
  ------------------
 1263|    342|            size = ogs_nas_5gs_decode_sor_transparent_container(&registration_complete->sor_transparent_container, pkbuf);
 1264|    342|            if (size < 0) {
  ------------------
  |  Branch (1264:17): [True: 19, False: 323]
  ------------------
 1265|     19|               ogs_error("ogs_nas_5gs_decode_sor_transparent_container() failed");
  ------------------
  |  |   36|     19|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     19|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     19|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     19|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     19|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     19|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1266|     19|               return size;
 1267|     19|            }
 1268|       |
 1269|    323|            registration_complete->presencemask |= OGS_NAS_5GS_REGISTRATION_COMPLETE_SOR_TRANSPARENT_CONTAINER_PRESENT;
  ------------------
  |  |  465|    323|#define OGS_NAS_5GS_REGISTRATION_COMPLETE_SOR_TRANSPARENT_CONTAINER_PRESENT ((uint64_t)1<<0)
  ------------------
 1270|    323|            decoded += size;
 1271|    323|            break;
 1272|  1.13k|        default:
  ------------------
  |  Branch (1272:9): [True: 1.13k, False: 342]
  ------------------
 1273|  1.13k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.13k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.13k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.13k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.13k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.13k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.13k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1274|  1.13k|            break;
 1275|  1.47k|        }
 1276|  1.47k|    }
 1277|       |
 1278|     46|    return decoded;
 1279|     65|}
ogs_nas_5gs_decode_registration_reject:
 1282|    208|{
 1283|    208|    ogs_nas_5gs_registration_reject_t *registration_reject = &message->gmm.registration_reject;
 1284|    208|    int decoded = 0;
 1285|    208|    int size = 0;
 1286|       |
 1287|    208|    ogs_trace("[NAS] Decode REGISTRATION_REJECT\n");
  ------------------
  |  |   40|    208|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    208|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    208|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    208|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    208|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    208|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1288|       |
 1289|    208|    size = ogs_nas_5gs_decode_5gmm_cause(&registration_reject->gmm_cause, pkbuf);
 1290|    208|    if (size < 0) {
  ------------------
  |  Branch (1290:9): [True: 0, False: 208]
  ------------------
 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|    208|    decoded += size;
 1296|       |
 1297|  5.51k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (1297:12): [True: 5.35k, False: 165]
  ------------------
 1298|  5.35k|        uint8_t *buffer = pkbuf->data;
 1299|  5.35k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (1299:24): [True: 1.08k, False: 4.26k]
  ------------------
 1300|       |
 1301|  5.35k|        size = sizeof(uint8_t);
 1302|  5.35k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1302:13): [True: 0, False: 5.35k]
  ------------------
 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.35k|        decoded += size;
 1307|       |
 1308|  5.35k|        switch(type) {
 1309|    210|        case OGS_NAS_5GS_REGISTRATION_REJECT_T3346_VALUE_TYPE:
  ------------------
  |  |  494|    210|#define OGS_NAS_5GS_REGISTRATION_REJECT_T3346_VALUE_TYPE 0x5F
  ------------------
  |  Branch (1309:9): [True: 210, False: 5.14k]
  ------------------
 1310|    210|            size = ogs_nas_5gs_decode_gprs_timer_2(&registration_reject->t3346_value, pkbuf);
 1311|    210|            if (size < 0) {
  ------------------
  |  Branch (1311:17): [True: 3, False: 207]
  ------------------
 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|    207|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_T3346_VALUE_PRESENT;
  ------------------
  |  |  479|    207|#define OGS_NAS_5GS_REGISTRATION_REJECT_T3346_VALUE_PRESENT ((uint64_t)1<<0)
  ------------------
 1317|    207|            decoded += size;
 1318|    207|            break;
 1319|    196|        case OGS_NAS_5GS_REGISTRATION_REJECT_T3502_VALUE_TYPE:
  ------------------
  |  |  495|    196|#define OGS_NAS_5GS_REGISTRATION_REJECT_T3502_VALUE_TYPE 0x16
  ------------------
  |  Branch (1319:9): [True: 196, False: 5.15k]
  ------------------
 1320|    196|            size = ogs_nas_5gs_decode_gprs_timer_2(&registration_reject->t3502_value, pkbuf);
 1321|    196|            if (size < 0) {
  ------------------
  |  Branch (1321:17): [True: 1, False: 195]
  ------------------
 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|    195|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_T3502_VALUE_PRESENT;
  ------------------
  |  |  480|    195|#define OGS_NAS_5GS_REGISTRATION_REJECT_T3502_VALUE_PRESENT ((uint64_t)1<<1)
  ------------------
 1327|    195|            decoded += size;
 1328|    195|            break;
 1329|    211|        case OGS_NAS_5GS_REGISTRATION_REJECT_EAP_MESSAGE_TYPE:
  ------------------
  |  |  496|    211|#define OGS_NAS_5GS_REGISTRATION_REJECT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (1329:9): [True: 211, False: 5.14k]
  ------------------
 1330|    211|            size = ogs_nas_5gs_decode_eap_message(&registration_reject->eap_message, pkbuf);
 1331|    211|            if (size < 0) {
  ------------------
  |  Branch (1331:17): [True: 1, False: 210]
  ------------------
 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|    210|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  481|    210|#define OGS_NAS_5GS_REGISTRATION_REJECT_EAP_MESSAGE_PRESENT ((uint64_t)1<<2)
  ------------------
 1337|    210|            decoded += size;
 1338|    210|            break;
 1339|    199|        case OGS_NAS_5GS_REGISTRATION_REJECT_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  497|    199|#define OGS_NAS_5GS_REGISTRATION_REJECT_REJECTED_NSSAI_TYPE 0x69
  ------------------
  |  Branch (1339:9): [True: 199, False: 5.15k]
  ------------------
 1340|    199|            size = ogs_nas_5gs_decode_rejected_nssai(&registration_reject->rejected_nssai, pkbuf);
 1341|    199|            if (size < 0) {
  ------------------
  |  Branch (1341:17): [True: 1, False: 198]
  ------------------
 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|    198|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  482|    198|#define OGS_NAS_5GS_REGISTRATION_REJECT_REJECTED_NSSAI_PRESENT ((uint64_t)1<<3)
  ------------------
 1347|    198|            decoded += size;
 1348|    198|            break;
 1349|    203|        case OGS_NAS_5GS_REGISTRATION_REJECT_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  498|    203|#define OGS_NAS_5GS_REGISTRATION_REJECT_CAG_INFORMATION_LIST_TYPE 0x75
  ------------------
  |  Branch (1349:9): [True: 203, False: 5.15k]
  ------------------
 1350|    203|            size = ogs_nas_5gs_decode_cag_information_list(&registration_reject->cag_information_list, pkbuf);
 1351|    203|            if (size < 0) {
  ------------------
  |  Branch (1351:17): [True: 4, False: 199]
  ------------------
 1352|      4|               ogs_error("ogs_nas_5gs_decode_cag_information_list() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1353|      4|               return size;
 1354|      4|            }
 1355|       |
 1356|    199|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  483|    199|#define OGS_NAS_5GS_REGISTRATION_REJECT_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<4)
  ------------------
 1357|    199|            decoded += size;
 1358|    199|            break;
 1359|    199|        case OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  499|    199|#define OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_REJECTED_NSSAI_TYPE 0x68
  ------------------
  |  Branch (1359:9): [True: 199, False: 5.15k]
  ------------------
 1360|    199|            size = ogs_nas_5gs_decode_extended_rejected_nssai(&registration_reject->extended_rejected_nssai, pkbuf);
 1361|    199|            if (size < 0) {
  ------------------
  |  Branch (1361:17): [True: 2, False: 197]
  ------------------
 1362|      2|               ogs_error("ogs_nas_5gs_decode_extended_rejected_nssai() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1363|      2|               return size;
 1364|      2|            }
 1365|       |
 1366|    197|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  484|    197|#define OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_REJECTED_NSSAI_PRESENT ((uint64_t)1<<5)
  ------------------
 1367|    197|            decoded += size;
 1368|    197|            break;
 1369|    198|        case OGS_NAS_5GS_REGISTRATION_REJECT_DISASTER_RETURN_WAIT_RANGE_TYPE:
  ------------------
  |  |  500|    198|#define OGS_NAS_5GS_REGISTRATION_REJECT_DISASTER_RETURN_WAIT_RANGE_TYPE 0x2C
  ------------------
  |  Branch (1369:9): [True: 198, False: 5.15k]
  ------------------
 1370|    198|            size = ogs_nas_5gs_decode_registration_wait_range(&registration_reject->disaster_return_wait_range, pkbuf);
 1371|    198|            if (size < 0) {
  ------------------
  |  Branch (1371:17): [True: 1, False: 197]
  ------------------
 1372|      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__) 
  |  |  ------------------
  ------------------
 1373|      1|               return size;
 1374|      1|            }
 1375|       |
 1376|    197|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_DISASTER_RETURN_WAIT_RANGE_PRESENT;
  ------------------
  |  |  485|    197|#define OGS_NAS_5GS_REGISTRATION_REJECT_DISASTER_RETURN_WAIT_RANGE_PRESENT ((uint64_t)1<<6)
  ------------------
 1377|    197|            decoded += size;
 1378|    197|            break;
 1379|    201|        case OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  501|    201|#define OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_CAG_INFORMATION_LIST_TYPE 0x71
  ------------------
  |  Branch (1379:9): [True: 201, False: 5.15k]
  ------------------
 1380|    201|            size = ogs_nas_5gs_decode_extended_cag_information_list(&registration_reject->extended_cag_information_list, pkbuf);
 1381|    201|            if (size < 0) {
  ------------------
  |  Branch (1381:17): [True: 5, False: 196]
  ------------------
 1382|      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__) 
  |  |  ------------------
  ------------------
 1383|      5|               return size;
 1384|      5|            }
 1385|       |
 1386|    196|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  486|    196|#define OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<7)
  ------------------
 1387|    196|            decoded += size;
 1388|    196|            break;
 1389|    195|        case OGS_NAS_5GS_REGISTRATION_REJECT_LOWER_BOUND_TIMER_VALUE_TYPE:
  ------------------
  |  |  502|    195|#define OGS_NAS_5GS_REGISTRATION_REJECT_LOWER_BOUND_TIMER_VALUE_TYPE 0x3A
  ------------------
  |  Branch (1389:9): [True: 195, False: 5.15k]
  ------------------
 1390|    195|            size = ogs_nas_5gs_decode_gprs_timer_3(&registration_reject->lower_bound_timer_value, pkbuf);
 1391|    195|            if (size < 0) {
  ------------------
  |  Branch (1391:17): [True: 1, False: 194]
  ------------------
 1392|      1|               ogs_error("ogs_nas_5gs_decode_gprs_timer_3() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1393|      1|               return size;
 1394|      1|            }
 1395|       |
 1396|    194|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_LOWER_BOUND_TIMER_VALUE_PRESENT;
  ------------------
  |  |  487|    194|#define OGS_NAS_5GS_REGISTRATION_REJECT_LOWER_BOUND_TIMER_VALUE_PRESENT ((uint64_t)1<<8)
  ------------------
 1397|    194|            decoded += size;
 1398|    194|            break;
 1399|    201|        case OGS_NAS_5GS_REGISTRATION_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE:
  ------------------
  |  |  503|    201|#define OGS_NAS_5GS_REGISTRATION_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE 0x1D
  ------------------
  |  Branch (1399:9): [True: 201, False: 5.15k]
  ------------------
 1400|    201|            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|    201|            if (size < 0) {
  ------------------
  |  Branch (1401:17): [True: 1, False: 200]
  ------------------
 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|    200|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT;
  ------------------
  |  |  488|    200|#define OGS_NAS_5GS_REGISTRATION_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT ((uint64_t)1<<9)
  ------------------
 1407|    200|            decoded += size;
 1408|    200|            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.15k]
  ------------------
 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|    230|        case OGS_NAS_5GS_REGISTRATION_REJECT_N3IWF_IDENTIFIER_TYPE:
  ------------------
  |  |  505|    230|#define OGS_NAS_5GS_REGISTRATION_REJECT_N3IWF_IDENTIFIER_TYPE 0x3E
  ------------------
  |  Branch (1419:9): [True: 230, False: 5.12k]
  ------------------
 1420|    230|            size = ogs_nas_5gs_decode_n3iwf_identifier(&registration_reject->n3iwf_identifier, pkbuf);
 1421|    230|            if (size < 0) {
  ------------------
  |  Branch (1421:17): [True: 7, False: 223]
  ------------------
 1422|      7|               ogs_error("ogs_nas_5gs_decode_n3iwf_identifier() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1423|      7|               return size;
 1424|      7|            }
 1425|       |
 1426|    223|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_N3IWF_IDENTIFIER_PRESENT;
  ------------------
  |  |  490|    223|#define OGS_NAS_5GS_REGISTRATION_REJECT_N3IWF_IDENTIFIER_PRESENT ((uint64_t)1<<11)
  ------------------
 1427|    223|            decoded += size;
 1428|    223|            break;
 1429|    219|        case OGS_NAS_5GS_REGISTRATION_REJECT_TNAN_INFORMATION_TYPE:
  ------------------
  |  |  506|    219|#define OGS_NAS_5GS_REGISTRATION_REJECT_TNAN_INFORMATION_TYPE 0x4D
  ------------------
  |  Branch (1429:9): [True: 219, False: 5.13k]
  ------------------
 1430|    219|            size = ogs_nas_5gs_decode_tnan_information(&registration_reject->tnan_information, pkbuf);
 1431|    219|            if (size < 0) {
  ------------------
  |  Branch (1431:17): [True: 8, False: 211]
  ------------------
 1432|      8|               ogs_error("ogs_nas_5gs_decode_tnan_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__) 
  |  |  ------------------
  ------------------
 1433|      8|               return size;
 1434|      8|            }
 1435|       |
 1436|    211|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_TNAN_INFORMATION_PRESENT;
  ------------------
  |  |  491|    211|#define OGS_NAS_5GS_REGISTRATION_REJECT_TNAN_INFORMATION_PRESENT ((uint64_t)1<<12)
  ------------------
 1437|    211|            decoded += size;
 1438|    211|            break;
 1439|    204|        case OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_5GMM_CAUSE_TYPE:
  ------------------
  |  |  507|    204|#define OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_5GMM_CAUSE_TYPE 0x62
  ------------------
  |  Branch (1439:9): [True: 204, False: 5.14k]
  ------------------
 1440|    204|            size = ogs_nas_5gs_decode_extended_5gmm_cause(&registration_reject->extended_gmm_cause, pkbuf);
 1441|    204|            if (size < 0) {
  ------------------
  |  Branch (1441:17): [True: 6, False: 198]
  ------------------
 1442|      6|               ogs_error("ogs_nas_5gs_decode_extended_5gmm_cause() 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__) 
  |  |  ------------------
  ------------------
 1443|      6|               return size;
 1444|      6|            }
 1445|       |
 1446|    198|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_5GMM_CAUSE_PRESENT;
  ------------------
  |  |  492|    198|#define OGS_NAS_5GS_REGISTRATION_REJECT_EXTENDED_5GMM_CAUSE_PRESENT ((uint64_t)1<<13)
  ------------------
 1447|    198|            decoded += size;
 1448|    198|            break;
 1449|    195|        case OGS_NAS_5GS_REGISTRATION_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE:
  ------------------
  |  |  508|    195|#define OGS_NAS_5GS_REGISTRATION_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE 0x63
  ------------------
  |  Branch (1449:9): [True: 195, False: 5.15k]
  ------------------
 1450|    195|            size = ogs_nas_5gs_decode_access_technology_utilization_control(&registration_reject->access_technology_utilization_control, pkbuf);
 1451|    195|            if (size < 0) {
  ------------------
  |  Branch (1451:17): [True: 1, False: 194]
  ------------------
 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|    194|            registration_reject->presencemask |= OGS_NAS_5GS_REGISTRATION_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT;
  ------------------
  |  |  493|    194|#define OGS_NAS_5GS_REGISTRATION_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT ((uint64_t)1<<14)
  ------------------
 1457|    194|            decoded += size;
 1458|    194|            break;
 1459|  2.29k|        default:
  ------------------
  |  Branch (1459:9): [True: 2.29k, False: 3.05k]
  ------------------
 1460|  2.29k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.29k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.29k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.29k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.29k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.29k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.29k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1461|  2.29k|            break;
 1462|  5.35k|        }
 1463|  5.35k|    }
 1464|       |
 1465|    165|    return decoded;
 1466|    208|}
ogs_nas_5gs_decode_deregistration_request_from_ue:
 1469|     54|{
 1470|     54|    ogs_nas_5gs_deregistration_request_from_ue_t *deregistration_request_from_ue = &message->gmm.deregistration_request_from_ue;
 1471|     54|    int decoded = 0;
 1472|     54|    int size = 0;
 1473|       |
 1474|     54|    ogs_trace("[NAS] Decode DEREGISTRATION_REQUEST_FROM_UE\n");
  ------------------
  |  |   40|     54|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     54|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     54|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     54|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     54|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     54|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1475|       |
 1476|     54|    size = ogs_nas_5gs_decode_de_registration_type(&deregistration_request_from_ue->de_registration_type, pkbuf);
 1477|     54|    if (size < 0) {
  ------------------
  |  Branch (1477:9): [True: 0, False: 54]
  ------------------
 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|     54|    decoded += size;
 1483|       |
 1484|     54|    size = ogs_nas_5gs_decode_5gs_mobile_identity(&deregistration_request_from_ue->mobile_identity, pkbuf);
 1485|     54|    if (size < 0) {
  ------------------
  |  Branch (1485:9): [True: 1, False: 53]
  ------------------
 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|     53|    decoded += size;
 1491|       |
 1492|  2.78k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (1492:12): [True: 2.74k, False: 49]
  ------------------
 1493|  2.74k|        uint8_t *buffer = pkbuf->data;
 1494|  2.74k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (1494:24): [True: 850, False: 1.89k]
  ------------------
 1495|       |
 1496|  2.74k|        size = sizeof(uint8_t);
 1497|  2.74k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1497:13): [True: 0, False: 2.74k]
  ------------------
 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.74k|        decoded += size;
 1502|       |
 1503|  2.74k|        switch(type) {
 1504|    199|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_UNAVAILABILITY_INFORMATION_TYPE:
  ------------------
  |  |  539|    199|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_UNAVAILABILITY_INFORMATION_TYPE 0x3C
  ------------------
  |  Branch (1504:9): [True: 199, False: 2.54k]
  ------------------
 1505|    199|            size = ogs_nas_5gs_decode_unavailability_information(&deregistration_request_from_ue->unavailability_information, pkbuf);
 1506|    199|            if (size < 0) {
  ------------------
  |  Branch (1506:17): [True: 2, False: 197]
  ------------------
 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|    197|            deregistration_request_from_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_UNAVAILABILITY_INFORMATION_PRESENT;
  ------------------
  |  |  537|    197|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_UNAVAILABILITY_INFORMATION_PRESENT ((uint64_t)1<<0)
  ------------------
 1512|    197|            decoded += size;
 1513|    197|            break;
 1514|    211|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_NAS_MESSAGE_CONTAINER_TYPE:
  ------------------
  |  |  540|    211|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_NAS_MESSAGE_CONTAINER_TYPE 0x71
  ------------------
  |  Branch (1514:9): [True: 211, False: 2.52k]
  ------------------
 1515|    211|            size = ogs_nas_5gs_decode_message_container(&deregistration_request_from_ue->nas_message_container, pkbuf);
 1516|    211|            if (size < 0) {
  ------------------
  |  Branch (1516:17): [True: 2, False: 209]
  ------------------
 1517|      2|               ogs_error("ogs_nas_5gs_decode_message_container() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1518|      2|               return size;
 1519|      2|            }
 1520|       |
 1521|    209|            deregistration_request_from_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_NAS_MESSAGE_CONTAINER_PRESENT;
  ------------------
  |  |  538|    209|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE_NAS_MESSAGE_CONTAINER_PRESENT ((uint64_t)1<<1)
  ------------------
 1522|    209|            decoded += size;
 1523|    209|            break;
 1524|  2.33k|        default:
  ------------------
  |  Branch (1524:9): [True: 2.33k, False: 410]
  ------------------
 1525|  2.33k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.33k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.33k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.33k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.33k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.33k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.33k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1526|  2.33k|            break;
 1527|  2.74k|        }
 1528|  2.74k|    }
 1529|       |
 1530|     49|    return decoded;
 1531|     53|}
ogs_nas_5gs_decode_deregistration_request_to_ue:
 1534|    163|{
 1535|    163|    ogs_nas_5gs_deregistration_request_to_ue_t *deregistration_request_to_ue = &message->gmm.deregistration_request_to_ue;
 1536|    163|    int decoded = 0;
 1537|    163|    int size = 0;
 1538|       |
 1539|    163|    ogs_trace("[NAS] Decode DEREGISTRATION_REQUEST_TO_UE\n");
  ------------------
  |  |   40|    163|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 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__) 
  |  |  ------------------
  ------------------
 1540|       |
 1541|    163|    size = ogs_nas_5gs_decode_de_registration_type(&deregistration_request_to_ue->de_registration_type, pkbuf);
 1542|    163|    if (size < 0) {
  ------------------
  |  Branch (1542:9): [True: 0, False: 163]
  ------------------
 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|    163|    decoded += size;
 1548|       |
 1549|  4.22k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (1549:12): [True: 4.08k, False: 137]
  ------------------
 1550|  4.08k|        uint8_t *buffer = pkbuf->data;
 1551|  4.08k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (1551:24): [True: 615, False: 3.47k]
  ------------------
 1552|       |
 1553|  4.08k|        size = sizeof(uint8_t);
 1554|  4.08k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1554:13): [True: 0, False: 4.08k]
  ------------------
 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.08k|        decoded += size;
 1559|       |
 1560|  4.08k|        switch(type) {
 1561|    228|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_5GMM_CAUSE_TYPE:
  ------------------
  |  |  568|    228|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_5GMM_CAUSE_TYPE 0x58
  ------------------
  |  Branch (1561:9): [True: 228, False: 3.86k]
  ------------------
 1562|    228|            size = ogs_nas_5gs_decode_5gmm_cause(&deregistration_request_to_ue->gmm_cause, pkbuf);
 1563|    228|            if (size < 0) {
  ------------------
  |  Branch (1563:17): [True: 5, False: 223]
  ------------------
 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|    223|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_5GMM_CAUSE_PRESENT;
  ------------------
  |  |  557|    223|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_5GMM_CAUSE_PRESENT ((uint64_t)1<<0)
  ------------------
 1569|    223|            decoded += size;
 1570|    223|            break;
 1571|    197|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_T3346_VALUE_TYPE:
  ------------------
  |  |  569|    197|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_T3346_VALUE_TYPE 0x5F
  ------------------
  |  Branch (1571:9): [True: 197, False: 3.89k]
  ------------------
 1572|    197|            size = ogs_nas_5gs_decode_gprs_timer_2(&deregistration_request_to_ue->t3346_value, pkbuf);
 1573|    197|            if (size < 0) {
  ------------------
  |  Branch (1573:17): [True: 1, False: 196]
  ------------------
 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|    196|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_T3346_VALUE_PRESENT;
  ------------------
  |  |  558|    196|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_T3346_VALUE_PRESENT ((uint64_t)1<<1)
  ------------------
 1579|    196|            decoded += size;
 1580|    196|            break;
 1581|    196|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  570|    196|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_REJECTED_NSSAI_TYPE 0x6D
  ------------------
  |  Branch (1581:9): [True: 196, False: 3.89k]
  ------------------
 1582|    196|            size = ogs_nas_5gs_decode_rejected_nssai(&deregistration_request_to_ue->rejected_nssai, pkbuf);
 1583|    196|            if (size < 0) {
  ------------------
  |  Branch (1583:17): [True: 2, False: 194]
  ------------------
 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|    194|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  559|    194|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_REJECTED_NSSAI_PRESENT ((uint64_t)1<<2)
  ------------------
 1589|    194|            decoded += size;
 1590|    194|            break;
 1591|    208|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  571|    208|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_CAG_INFORMATION_LIST_TYPE 0x75
  ------------------
  |  Branch (1591:9): [True: 208, False: 3.88k]
  ------------------
 1592|    208|            size = ogs_nas_5gs_decode_cag_information_list(&deregistration_request_to_ue->cag_information_list, pkbuf);
 1593|    208|            if (size < 0) {
  ------------------
  |  Branch (1593:17): [True: 4, False: 204]
  ------------------
 1594|      4|               ogs_error("ogs_nas_5gs_decode_cag_information_list() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1595|      4|               return size;
 1596|      4|            }
 1597|       |
 1598|    204|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  560|    204|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<3)
  ------------------
 1599|    204|            decoded += size;
 1600|    204|            break;
 1601|    223|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  572|    223|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_REJECTED_NSSAI_TYPE 0x68
  ------------------
  |  Branch (1601:9): [True: 223, False: 3.86k]
  ------------------
 1602|    223|            size = ogs_nas_5gs_decode_extended_rejected_nssai(&deregistration_request_to_ue->extended_rejected_nssai, pkbuf);
 1603|    223|            if (size < 0) {
  ------------------
  |  Branch (1603:17): [True: 1, False: 222]
  ------------------
 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|    222|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  561|    222|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_REJECTED_NSSAI_PRESENT ((uint64_t)1<<4)
  ------------------
 1609|    222|            decoded += size;
 1610|    222|            break;
 1611|    196|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_DISASTER_RETURN_WAIT_RANGE_TYPE:
  ------------------
  |  |  573|    196|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_DISASTER_RETURN_WAIT_RANGE_TYPE 0x2C
  ------------------
  |  Branch (1611:9): [True: 196, False: 3.89k]
  ------------------
 1612|    196|            size = ogs_nas_5gs_decode_registration_wait_range(&deregistration_request_to_ue->disaster_return_wait_range, pkbuf);
 1613|    196|            if (size < 0) {
  ------------------
  |  Branch (1613:17): [True: 1, False: 195]
  ------------------
 1614|      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__) 
  |  |  ------------------
  ------------------
 1615|      1|               return size;
 1616|      1|            }
 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|    199|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  574|    199|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_CAG_INFORMATION_LIST_TYPE 0x71
  ------------------
  |  Branch (1621:9): [True: 199, False: 3.89k]
  ------------------
 1622|    199|            size = ogs_nas_5gs_decode_extended_cag_information_list(&deregistration_request_to_ue->extended_cag_information_list, pkbuf);
 1623|    199|            if (size < 0) {
  ------------------
  |  Branch (1623:17): [True: 3, False: 196]
  ------------------
 1624|      3|               ogs_error("ogs_nas_5gs_decode_extended_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__) 
  |  |  ------------------
  ------------------
 1625|      3|               return size;
 1626|      3|            }
 1627|       |
 1628|    196|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  563|    196|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_EXTENDED_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<6)
  ------------------
 1629|    196|            decoded += size;
 1630|    196|            break;
 1631|    196|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_LOWER_BOUND_TIMER_VALUE_TYPE:
  ------------------
  |  |  575|    196|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_LOWER_BOUND_TIMER_VALUE_TYPE 0x3A
  ------------------
  |  Branch (1631:9): [True: 196, False: 3.89k]
  ------------------
 1632|    196|            size = ogs_nas_5gs_decode_gprs_timer_3(&deregistration_request_to_ue->lower_bound_timer_value, pkbuf);
 1633|    196|            if (size < 0) {
  ------------------
  |  Branch (1633:17): [True: 2, False: 194]
  ------------------
 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|    194|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_LOWER_BOUND_TIMER_VALUE_PRESENT;
  ------------------
  |  |  564|    194|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_LOWER_BOUND_TIMER_VALUE_PRESENT ((uint64_t)1<<7)
  ------------------
 1639|    194|            decoded += size;
 1640|    194|            break;
 1641|    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.88k]
  ------------------
 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: 2, False: 205]
  ------------------
 1644|      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__) 
  |  |  ------------------
  ------------------
 1645|      2|               return size;
 1646|      2|            }
 1647|       |
 1648|    205|            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|    205|#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|    205|            decoded += size;
 1650|    205|            break;
 1651|    198|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_TYPE:
  ------------------
  |  |  577|    198|#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: 198, False: 3.89k]
  ------------------
 1652|    198|            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|    198|            if (size < 0) {
  ------------------
  |  Branch (1653:17): [True: 1, False: 197]
  ------------------
 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|    197|            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|    197|#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|    197|            decoded += size;
 1660|    197|            break;
 1661|    208|        case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE:
  ------------------
  |  |  578|    208|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE 0x63
  ------------------
  |  Branch (1661:9): [True: 208, False: 3.88k]
  ------------------
 1662|    208|            size = ogs_nas_5gs_decode_access_technology_utilization_control(&deregistration_request_to_ue->access_technology_utilization_control, pkbuf);
 1663|    208|            if (size < 0) {
  ------------------
  |  Branch (1663:17): [True: 4, False: 204]
  ------------------
 1664|      4|               ogs_error("ogs_nas_5gs_decode_access_technology_utilization_control() 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__) 
  |  |  ------------------
  ------------------
 1665|      4|               return size;
 1666|      4|            }
 1667|       |
 1668|    204|            deregistration_request_to_ue->presencemask |= OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT;
  ------------------
  |  |  567|    204|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT ((uint64_t)1<<10)
  ------------------
 1669|    204|            decoded += size;
 1670|    204|            break;
 1671|  1.83k|        default:
  ------------------
  |  Branch (1671:9): [True: 1.83k, False: 2.25k]
  ------------------
 1672|  1.83k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.83k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.83k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.83k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.83k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.83k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.83k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1673|  1.83k|            break;
 1674|  4.08k|        }
 1675|  4.08k|    }
 1676|       |
 1677|    137|    return decoded;
 1678|    163|}
ogs_nas_5gs_decode_service_request:
 1681|    113|{
 1682|    113|    ogs_nas_5gs_service_request_t *service_request = &message->gmm.service_request;
 1683|    113|    int decoded = 0;
 1684|    113|    int size = 0;
 1685|       |
 1686|    113|    ogs_trace("[NAS] Decode SERVICE_REQUEST\n");
  ------------------
  |  |   40|    113|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    113|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    113|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    113|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    113|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    113|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1687|       |
 1688|    113|    size = ogs_nas_5gs_decode_key_set_identifier(&service_request->ngksi, pkbuf);
 1689|    113|    if (size < 0) {
  ------------------
  |  Branch (1689:9): [True: 0, False: 113]
  ------------------
 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|    113|    decoded += size;
 1695|       |
 1696|    113|    size = ogs_nas_5gs_decode_5gs_mobile_identity(&service_request->s_tmsi, pkbuf);
 1697|    113|    if (size < 0) {
  ------------------
  |  Branch (1697:9): [True: 3, False: 110]
  ------------------
 1698|      3|        ogs_error("ogs_nas_5gs_decode_5gs_mobile_identity() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1699|      3|        return size;
 1700|      3|    }
 1701|       |
 1702|    110|    decoded += size;
 1703|       |
 1704|  3.53k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (1704:12): [True: 3.44k, False: 92]
  ------------------
 1705|  3.44k|        uint8_t *buffer = pkbuf->data;
 1706|  3.44k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (1706:24): [True: 663, False: 2.77k]
  ------------------
 1707|       |
 1708|  3.44k|        size = sizeof(uint8_t);
 1709|  3.44k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1709:13): [True: 0, False: 3.44k]
  ------------------
 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.44k|        decoded += size;
 1714|       |
 1715|  3.44k|        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.23k]
  ------------------
 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|    196|        case OGS_NAS_5GS_SERVICE_REQUEST_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  |  610|    196|#define OGS_NAS_5GS_SERVICE_REQUEST_PDU_SESSION_STATUS_TYPE 0x50
  ------------------
  |  Branch (1726:9): [True: 196, False: 3.24k]
  ------------------
 1727|    196|            size = ogs_nas_5gs_decode_pdu_session_status(&service_request->pdu_session_status, pkbuf);
 1728|    196|            if (size < 0) {
  ------------------
  |  Branch (1728:17): [True: 1, False: 195]
  ------------------
 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|    195|            service_request->presencemask |= OGS_NAS_5GS_SERVICE_REQUEST_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  |  604|    195|#define OGS_NAS_5GS_SERVICE_REQUEST_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<1)
  ------------------
 1734|    195|            decoded += size;
 1735|    195|            break;
 1736|    205|        case OGS_NAS_5GS_SERVICE_REQUEST_ALLOWED_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  |  611|    205|#define OGS_NAS_5GS_SERVICE_REQUEST_ALLOWED_PDU_SESSION_STATUS_TYPE 0x25
  ------------------
  |  Branch (1736:9): [True: 205, False: 3.23k]
  ------------------
 1737|    205|            size = ogs_nas_5gs_decode_allowed_pdu_session_status(&service_request->allowed_pdu_session_status, pkbuf);
 1738|    205|            if (size < 0) {
  ------------------
  |  Branch (1738:17): [True: 4, False: 201]
  ------------------
 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|    201|            service_request->presencemask |= OGS_NAS_5GS_SERVICE_REQUEST_ALLOWED_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  |  605|    201|#define OGS_NAS_5GS_SERVICE_REQUEST_ALLOWED_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<2)
  ------------------
 1744|    201|            decoded += size;
 1745|    201|            break;
 1746|    208|        case OGS_NAS_5GS_SERVICE_REQUEST_NAS_MESSAGE_CONTAINER_TYPE:
  ------------------
  |  |  612|    208|#define OGS_NAS_5GS_SERVICE_REQUEST_NAS_MESSAGE_CONTAINER_TYPE 0x71
  ------------------
  |  Branch (1746:9): [True: 208, False: 3.23k]
  ------------------
 1747|    208|            size = ogs_nas_5gs_decode_message_container(&service_request->nas_message_container, pkbuf);
 1748|    208|            if (size < 0) {
  ------------------
  |  Branch (1748:17): [True: 1, False: 207]
  ------------------
 1749|      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__) 
  |  |  ------------------
  ------------------
 1750|      1|               return size;
 1751|      1|            }
 1752|       |
 1753|    207|            service_request->presencemask |= OGS_NAS_5GS_SERVICE_REQUEST_NAS_MESSAGE_CONTAINER_PRESENT;
  ------------------
  |  |  606|    207|#define OGS_NAS_5GS_SERVICE_REQUEST_NAS_MESSAGE_CONTAINER_PRESENT ((uint64_t)1<<3)
  ------------------
 1754|    207|            decoded += size;
 1755|    207|            break;
 1756|    216|        case OGS_NAS_5GS_SERVICE_REQUEST_UE_REQUEST_TYPE_TYPE:
  ------------------
  |  |  613|    216|#define OGS_NAS_5GS_SERVICE_REQUEST_UE_REQUEST_TYPE_TYPE 0x29
  ------------------
  |  Branch (1756:9): [True: 216, False: 3.22k]
  ------------------
 1757|    216|            size = ogs_nas_5gs_decode_ue_request_type(&service_request->ue_request_type, pkbuf);
 1758|    216|            if (size < 0) {
  ------------------
  |  Branch (1758:17): [True: 8, False: 208]
  ------------------
 1759|      8|               ogs_error("ogs_nas_5gs_decode_ue_request_type() 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__) 
  |  |  ------------------
  ------------------
 1760|      8|               return size;
 1761|      8|            }
 1762|       |
 1763|    208|            service_request->presencemask |= OGS_NAS_5GS_SERVICE_REQUEST_UE_REQUEST_TYPE_PRESENT;
  ------------------
  |  |  607|    208|#define OGS_NAS_5GS_SERVICE_REQUEST_UE_REQUEST_TYPE_PRESENT ((uint64_t)1<<4)
  ------------------
 1764|    208|            decoded += size;
 1765|    208|            break;
 1766|    225|        case OGS_NAS_5GS_SERVICE_REQUEST_PAGING_RESTRICTION_TYPE:
  ------------------
  |  |  614|    225|#define OGS_NAS_5GS_SERVICE_REQUEST_PAGING_RESTRICTION_TYPE 0x28
  ------------------
  |  Branch (1766:9): [True: 225, False: 3.21k]
  ------------------
 1767|    225|            size = ogs_nas_5gs_decode_paging_restriction(&service_request->paging_restriction, pkbuf);
 1768|    225|            if (size < 0) {
  ------------------
  |  Branch (1768:17): [True: 2, False: 223]
  ------------------
 1769|      2|               ogs_error("ogs_nas_5gs_decode_paging_restriction() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1770|      2|               return size;
 1771|      2|            }
 1772|       |
 1773|    223|            service_request->presencemask |= OGS_NAS_5GS_SERVICE_REQUEST_PAGING_RESTRICTION_PRESENT;
  ------------------
  |  |  608|    223|#define OGS_NAS_5GS_SERVICE_REQUEST_PAGING_RESTRICTION_PRESENT ((uint64_t)1<<5)
  ------------------
 1774|    223|            decoded += size;
 1775|    223|            break;
 1776|  2.18k|        default:
  ------------------
  |  Branch (1776:9): [True: 2.18k, False: 1.25k]
  ------------------
 1777|  2.18k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.18k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 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__) 
  |  |  ------------------
  ------------------
 1778|  2.18k|            break;
 1779|  3.44k|        }
 1780|  3.44k|    }
 1781|       |
 1782|     92|    return decoded;
 1783|    110|}
ogs_nas_5gs_decode_service_reject:
 1786|    164|{
 1787|    164|    ogs_nas_5gs_service_reject_t *service_reject = &message->gmm.service_reject;
 1788|    164|    int decoded = 0;
 1789|    164|    int size = 0;
 1790|       |
 1791|    164|    ogs_trace("[NAS] Decode SERVICE_REJECT\n");
  ------------------
  |  |   40|    164|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    164|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    164|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    164|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    164|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    164|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1792|       |
 1793|    164|    size = ogs_nas_5gs_decode_5gmm_cause(&service_reject->gmm_cause, pkbuf);
 1794|    164|    if (size < 0) {
  ------------------
  |  Branch (1794:9): [True: 0, False: 164]
  ------------------
 1795|      0|        ogs_error("ogs_nas_5gs_decode_5gmm_cause() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1796|      0|        return size;
 1797|      0|    }
 1798|       |
 1799|    164|    decoded += size;
 1800|       |
 1801|  3.47k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (1801:12): [True: 3.33k, False: 145]
  ------------------
 1802|  3.33k|        uint8_t *buffer = pkbuf->data;
 1803|  3.33k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (1803:24): [True: 529, False: 2.80k]
  ------------------
 1804|       |
 1805|  3.33k|        size = sizeof(uint8_t);
 1806|  3.33k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1806:13): [True: 0, False: 3.33k]
  ------------------
 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.33k|        decoded += size;
 1811|       |
 1812|  3.33k|        switch(type) {
 1813|    200|        case OGS_NAS_5GS_SERVICE_REJECT_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  |  646|    200|#define OGS_NAS_5GS_SERVICE_REJECT_PDU_SESSION_STATUS_TYPE 0x50
  ------------------
  |  Branch (1813:9): [True: 200, False: 3.13k]
  ------------------
 1814|    200|            size = ogs_nas_5gs_decode_pdu_session_status(&service_reject->pdu_session_status, pkbuf);
 1815|    200|            if (size < 0) {
  ------------------
  |  Branch (1815:17): [True: 1, False: 199]
  ------------------
 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|    199|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  |  635|    199|#define OGS_NAS_5GS_SERVICE_REJECT_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<0)
  ------------------
 1821|    199|            decoded += size;
 1822|    199|            break;
 1823|    197|        case OGS_NAS_5GS_SERVICE_REJECT_T3346_VALUE_TYPE:
  ------------------
  |  |  647|    197|#define OGS_NAS_5GS_SERVICE_REJECT_T3346_VALUE_TYPE 0x5F
  ------------------
  |  Branch (1823:9): [True: 197, False: 3.13k]
  ------------------
 1824|    197|            size = ogs_nas_5gs_decode_gprs_timer_2(&service_reject->t3346_value, pkbuf);
 1825|    197|            if (size < 0) {
  ------------------
  |  Branch (1825:17): [True: 2, False: 195]
  ------------------
 1826|      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__) 
  |  |  ------------------
  ------------------
 1827|      2|               return size;
 1828|      2|            }
 1829|       |
 1830|    195|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_T3346_VALUE_PRESENT;
  ------------------
  |  |  636|    195|#define OGS_NAS_5GS_SERVICE_REJECT_T3346_VALUE_PRESENT ((uint64_t)1<<1)
  ------------------
 1831|    195|            decoded += size;
 1832|    195|            break;
 1833|    210|        case OGS_NAS_5GS_SERVICE_REJECT_EAP_MESSAGE_TYPE:
  ------------------
  |  |  648|    210|#define OGS_NAS_5GS_SERVICE_REJECT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (1833:9): [True: 210, False: 3.12k]
  ------------------
 1834|    210|            size = ogs_nas_5gs_decode_eap_message(&service_reject->eap_message, pkbuf);
 1835|    210|            if (size < 0) {
  ------------------
  |  Branch (1835:17): [True: 2, False: 208]
  ------------------
 1836|      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__) 
  |  |  ------------------
  ------------------
 1837|      2|               return size;
 1838|      2|            }
 1839|       |
 1840|    208|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  637|    208|#define OGS_NAS_5GS_SERVICE_REJECT_EAP_MESSAGE_PRESENT ((uint64_t)1<<2)
  ------------------
 1841|    208|            decoded += size;
 1842|    208|            break;
 1843|    195|        case OGS_NAS_5GS_SERVICE_REJECT_T3448_VALUE_TYPE:
  ------------------
  |  |  649|    195|#define OGS_NAS_5GS_SERVICE_REJECT_T3448_VALUE_TYPE 0x6B
  ------------------
  |  Branch (1843:9): [True: 195, False: 3.13k]
  ------------------
 1844|    195|            size = ogs_nas_5gs_decode_gprs_timer_2(&service_reject->t3448_value, pkbuf);
 1845|    195|            if (size < 0) {
  ------------------
  |  Branch (1845:17): [True: 1, False: 194]
  ------------------
 1846|      1|               ogs_error("ogs_nas_5gs_decode_gprs_timer_2() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1847|      1|               return size;
 1848|      1|            }
 1849|       |
 1850|    194|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_T3448_VALUE_PRESENT;
  ------------------
  |  |  638|    194|#define OGS_NAS_5GS_SERVICE_REJECT_T3448_VALUE_PRESENT ((uint64_t)1<<3)
  ------------------
 1851|    194|            decoded += size;
 1852|    194|            break;
 1853|    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.12k]
  ------------------
 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: 4, False: 202]
  ------------------
 1856|      4|               ogs_error("ogs_nas_5gs_decode_cag_information_list() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1857|      4|               return size;
 1858|      4|            }
 1859|       |
 1860|    202|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  639|    202|#define OGS_NAS_5GS_SERVICE_REJECT_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<4)
  ------------------
 1861|    202|            decoded += size;
 1862|    202|            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.13k]
  ------------------
 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|    201|        case OGS_NAS_5GS_SERVICE_REJECT_EXTENDED_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  652|    201|#define OGS_NAS_5GS_SERVICE_REJECT_EXTENDED_CAG_INFORMATION_LIST_TYPE 0x71
  ------------------
  |  Branch (1873:9): [True: 201, False: 3.13k]
  ------------------
 1874|    201|            size = ogs_nas_5gs_decode_extended_cag_information_list(&service_reject->extended_cag_information_list, pkbuf);
 1875|    201|            if (size < 0) {
  ------------------
  |  Branch (1875:17): [True: 4, False: 197]
  ------------------
 1876|      4|               ogs_error("ogs_nas_5gs_decode_extended_cag_information_list() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1877|      4|               return size;
 1878|      4|            }
 1879|       |
 1880|    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.13k]
  ------------------
 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|    203|        case OGS_NAS_5GS_SERVICE_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE:
  ------------------
  |  |  654|    203|#define OGS_NAS_5GS_SERVICE_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE 0x1D
  ------------------
  |  Branch (1893:9): [True: 203, False: 3.12k]
  ------------------
 1894|    203|            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|    203|            if (size < 0) {
  ------------------
  |  Branch (1895:17): [True: 1, False: 202]
  ------------------
 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|    202|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT;
  ------------------
  |  |  643|    202|#define OGS_NAS_5GS_SERVICE_REJECT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT ((uint64_t)1<<8)
  ------------------
 1901|    202|            decoded += size;
 1902|    202|            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.13k]
  ------------------
 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|    196|        case OGS_NAS_5GS_SERVICE_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE:
  ------------------
  |  |  656|    196|#define OGS_NAS_5GS_SERVICE_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE 0x63
  ------------------
  |  Branch (1913:9): [True: 196, False: 3.13k]
  ------------------
 1914|    196|            size = ogs_nas_5gs_decode_access_technology_utilization_control(&service_reject->access_technology_utilization_control, pkbuf);
 1915|    196|            if (size < 0) {
  ------------------
  |  Branch (1915:17): [True: 1, False: 195]
  ------------------
 1916|      1|               ogs_error("ogs_nas_5gs_decode_access_technology_utilization_control() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1917|      1|               return size;
 1918|      1|            }
 1919|       |
 1920|    195|            service_reject->presencemask |= OGS_NAS_5GS_SERVICE_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT;
  ------------------
  |  |  645|    195|#define OGS_NAS_5GS_SERVICE_REJECT_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT ((uint64_t)1<<10)
  ------------------
 1921|    195|            decoded += size;
 1922|    195|            break;
 1923|  1.13k|        default:
  ------------------
  |  Branch (1923:9): [True: 1.13k, False: 2.19k]
  ------------------
 1924|  1.13k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.13k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.13k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.13k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.13k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.13k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.13k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1925|  1.13k|            break;
 1926|  3.33k|        }
 1927|  3.33k|    }
 1928|       |
 1929|    145|    return decoded;
 1930|    164|}
ogs_nas_5gs_decode_service_accept:
 1933|    189|{
 1934|    189|    ogs_nas_5gs_service_accept_t *service_accept = &message->gmm.service_accept;
 1935|    189|    int decoded = 0;
 1936|    189|    int size = 0;
 1937|       |
 1938|    189|    ogs_trace("[NAS] Decode SERVICE_ACCEPT\n");
  ------------------
  |  |   40|    189|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    189|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    189|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    189|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    189|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    189|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1939|       |
 1940|  7.18k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (1940:12): [True: 7.05k, False: 128]
  ------------------
 1941|  7.05k|        uint8_t *buffer = pkbuf->data;
 1942|  7.05k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (1942:24): [True: 1.24k, False: 5.81k]
  ------------------
 1943|       |
 1944|  7.05k|        size = sizeof(uint8_t);
 1945|  7.05k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1945:13): [True: 0, False: 7.05k]
  ------------------
 1946|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1947|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 1948|      0|        }
 1949|  7.05k|        decoded += size;
 1950|       |
 1951|  7.05k|        switch(type) {
 1952|    215|        case OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  |  689|    215|#define OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_STATUS_TYPE 0x50
  ------------------
  |  Branch (1952:9): [True: 215, False: 6.84k]
  ------------------
 1953|    215|            size = ogs_nas_5gs_decode_pdu_session_status(&service_accept->pdu_session_status, pkbuf);
 1954|    215|            if (size < 0) {
  ------------------
  |  Branch (1954:17): [True: 5, False: 210]
  ------------------
 1955|      5|               ogs_error("ogs_nas_5gs_decode_pdu_session_status() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1956|      5|               return size;
 1957|      5|            }
 1958|       |
 1959|    210|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  |  681|    210|#define OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<0)
  ------------------
 1960|    210|            decoded += size;
 1961|    210|            break;
 1962|    283|        case OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_TYPE:
  ------------------
  |  |  690|    283|#define OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_TYPE 0x26
  ------------------
  |  Branch (1962:9): [True: 283, False: 6.77k]
  ------------------
 1963|    283|            size = ogs_nas_5gs_decode_pdu_session_reactivation_result(&service_accept->pdu_session_reactivation_result, pkbuf);
 1964|    283|            if (size < 0) {
  ------------------
  |  Branch (1964:17): [True: 11, False: 272]
  ------------------
 1965|     11|               ogs_error("ogs_nas_5gs_decode_pdu_session_reactivation_result() 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__) 
  |  |  ------------------
  ------------------
 1966|     11|               return size;
 1967|     11|            }
 1968|       |
 1969|    272|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_PRESENT;
  ------------------
  |  |  682|    272|#define OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_PRESENT ((uint64_t)1<<1)
  ------------------
 1970|    272|            decoded += size;
 1971|    272|            break;
 1972|    239|        case OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_TYPE:
  ------------------
  |  |  691|    239|#define OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_TYPE 0x72
  ------------------
  |  Branch (1972:9): [True: 239, False: 6.81k]
  ------------------
 1973|    239|            size = ogs_nas_5gs_decode_pdu_session_reactivation_result_error_cause(&service_accept->pdu_session_reactivation_result_error_cause, pkbuf);
 1974|    239|            if (size < 0) {
  ------------------
  |  Branch (1974:17): [True: 26, False: 213]
  ------------------
 1975|     26|               ogs_error("ogs_nas_5gs_decode_pdu_session_reactivation_result_error_cause() 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__) 
  |  |  ------------------
  ------------------
 1976|     26|               return size;
 1977|     26|            }
 1978|       |
 1979|    213|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_PRESENT;
  ------------------
  |  |  683|    213|#define OGS_NAS_5GS_SERVICE_ACCEPT_PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE_PRESENT ((uint64_t)1<<2)
  ------------------
 1980|    213|            decoded += size;
 1981|    213|            break;
 1982|    213|        case OGS_NAS_5GS_SERVICE_ACCEPT_EAP_MESSAGE_TYPE:
  ------------------
  |  |  692|    213|#define OGS_NAS_5GS_SERVICE_ACCEPT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (1982:9): [True: 213, False: 6.84k]
  ------------------
 1983|    213|            size = ogs_nas_5gs_decode_eap_message(&service_accept->eap_message, pkbuf);
 1984|    213|            if (size < 0) {
  ------------------
  |  Branch (1984:17): [True: 2, False: 211]
  ------------------
 1985|      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__) 
  |  |  ------------------
  ------------------
 1986|      2|               return size;
 1987|      2|            }
 1988|       |
 1989|    211|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  684|    211|#define OGS_NAS_5GS_SERVICE_ACCEPT_EAP_MESSAGE_PRESENT ((uint64_t)1<<3)
  ------------------
 1990|    211|            decoded += size;
 1991|    211|            break;
 1992|    247|        case OGS_NAS_5GS_SERVICE_ACCEPT_T3448_VALUE_TYPE:
  ------------------
  |  |  693|    247|#define OGS_NAS_5GS_SERVICE_ACCEPT_T3448_VALUE_TYPE 0x6B
  ------------------
  |  Branch (1992:9): [True: 247, False: 6.80k]
  ------------------
 1993|    247|            size = ogs_nas_5gs_decode_gprs_timer_2(&service_accept->t3448_value, pkbuf);
 1994|    247|            if (size < 0) {
  ------------------
  |  Branch (1994:17): [True: 6, False: 241]
  ------------------
 1995|      6|               ogs_error("ogs_nas_5gs_decode_gprs_timer_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__) 
  |  |  ------------------
  ------------------
 1996|      6|               return size;
 1997|      6|            }
 1998|       |
 1999|    241|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_T3448_VALUE_PRESENT;
  ------------------
  |  |  685|    241|#define OGS_NAS_5GS_SERVICE_ACCEPT_T3448_VALUE_PRESENT ((uint64_t)1<<4)
  ------------------
 2000|    241|            decoded += size;
 2001|    241|            break;
 2002|    245|        case OGS_NAS_5GS_SERVICE_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_TYPE:
  ------------------
  |  |  694|    245|#define OGS_NAS_5GS_SERVICE_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_TYPE 0x34
  ------------------
  |  Branch (2002:9): [True: 245, False: 6.81k]
  ------------------
 2003|    245|            size = ogs_nas_5gs_decode_5gs_additional_request_result(&service_accept->additional_request_result, pkbuf);
 2004|    245|            if (size < 0) {
  ------------------
  |  Branch (2004:17): [True: 6, False: 239]
  ------------------
 2005|      6|               ogs_error("ogs_nas_5gs_decode_5gs_additional_request_result() 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__) 
  |  |  ------------------
  ------------------
 2006|      6|               return size;
 2007|      6|            }
 2008|       |
 2009|    239|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_PRESENT;
  ------------------
  |  |  686|    239|#define OGS_NAS_5GS_SERVICE_ACCEPT_5GS_ADDITIONAL_REQUEST_RESULT_PRESENT ((uint64_t)1<<5)
  ------------------
 2010|    239|            decoded += size;
 2011|    239|            break;
 2012|    217|        case OGS_NAS_5GS_SERVICE_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE:
  ------------------
  |  |  695|    217|#define OGS_NAS_5GS_SERVICE_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_TYPE 0x1D
  ------------------
  |  Branch (2012:9): [True: 217, False: 6.83k]
  ------------------
 2013|    217|            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|    217|            if (size < 0) {
  ------------------
  |  Branch (2014:17): [True: 3, False: 214]
  ------------------
 2015|      3|               ogs_error("ogs_nas_5gs_decode_5gs_tracking_area_identity_list() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2016|      3|               return size;
 2017|      3|            }
 2018|       |
 2019|    214|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT;
  ------------------
  |  |  687|    214|#define OGS_NAS_5GS_SERVICE_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FOR_ROAMING_PRESENT ((uint64_t)1<<6)
  ------------------
 2020|    214|            decoded += size;
 2021|    214|            break;
 2022|    212|        case OGS_NAS_5GS_SERVICE_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_TYPE:
  ------------------
  |  |  696|    212|#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: 212, False: 6.84k]
  ------------------
 2023|    212|            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|    212|            if (size < 0) {
  ------------------
  |  Branch (2024:17): [True: 2, False: 210]
  ------------------
 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|    210|            service_accept->presencemask |= OGS_NAS_5GS_SERVICE_ACCEPT_FORBIDDEN_TAI_FOR_THE_LIST_OF_5GS_FORBIDDEN_TRACKING_AREAS_FORREGIONAL_PROVISION_OF_SERVICE_PRESENT;
  ------------------
  |  |  688|    210|#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|    210|            decoded += size;
 2031|    210|            break;
 2032|  5.18k|        default:
  ------------------
  |  Branch (2032:9): [True: 5.18k, False: 1.87k]
  ------------------
 2033|  5.18k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  5.18k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  5.18k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  5.18k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  5.18k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  5.18k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  5.18k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2034|  5.18k|            break;
 2035|  7.05k|        }
 2036|  7.05k|    }
 2037|       |
 2038|    128|    return decoded;
 2039|    189|}
ogs_nas_5gs_decode_configuration_update_command:
 2042|  1.13k|{
 2043|  1.13k|    ogs_nas_5gs_configuration_update_command_t *configuration_update_command = &message->gmm.configuration_update_command;
 2044|  1.13k|    int decoded = 0;
 2045|  1.13k|    int size = 0;
 2046|       |
 2047|  1.13k|    ogs_trace("[NAS] Decode CONFIGURATION_UPDATE_COMMAND\n");
  ------------------
  |  |   40|  1.13k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.13k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.13k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.13k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.13k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.13k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2048|       |
 2049|  43.9k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (2049:12): [True: 43.1k, False: 753]
  ------------------
 2050|  43.1k|        uint8_t *buffer = pkbuf->data;
 2051|  43.1k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (2051:24): [True: 15.8k, False: 27.3k]
  ------------------
 2052|       |
 2053|  43.1k|        size = sizeof(uint8_t);
 2054|  43.1k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2054:13): [True: 0, False: 43.1k]
  ------------------
 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|  43.1k|        decoded += size;
 2059|       |
 2060|  43.1k|        switch(type) {
 2061|  1.58k|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CONFIGURATION_UPDATE_INDICATION_TYPE:
  ------------------
  |  |  763|  1.58k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CONFIGURATION_UPDATE_INDICATION_TYPE 0xD0
  ------------------
  |  Branch (2061:9): [True: 1.58k, False: 41.6k]
  ------------------
 2062|  1.58k|            decoded--;
 2063|  1.58k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.58k|    do { \
  |  |  114|  1.58k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.58k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.58k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.58k|        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.58k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.58k]
  |  |  ------------------
  ------------------
 2064|  1.58k|            size = ogs_nas_5gs_decode_configuration_update_indication(&configuration_update_command->configuration_update_indication, pkbuf);
 2065|  1.58k|            if (size < 0) {
  ------------------
  |  Branch (2065:17): [True: 0, False: 1.58k]
  ------------------
 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.58k|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CONFIGURATION_UPDATE_INDICATION_PRESENT;
  ------------------
  |  |  716|  1.58k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CONFIGURATION_UPDATE_INDICATION_PRESENT ((uint64_t)1<<0)
  ------------------
 2071|  1.58k|            decoded += size;
 2072|  1.58k|            break;
 2073|    224|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5G_GUTI_TYPE:
  ------------------
  |  |  764|    224|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5G_GUTI_TYPE 0x77
  ------------------
  |  Branch (2073:9): [True: 224, False: 42.9k]
  ------------------
 2074|    224|            size = ogs_nas_5gs_decode_5gs_mobile_identity(&configuration_update_command->guti, pkbuf);
 2075|    224|            if (size < 0) {
  ------------------
  |  Branch (2075:17): [True: 3, False: 221]
  ------------------
 2076|      3|               ogs_error("ogs_nas_5gs_decode_5gs_mobile_identity() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2077|      3|               return size;
 2078|      3|            }
 2079|       |
 2080|    221|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5G_GUTI_PRESENT;
  ------------------
  |  |  717|    221|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5G_GUTI_PRESENT ((uint64_t)1<<1)
  ------------------
 2081|    221|            decoded += size;
 2082|    221|            break;
 2083|    235|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TAI_LIST_TYPE:
  ------------------
  |  |  765|    235|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TAI_LIST_TYPE 0x54
  ------------------
  |  Branch (2083:9): [True: 235, False: 42.9k]
  ------------------
 2084|    235|            size = ogs_nas_5gs_decode_5gs_tracking_area_identity_list(&configuration_update_command->tai_list, pkbuf);
 2085|    235|            if (size < 0) {
  ------------------
  |  Branch (2085:17): [True: 3, False: 232]
  ------------------
 2086|      3|               ogs_error("ogs_nas_5gs_decode_5gs_tracking_area_identity_list() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2087|      3|               return size;
 2088|      3|            }
 2089|       |
 2090|    232|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TAI_LIST_PRESENT;
  ------------------
  |  |  718|    232|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TAI_LIST_PRESENT ((uint64_t)1<<2)
  ------------------
 2091|    232|            decoded += size;
 2092|    232|            break;
 2093|    360|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALLOWED_NSSAI_TYPE:
  ------------------
  |  |  766|    360|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALLOWED_NSSAI_TYPE 0x15
  ------------------
  |  Branch (2093:9): [True: 360, False: 42.8k]
  ------------------
 2094|    360|            size = ogs_nas_5gs_decode_nssai(&configuration_update_command->allowed_nssai, pkbuf);
 2095|    360|            if (size < 0) {
  ------------------
  |  Branch (2095:17): [True: 5, False: 355]
  ------------------
 2096|      5|               ogs_error("ogs_nas_5gs_decode_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__) 
  |  |  ------------------
  ------------------
 2097|      5|               return size;
 2098|      5|            }
 2099|       |
 2100|    355|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALLOWED_NSSAI_PRESENT;
  ------------------
  |  |  719|    355|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALLOWED_NSSAI_PRESENT ((uint64_t)1<<3)
  ------------------
 2101|    355|            decoded += size;
 2102|    355|            break;
 2103|    388|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_AREA_LIST_TYPE:
  ------------------
  |  |  767|    388|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_AREA_LIST_TYPE 0x27
  ------------------
  |  Branch (2103:9): [True: 388, False: 42.8k]
  ------------------
 2104|    388|            size = ogs_nas_5gs_decode_service_area_list(&configuration_update_command->service_area_list, pkbuf);
 2105|    388|            if (size < 0) {
  ------------------
  |  Branch (2105:17): [True: 3, False: 385]
  ------------------
 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|    385|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_AREA_LIST_PRESENT;
  ------------------
  |  |  720|    385|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_AREA_LIST_PRESENT ((uint64_t)1<<4)
  ------------------
 2111|    385|            decoded += size;
 2112|    385|            break;
 2113|    247|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FULL_NAME_FOR_NETWORK_TYPE:
  ------------------
  |  |  768|    247|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FULL_NAME_FOR_NETWORK_TYPE 0x43
  ------------------
  |  Branch (2113:9): [True: 247, False: 42.9k]
  ------------------
 2114|    247|            size = ogs_nas_5gs_decode_network_name(&configuration_update_command->full_name_for_network, pkbuf);
 2115|    247|            if (size < 0) {
  ------------------
  |  Branch (2115:17): [True: 4, False: 243]
  ------------------
 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|    243|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FULL_NAME_FOR_NETWORK_PRESENT;
  ------------------
  |  |  721|    243|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FULL_NAME_FOR_NETWORK_PRESENT ((uint64_t)1<<5)
  ------------------
 2121|    243|            decoded += size;
 2122|    243|            break;
 2123|    221|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SHORT_NAME_FOR_NETWORK_TYPE:
  ------------------
  |  |  769|    221|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SHORT_NAME_FOR_NETWORK_TYPE 0x45
  ------------------
  |  Branch (2123:9): [True: 221, False: 42.9k]
  ------------------
 2124|    221|            size = ogs_nas_5gs_decode_network_name(&configuration_update_command->short_name_for_network, pkbuf);
 2125|    221|            if (size < 0) {
  ------------------
  |  Branch (2125:17): [True: 6, False: 215]
  ------------------
 2126|      6|               ogs_error("ogs_nas_5gs_decode_network_name() 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__) 
  |  |  ------------------
  ------------------
 2127|      6|               return size;
 2128|      6|            }
 2129|       |
 2130|    215|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SHORT_NAME_FOR_NETWORK_PRESENT;
  ------------------
  |  |  722|    215|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SHORT_NAME_FOR_NETWORK_PRESENT ((uint64_t)1<<6)
  ------------------
 2131|    215|            decoded += size;
 2132|    215|            break;
 2133|    275|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LOCAL_TIME_ZONE_TYPE:
  ------------------
  |  |  770|    275|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LOCAL_TIME_ZONE_TYPE 0x46
  ------------------
  |  Branch (2133:9): [True: 275, False: 42.9k]
  ------------------
 2134|    275|            size = ogs_nas_5gs_decode_time_zone(&configuration_update_command->local_time_zone, pkbuf);
 2135|    275|            if (size < 0) {
  ------------------
  |  Branch (2135:17): [True: 6, False: 269]
  ------------------
 2136|      6|               ogs_error("ogs_nas_5gs_decode_time_zone() 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__) 
  |  |  ------------------
  ------------------
 2137|      6|               return size;
 2138|      6|            }
 2139|       |
 2140|    269|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LOCAL_TIME_ZONE_PRESENT;
  ------------------
  |  |  723|    269|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LOCAL_TIME_ZONE_PRESENT ((uint64_t)1<<7)
  ------------------
 2141|    269|            decoded += size;
 2142|    269|            break;
 2143|    310|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UNIVERSAL_TIME_AND_LOCAL_TIME_ZONE_TYPE:
  ------------------
  |  |  771|    310|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UNIVERSAL_TIME_AND_LOCAL_TIME_ZONE_TYPE 0x47
  ------------------
  |  Branch (2143:9): [True: 310, False: 42.8k]
  ------------------
 2144|    310|            size = ogs_nas_5gs_decode_time_zone_and_time(&configuration_update_command->universal_time_and_local_time_zone, pkbuf);
 2145|    310|            if (size < 0) {
  ------------------
  |  Branch (2145:17): [True: 11, False: 299]
  ------------------
 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|    299|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UNIVERSAL_TIME_AND_LOCAL_TIME_ZONE_PRESENT;
  ------------------
  |  |  724|    299|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UNIVERSAL_TIME_AND_LOCAL_TIME_ZONE_PRESENT ((uint64_t)1<<8)
  ------------------
 2151|    299|            decoded += size;
 2152|    299|            break;
 2153|    355|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_DAYLIGHT_SAVING_TIME_TYPE:
  ------------------
  |  |  772|    355|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_DAYLIGHT_SAVING_TIME_TYPE 0x49
  ------------------
  |  Branch (2153:9): [True: 355, False: 42.8k]
  ------------------
 2154|    355|            size = ogs_nas_5gs_decode_daylight_saving_time(&configuration_update_command->network_daylight_saving_time, pkbuf);
 2155|    355|            if (size < 0) {
  ------------------
  |  Branch (2155:17): [True: 12, False: 343]
  ------------------
 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|    343|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_DAYLIGHT_SAVING_TIME_PRESENT;
  ------------------
  |  |  725|    343|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_DAYLIGHT_SAVING_TIME_PRESENT ((uint64_t)1<<9)
  ------------------
 2161|    343|            decoded += size;
 2162|    343|            break;
 2163|    260|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LADN_INFORMATION_TYPE:
  ------------------
  |  |  773|    260|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LADN_INFORMATION_TYPE 0x79
  ------------------
  |  Branch (2163:9): [True: 260, False: 42.9k]
  ------------------
 2164|    260|            size = ogs_nas_5gs_decode_ladn_information(&configuration_update_command->ladn_information, pkbuf);
 2165|    260|            if (size < 0) {
  ------------------
  |  Branch (2165:17): [True: 27, False: 233]
  ------------------
 2166|     27|               ogs_error("ogs_nas_5gs_decode_ladn_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__) 
  |  |  ------------------
  ------------------
 2167|     27|               return size;
 2168|     27|            }
 2169|       |
 2170|    233|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LADN_INFORMATION_PRESENT;
  ------------------
  |  |  726|    233|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LADN_INFORMATION_PRESENT ((uint64_t)1<<10)
  ------------------
 2171|    233|            decoded += size;
 2172|    233|            break;
 2173|    990|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_MICO_INDICATION_TYPE:
  ------------------
  |  |  774|    990|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_MICO_INDICATION_TYPE 0xB0
  ------------------
  |  Branch (2173:9): [True: 990, False: 42.2k]
  ------------------
 2174|    990|            decoded--;
 2175|    990|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    990|    do { \
  |  |  114|    990|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    990|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 990, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    990|        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|    990|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 990]
  |  |  ------------------
  ------------------
 2176|    990|            size = ogs_nas_5gs_decode_mico_indication(&configuration_update_command->mico_indication, pkbuf);
 2177|    990|            if (size < 0) {
  ------------------
  |  Branch (2177:17): [True: 0, False: 990]
  ------------------
 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|    990|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_MICO_INDICATION_PRESENT;
  ------------------
  |  |  727|    990|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_MICO_INDICATION_PRESENT ((uint64_t)1<<11)
  ------------------
 2183|    990|            decoded += size;
 2184|    990|            break;
 2185|  1.43k|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_SLICING_INDICATION_TYPE:
  ------------------
  |  |  775|  1.43k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_SLICING_INDICATION_TYPE 0x90
  ------------------
  |  Branch (2185:9): [True: 1.43k, False: 41.7k]
  ------------------
 2186|  1.43k|            decoded--;
 2187|  1.43k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.43k|    do { \
  |  |  114|  1.43k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.43k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.43k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.43k|        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.43k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.43k]
  |  |  ------------------
  ------------------
 2188|  1.43k|            size = ogs_nas_5gs_decode_network_slicing_indication(&configuration_update_command->network_slicing_indication, pkbuf);
 2189|  1.43k|            if (size < 0) {
  ------------------
  |  Branch (2189:17): [True: 0, False: 1.43k]
  ------------------
 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.43k|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_SLICING_INDICATION_PRESENT;
  ------------------
  |  |  728|  1.43k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NETWORK_SLICING_INDICATION_PRESENT ((uint64_t)1<<12)
  ------------------
 2195|  1.43k|            decoded += size;
 2196|  1.43k|            break;
 2197|    219|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CONFIGURED_NSSAI_TYPE:
  ------------------
  |  |  776|    219|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CONFIGURED_NSSAI_TYPE 0x31
  ------------------
  |  Branch (2197:9): [True: 219, False: 42.9k]
  ------------------
 2198|    219|            size = ogs_nas_5gs_decode_nssai(&configuration_update_command->configured_nssai, pkbuf);
 2199|    219|            if (size < 0) {
  ------------------
  |  Branch (2199:17): [True: 2, False: 217]
  ------------------
 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|    217|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CONFIGURED_NSSAI_PRESENT;
  ------------------
  |  |  729|    217|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CONFIGURED_NSSAI_PRESENT ((uint64_t)1<<13)
  ------------------
 2205|    217|            decoded += size;
 2206|    217|            break;
 2207|    287|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  777|    287|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_REJECTED_NSSAI_TYPE 0x11
  ------------------
  |  Branch (2207:9): [True: 287, False: 42.9k]
  ------------------
 2208|    287|            size = ogs_nas_5gs_decode_rejected_nssai(&configuration_update_command->rejected_nssai, pkbuf);
 2209|    287|            if (size < 0) {
  ------------------
  |  Branch (2209:17): [True: 5, False: 282]
  ------------------
 2210|      5|               ogs_error("ogs_nas_5gs_decode_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__) 
  |  |  ------------------
  ------------------
 2211|      5|               return size;
 2212|      5|            }
 2213|       |
 2214|    282|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  730|    282|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_REJECTED_NSSAI_PRESENT ((uint64_t)1<<14)
  ------------------
 2215|    282|            decoded += size;
 2216|    282|            break;
 2217|    252|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_TYPE:
  ------------------
  |  |  778|    252|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_TYPE 0x76
  ------------------
  |  Branch (2217:9): [True: 252, False: 42.9k]
  ------------------
 2218|    252|            size = ogs_nas_5gs_decode_operator_defined_access_category_definitions(&configuration_update_command->operator_defined_access_category_definitions, pkbuf);
 2219|    252|            if (size < 0) {
  ------------------
  |  Branch (2219:17): [True: 22, False: 230]
  ------------------
 2220|     22|               ogs_error("ogs_nas_5gs_decode_operator_defined_access_category_definitions() 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__) 
  |  |  ------------------
  ------------------
 2221|     22|               return size;
 2222|     22|            }
 2223|       |
 2224|    230|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_PRESENT;
  ------------------
  |  |  731|    230|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS_PRESENT ((uint64_t)1<<15)
  ------------------
 2225|    230|            decoded += size;
 2226|    230|            break;
 2227|  6.09k|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SMS_INDICATION_TYPE:
  ------------------
  |  |  779|  6.09k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SMS_INDICATION_TYPE 0xF0
  ------------------
  |  Branch (2227:9): [True: 6.09k, False: 37.0k]
  ------------------
 2228|  6.09k|            decoded--;
 2229|  6.09k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  6.09k|    do { \
  |  |  114|  6.09k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  6.09k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 6.09k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  6.09k|        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|  6.09k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 6.09k]
  |  |  ------------------
  ------------------
 2230|  6.09k|            size = ogs_nas_5gs_decode_sms_indication(&configuration_update_command->sms_indication, pkbuf);
 2231|  6.09k|            if (size < 0) {
  ------------------
  |  Branch (2231:17): [True: 0, False: 6.09k]
  ------------------
 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|  6.09k|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SMS_INDICATION_PRESENT;
  ------------------
  |  |  732|  6.09k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SMS_INDICATION_PRESENT ((uint64_t)1<<16)
  ------------------
 2237|  6.09k|            decoded += size;
 2238|  6.09k|            break;
 2239|    222|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_T3447_VALUE_TYPE:
  ------------------
  |  |  780|    222|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_T3447_VALUE_TYPE 0x6C
  ------------------
  |  Branch (2239:9): [True: 222, False: 42.9k]
  ------------------
 2240|    222|            size = ogs_nas_5gs_decode_gprs_timer_3(&configuration_update_command->t3447_value, pkbuf);
 2241|    222|            if (size < 0) {
  ------------------
  |  Branch (2241:17): [True: 7, False: 215]
  ------------------
 2242|      7|               ogs_error("ogs_nas_5gs_decode_gprs_timer_3() 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__) 
  |  |  ------------------
  ------------------
 2243|      7|               return size;
 2244|      7|            }
 2245|       |
 2246|    215|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_T3447_VALUE_PRESENT;
  ------------------
  |  |  733|    215|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_T3447_VALUE_PRESENT ((uint64_t)1<<17)
  ------------------
 2247|    215|            decoded += size;
 2248|    215|            break;
 2249|    286|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  781|    286|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CAG_INFORMATION_LIST_TYPE 0x75
  ------------------
  |  Branch (2249:9): [True: 286, False: 42.9k]
  ------------------
 2250|    286|            size = ogs_nas_5gs_decode_cag_information_list(&configuration_update_command->cag_information_list, pkbuf);
 2251|    286|            if (size < 0) {
  ------------------
  |  Branch (2251:17): [True: 15, False: 271]
  ------------------
 2252|     15|               ogs_error("ogs_nas_5gs_decode_cag_information_list() 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__) 
  |  |  ------------------
  ------------------
 2253|     15|               return size;
 2254|     15|            }
 2255|       |
 2256|    271|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  734|    271|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<18)
  ------------------
 2257|    271|            decoded += size;
 2258|    271|            break;
 2259|    222|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_TYPE:
  ------------------
  |  |  782|    222|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_TYPE 0x67
  ------------------
  |  Branch (2259:9): [True: 222, False: 42.9k]
  ------------------
 2260|    222|            size = ogs_nas_5gs_decode_ue_radio_capability_id(&configuration_update_command->ue_radio_capability_id, pkbuf);
 2261|    222|            if (size < 0) {
  ------------------
  |  Branch (2261:17): [True: 6, False: 216]
  ------------------
 2262|      6|               ogs_error("ogs_nas_5gs_decode_ue_radio_capability_id() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2263|      6|               return size;
 2264|      6|            }
 2265|       |
 2266|    216|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_PRESENT;
  ------------------
  |  |  735|    216|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_PRESENT ((uint64_t)1<<19)
  ------------------
 2267|    216|            decoded += size;
 2268|    216|            break;
 2269|    935|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_TYPE:
  ------------------
  |  |  783|    935|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_TYPE 0xA0
  ------------------
  |  Branch (2269:9): [True: 935, False: 42.2k]
  ------------------
 2270|    935|            decoded--;
 2271|    935|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    935|    do { \
  |  |  114|    935|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    935|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 935, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    935|        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|    935|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 935]
  |  |  ------------------
  ------------------
 2272|    935|            size = ogs_nas_5gs_decode_ue_radio_capability_id_deletion_indication(&configuration_update_command->ue_radio_capability_id_deletion_indication, pkbuf);
 2273|    935|            if (size < 0) {
  ------------------
  |  Branch (2273:17): [True: 0, False: 935]
  ------------------
 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|    935|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_PRESENT;
  ------------------
  |  |  736|    935|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UE_RADIO_CAPABILITY_ID_DELETION_INDICATION_PRESENT ((uint64_t)1<<20)
  ------------------
 2279|    935|            decoded += size;
 2280|    935|            break;
 2281|    201|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5GS_REGISTRATION_RESULT_TYPE:
  ------------------
  |  |  784|    201|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5GS_REGISTRATION_RESULT_TYPE 0x44
  ------------------
  |  Branch (2281:9): [True: 201, False: 42.9k]
  ------------------
 2282|    201|            size = ogs_nas_5gs_decode_5gs_registration_result(&configuration_update_command->registration_result, pkbuf);
 2283|    201|            if (size < 0) {
  ------------------
  |  Branch (2283:17): [True: 1, False: 200]
  ------------------
 2284|      1|               ogs_error("ogs_nas_5gs_decode_5gs_registration_result() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2285|      1|               return size;
 2286|      1|            }
 2287|       |
 2288|    200|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5GS_REGISTRATION_RESULT_PRESENT;
  ------------------
  |  |  737|    200|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_5GS_REGISTRATION_RESULT_PRESENT ((uint64_t)1<<21)
  ------------------
 2289|    200|            decoded += size;
 2290|    200|            break;
 2291|    262|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TRUNCATED_5G_S_TMSI_CONFIGURATION_TYPE:
  ------------------
  |  |  785|    262|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TRUNCATED_5G_S_TMSI_CONFIGURATION_TYPE 0x1B
  ------------------
  |  Branch (2291:9): [True: 262, False: 42.9k]
  ------------------
 2292|    262|            size = ogs_nas_5gs_decode_truncated_5g_s_tmsi_configuration(&configuration_update_command->truncated_s_tmsi_configuration, pkbuf);
 2293|    262|            if (size < 0) {
  ------------------
  |  Branch (2293:17): [True: 6, False: 256]
  ------------------
 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|    256|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TRUNCATED_5G_S_TMSI_CONFIGURATION_PRESENT;
  ------------------
  |  |  738|    256|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_TRUNCATED_5G_S_TMSI_CONFIGURATION_PRESENT ((uint64_t)1<<22)
  ------------------
 2299|    256|            decoded += size;
 2300|    256|            break;
 2301|  1.78k|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ADDITIONAL_CONFIGURATION_INDICATION_TYPE:
  ------------------
  |  |  786|  1.78k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ADDITIONAL_CONFIGURATION_INDICATION_TYPE 0xC0
  ------------------
  |  Branch (2301:9): [True: 1.78k, False: 41.4k]
  ------------------
 2302|  1.78k|            decoded--;
 2303|  1.78k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.78k|    do { \
  |  |  114|  1.78k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.78k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.78k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.78k|        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.78k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.78k]
  |  |  ------------------
  ------------------
 2304|  1.78k|            size = ogs_nas_5gs_decode_additional_configuration_indication(&configuration_update_command->additional_configuration_indication, pkbuf);
 2305|  1.78k|            if (size < 0) {
  ------------------
  |  Branch (2305:17): [True: 0, False: 1.78k]
  ------------------
 2306|      0|               ogs_error("ogs_nas_5gs_decode_additional_configuration_indication() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2307|      0|               return size;
 2308|      0|            }
 2309|       |
 2310|  1.78k|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ADDITIONAL_CONFIGURATION_INDICATION_PRESENT;
  ------------------
  |  |  739|  1.78k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ADDITIONAL_CONFIGURATION_INDICATION_PRESENT ((uint64_t)1<<23)
  ------------------
 2311|  1.78k|            decoded += size;
 2312|  1.78k|            break;
 2313|    365|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  787|    365|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_REJECTED_NSSAI_TYPE 0x68
  ------------------
  |  Branch (2313:9): [True: 365, False: 42.8k]
  ------------------
 2314|    365|            size = ogs_nas_5gs_decode_extended_rejected_nssai(&configuration_update_command->extended_rejected_nssai, pkbuf);
 2315|    365|            if (size < 0) {
  ------------------
  |  Branch (2315:17): [True: 5, False: 360]
  ------------------
 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|    360|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  740|    360|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_REJECTED_NSSAI_PRESENT ((uint64_t)1<<24)
  ------------------
 2321|    360|            decoded += size;
 2322|    360|            break;
 2323|    245|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  |  788|    245|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (2323:9): [True: 245, False: 42.9k]
  ------------------
 2324|    245|            size = ogs_nas_5gs_decode_service_level_aa_container(&configuration_update_command->service_level_aa_container, pkbuf);
 2325|    245|            if (size < 0) {
  ------------------
  |  Branch (2325:17): [True: 17, False: 228]
  ------------------
 2326|     17|               ogs_error("ogs_nas_5gs_decode_service_level_aa_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__) 
  |  |  ------------------
  ------------------
 2327|     17|               return size;
 2328|     17|            }
 2329|       |
 2330|    228|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  |  741|    228|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<25)
  ------------------
 2331|    228|            decoded += size;
 2332|    228|            break;
 2333|    240|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSSRG_INFORMATION_TYPE:
  ------------------
  |  |  789|    240|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSSRG_INFORMATION_TYPE 0x70
  ------------------
  |  Branch (2333:9): [True: 240, False: 42.9k]
  ------------------
 2334|    240|            size = ogs_nas_5gs_decode_nssrg_information(&configuration_update_command->nssrg_information, pkbuf);
 2335|    240|            if (size < 0) {
  ------------------
  |  Branch (2335:17): [True: 8, False: 232]
  ------------------
 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|    232|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSSRG_INFORMATION_PRESENT;
  ------------------
  |  |  742|    232|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSSRG_INFORMATION_PRESENT ((uint64_t)1<<26)
  ------------------
 2341|    232|            decoded += size;
 2342|    232|            break;
 2343|    289|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_ROAMING_WAIT_RANGE_TYPE:
  ------------------
  |  |  790|    289|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_ROAMING_WAIT_RANGE_TYPE 0x14
  ------------------
  |  Branch (2343:9): [True: 289, False: 42.9k]
  ------------------
 2344|    289|            size = ogs_nas_5gs_decode_registration_wait_range(&configuration_update_command->disaster_roaming_wait_range, pkbuf);
 2345|    289|            if (size < 0) {
  ------------------
  |  Branch (2345:17): [True: 3, False: 286]
  ------------------
 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|    286|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_ROAMING_WAIT_RANGE_PRESENT;
  ------------------
  |  |  743|    286|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_ROAMING_WAIT_RANGE_PRESENT ((uint64_t)1<<27)
  ------------------
 2351|    286|            decoded += size;
 2352|    286|            break;
 2353|    228|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_RETURN_WAIT_RANGE_TYPE:
  ------------------
  |  |  791|    228|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_RETURN_WAIT_RANGE_TYPE 0x2C
  ------------------
  |  Branch (2353:9): [True: 228, False: 42.9k]
  ------------------
 2354|    228|            size = ogs_nas_5gs_decode_registration_wait_range(&configuration_update_command->disaster_return_wait_range, pkbuf);
 2355|    228|            if (size < 0) {
  ------------------
  |  Branch (2355:17): [True: 10, False: 218]
  ------------------
 2356|     10|               ogs_error("ogs_nas_5gs_decode_registration_wait_range() 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__) 
  |  |  ------------------
  ------------------
 2357|     10|               return size;
 2358|     10|            }
 2359|       |
 2360|    218|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_RETURN_WAIT_RANGE_PRESENT;
  ------------------
  |  |  744|    218|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISASTER_RETURN_WAIT_RANGE_PRESENT ((uint64_t)1<<28)
  ------------------
 2361|    218|            decoded += size;
 2362|    218|            break;
 2363|    456|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION_TYPE:
  ------------------
  |  |  792|    456|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION_TYPE 0x13
  ------------------
  |  Branch (2363:9): [True: 456, False: 42.7k]
  ------------------
 2364|    456|            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|    456|            if (size < 0) {
  ------------------
  |  Branch (2365:17): [True: 4, False: 452]
  ------------------
 2366|      4|               ogs_error("ogs_nas_5gs_decode_list_of_plmns_to_be_used_in_disaster_condition() 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__) 
  |  |  ------------------
  ------------------
 2367|      4|               return size;
 2368|      4|            }
 2369|       |
 2370|    452|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION_PRESENT;
  ------------------
  |  |  745|    452|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION_PRESENT ((uint64_t)1<<29)
  ------------------
 2371|    452|            decoded += size;
 2372|    452|            break;
 2373|    238|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_CAG_INFORMATION_LIST_TYPE:
  ------------------
  |  |  793|    238|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_CAG_INFORMATION_LIST_TYPE 0x71
  ------------------
  |  Branch (2373:9): [True: 238, False: 42.9k]
  ------------------
 2374|    238|            size = ogs_nas_5gs_decode_extended_cag_information_list(&configuration_update_command->extended_cag_information_list, pkbuf);
 2375|    238|            if (size < 0) {
  ------------------
  |  Branch (2375:17): [True: 19, False: 219]
  ------------------
 2376|     19|               ogs_error("ogs_nas_5gs_decode_extended_cag_information_list() 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__) 
  |  |  ------------------
  ------------------
 2377|     19|               return size;
 2378|     19|            }
 2379|       |
 2380|    219|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_CAG_INFORMATION_LIST_PRESENT;
  ------------------
  |  |  746|    219|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_CAG_INFORMATION_LIST_PRESENT ((uint64_t)1<<30)
  ------------------
 2381|    219|            decoded += size;
 2382|    219|            break;
 2383|    238|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_PEIPS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  794|    238|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_PEIPS_ASSISTANCE_INFORMATION_TYPE 0x1F
  ------------------
  |  Branch (2383:9): [True: 238, False: 42.9k]
  ------------------
 2384|    238|            size = ogs_nas_5gs_decode_peips_assistance_information(&configuration_update_command->updated_peips_assistance_information, pkbuf);
 2385|    238|            if (size < 0) {
  ------------------
  |  Branch (2385:17): [True: 5, False: 233]
  ------------------
 2386|      5|               ogs_error("ogs_nas_5gs_decode_peips_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__) 
  |  |  ------------------
  ------------------
 2387|      5|               return size;
 2388|      5|            }
 2389|       |
 2390|    233|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_PEIPS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  747|    233|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_PEIPS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<31)
  ------------------
 2391|    233|            decoded += size;
 2392|    233|            break;
 2393|    265|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSAG_INFORMATION_TYPE:
  ------------------
  |  |  795|    265|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSAG_INFORMATION_TYPE 0x73
  ------------------
  |  Branch (2393:9): [True: 265, False: 42.9k]
  ------------------
 2394|    265|            size = ogs_nas_5gs_decode_nsag_information(&configuration_update_command->nsag_information, pkbuf);
 2395|    265|            if (size < 0) {
  ------------------
  |  Branch (2395:17): [True: 27, False: 238]
  ------------------
 2396|     27|               ogs_error("ogs_nas_5gs_decode_nsag_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__) 
  |  |  ------------------
  ------------------
 2397|     27|               return size;
 2398|     27|            }
 2399|       |
 2400|    238|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSAG_INFORMATION_PRESENT;
  ------------------
  |  |  748|    238|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_NSAG_INFORMATION_PRESENT ((uint64_t)1<<32)
  ------------------
 2401|    238|            decoded += size;
 2402|    238|            break;
 2403|  1.58k|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PRIORITY_INDICATOR_TYPE:
  ------------------
  |  |  796|  1.58k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PRIORITY_INDICATOR_TYPE 0xE0
  ------------------
  |  Branch (2403:9): [True: 1.58k, False: 41.6k]
  ------------------
 2404|  1.58k|            decoded--;
 2405|  1.58k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.58k|    do { \
  |  |  114|  1.58k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.58k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.58k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.58k|        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.58k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.58k]
  |  |  ------------------
  ------------------
 2406|  1.58k|            size = ogs_nas_5gs_decode_priority_indicator(&configuration_update_command->priority_indicator, pkbuf);
 2407|  1.58k|            if (size < 0) {
  ------------------
  |  Branch (2407:17): [True: 0, False: 1.58k]
  ------------------
 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.58k|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PRIORITY_INDICATOR_PRESENT;
  ------------------
  |  |  749|  1.58k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PRIORITY_INDICATOR_PRESENT ((uint64_t)1<<33)
  ------------------
 2413|  1.58k|            decoded += size;
 2414|  1.58k|            break;
 2415|    214|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_RAN_TIMING_SYNCHRONIZATION_TYPE:
  ------------------
  |  |  797|    214|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_RAN_TIMING_SYNCHRONIZATION_TYPE 0x4B
  ------------------
  |  Branch (2415:9): [True: 214, False: 42.9k]
  ------------------
 2416|    214|            size = ogs_nas_5gs_decode_ran_timing_synchronization(&configuration_update_command->ran_timing_synchronization, pkbuf);
 2417|    214|            if (size < 0) {
  ------------------
  |  Branch (2417:17): [True: 6, False: 208]
  ------------------
 2418|      6|               ogs_error("ogs_nas_5gs_decode_ran_timing_synchronization() 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__) 
  |  |  ------------------
  ------------------
 2419|      6|               return size;
 2420|      6|            }
 2421|       |
 2422|    208|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_RAN_TIMING_SYNCHRONIZATION_PRESENT;
  ------------------
  |  |  750|    208|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_RAN_TIMING_SYNCHRONIZATION_PRESENT ((uint64_t)1<<34)
  ------------------
 2423|    208|            decoded += size;
 2424|    208|            break;
 2425|    271|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_LADN_INFORMATION_TYPE:
  ------------------
  |  |  798|    271|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_LADN_INFORMATION_TYPE 0x78
  ------------------
  |  Branch (2425:9): [True: 271, False: 42.9k]
  ------------------
 2426|    271|            size = ogs_nas_5gs_decode_extended_ladn_information(&configuration_update_command->extended_ladn_information, pkbuf);
 2427|    271|            if (size < 0) {
  ------------------
  |  Branch (2427:17): [True: 17, False: 254]
  ------------------
 2428|     17|               ogs_error("ogs_nas_5gs_decode_extended_ladn_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__) 
  |  |  ------------------
  ------------------
 2429|     17|               return size;
 2430|     17|            }
 2431|       |
 2432|    254|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_LADN_INFORMATION_PRESENT;
  ------------------
  |  |  751|    254|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_EXTENDED_LADN_INFORMATION_PRESENT ((uint64_t)1<<35)
  ------------------
 2433|    254|            decoded += size;
 2434|    254|            break;
 2435|    352|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALTERNATIVE_NSSAI_TYPE:
  ------------------
  |  |  799|    352|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALTERNATIVE_NSSAI_TYPE 0x4C
  ------------------
  |  Branch (2435:9): [True: 352, False: 42.8k]
  ------------------
 2436|    352|            size = ogs_nas_5gs_decode_alternative_nssai(&configuration_update_command->alternative_nssai, pkbuf);
 2437|    352|            if (size < 0) {
  ------------------
  |  Branch (2437:17): [True: 8, False: 344]
  ------------------
 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|    344|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALTERNATIVE_NSSAI_PRESENT;
  ------------------
  |  |  752|    344|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ALTERNATIVE_NSSAI_PRESENT ((uint64_t)1<<36)
  ------------------
 2443|    344|            decoded += size;
 2444|    344|            break;
 2445|    287|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_LOCATION_VALIDITY_INFORMATION_TYPE:
  ------------------
  |  |  800|    287|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_LOCATION_VALIDITY_INFORMATION_TYPE 0x7B
  ------------------
  |  Branch (2445:9): [True: 287, False: 42.9k]
  ------------------
 2446|    287|            size = ogs_nas_5gs_decode_s_nssai_location_validity_information(&configuration_update_command->s_nssai_location_validity_information, pkbuf);
 2447|    287|            if (size < 0) {
  ------------------
  |  Branch (2447:17): [True: 24, False: 263]
  ------------------
 2448|     24|               ogs_error("ogs_nas_5gs_decode_s_nssai_location_validity_information() failed");
  ------------------
  |  |   36|     24|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     24|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     24|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     24|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     24|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     24|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2449|     24|               return size;
 2450|     24|            }
 2451|       |
 2452|    263|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_LOCATION_VALIDITY_INFORMATION_PRESENT;
  ------------------
  |  |  753|    263|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_LOCATION_VALIDITY_INFORMATION_PRESENT ((uint64_t)1<<37)
  ------------------
 2453|    263|            decoded += size;
 2454|    263|            break;
 2455|    257|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_TIME_VALIDITY_INFORMATION_TYPE:
  ------------------
  |  |  801|    257|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_TIME_VALIDITY_INFORMATION_TYPE 0x5B
  ------------------
  |  Branch (2455:9): [True: 257, False: 42.9k]
  ------------------
 2456|    257|            size = ogs_nas_5gs_decode_s_nssai_time_validity_information(&configuration_update_command->s_nssai_time_validity_information, pkbuf);
 2457|    257|            if (size < 0) {
  ------------------
  |  Branch (2457:17): [True: 6, False: 251]
  ------------------
 2458|      6|               ogs_error("ogs_nas_5gs_decode_s_nssai_time_validity_information() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2459|      6|               return size;
 2460|      6|            }
 2461|       |
 2462|    251|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_TIME_VALIDITY_INFORMATION_PRESENT;
  ------------------
  |  |  754|    251|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_S_NSSAI_TIME_VALIDITY_INFORMATION_PRESENT ((uint64_t)1<<38)
  ------------------
 2463|    251|            decoded += size;
 2464|    251|            break;
 2465|    232|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_TYPE:
  ------------------
  |  |  802|    232|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_TYPE 0x4F
  ------------------
  |  Branch (2465:9): [True: 232, False: 42.9k]
  ------------------
 2466|    232|            size = ogs_nas_5gs_decode_gprs_timer_3(&configuration_update_command->discontinuous_coverage_maximum_time_offset, pkbuf);
 2467|    232|            if (size < 0) {
  ------------------
  |  Branch (2467:17): [True: 4, False: 228]
  ------------------
 2468|      4|               ogs_error("ogs_nas_5gs_decode_gprs_timer_3() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2469|      4|               return size;
 2470|      4|            }
 2471|       |
 2472|    228|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_PRESENT;
  ------------------
  |  |  755|    228|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_DISCONTINUOUS_COVERAGE_MAXIMUM_TIME_OFFSET_PRESENT ((uint64_t)1<<39)
  ------------------
 2473|    228|            decoded += size;
 2474|    228|            break;
 2475|    362|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_ALLOWED_NSSAI_TYPE:
  ------------------
  |  |  803|    362|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_ALLOWED_NSSAI_TYPE 0x74
  ------------------
  |  Branch (2475:9): [True: 362, False: 42.8k]
  ------------------
 2476|    362|            size = ogs_nas_5gs_decode_partial_nssai(&configuration_update_command->partially_allowed_nssai, pkbuf);
 2477|    362|            if (size < 0) {
  ------------------
  |  Branch (2477:17): [True: 15, False: 347]
  ------------------
 2478|     15|               ogs_error("ogs_nas_5gs_decode_partial_nssai() 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__) 
  |  |  ------------------
  ------------------
 2479|     15|               return size;
 2480|     15|            }
 2481|       |
 2482|    347|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_ALLOWED_NSSAI_PRESENT;
  ------------------
  |  |  756|    347|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_ALLOWED_NSSAI_PRESENT ((uint64_t)1<<40)
  ------------------
 2483|    347|            decoded += size;
 2484|    347|            break;
 2485|    276|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_REJECTED_NSSAI_TYPE:
  ------------------
  |  |  804|    276|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_REJECTED_NSSAI_TYPE 0x7A
  ------------------
  |  Branch (2485:9): [True: 276, False: 42.9k]
  ------------------
 2486|    276|            size = ogs_nas_5gs_decode_partial_nssai(&configuration_update_command->partially_rejected_nssai, pkbuf);
 2487|    276|            if (size < 0) {
  ------------------
  |  Branch (2487:17): [True: 12, False: 264]
  ------------------
 2488|     12|               ogs_error("ogs_nas_5gs_decode_partial_nssai() failed");
  ------------------
  |  |   36|     12|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     12|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     12|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     12|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     12|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     12|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2489|     12|               return size;
 2490|     12|            }
 2491|       |
 2492|    264|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_REJECTED_NSSAI_PRESENT;
  ------------------
  |  |  757|    264|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_PARTIALLY_REJECTED_NSSAI_PRESENT ((uint64_t)1<<41)
  ------------------
 2493|    264|            decoded += size;
 2494|    264|            break;
 2495|    245|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FEATURE_AUTHORIZATION_INDICATION_TYPE:
  ------------------
  |  |  805|    245|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FEATURE_AUTHORIZATION_INDICATION_TYPE 0x5C
  ------------------
  |  Branch (2495:9): [True: 245, False: 42.9k]
  ------------------
 2496|    245|            size = ogs_nas_5gs_decode_feature_authorization_indication(&configuration_update_command->feature_authorization_indication, pkbuf);
 2497|    245|            if (size < 0) {
  ------------------
  |  Branch (2497:17): [True: 13, False: 232]
  ------------------
 2498|     13|               ogs_error("ogs_nas_5gs_decode_feature_authorization_indication() 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__) 
  |  |  ------------------
  ------------------
 2499|     13|               return size;
 2500|     13|            }
 2501|       |
 2502|    232|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FEATURE_AUTHORIZATION_INDICATION_PRESENT;
  ------------------
  |  |  758|    232|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_FEATURE_AUTHORIZATION_INDICATION_PRESENT ((uint64_t)1<<42)
  ------------------
 2503|    232|            decoded += size;
 2504|    232|            break;
 2505|    417|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ON_DEMAND_NSSAI_TYPE:
  ------------------
  |  |  806|    417|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ON_DEMAND_NSSAI_TYPE 0x61
  ------------------
  |  Branch (2505:9): [True: 417, False: 42.7k]
  ------------------
 2506|    417|            size = ogs_nas_5gs_decode_on_demand_nssai(&configuration_update_command->on_demand_nssai, pkbuf);
 2507|    417|            if (size < 0) {
  ------------------
  |  Branch (2507:17): [True: 16, False: 401]
  ------------------
 2508|     16|               ogs_error("ogs_nas_5gs_decode_on_demand_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__) 
  |  |  ------------------
  ------------------
 2509|     16|               return size;
 2510|     16|            }
 2511|       |
 2512|    401|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ON_DEMAND_NSSAI_PRESENT;
  ------------------
  |  |  759|    401|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ON_DEMAND_NSSAI_PRESENT ((uint64_t)1<<43)
  ------------------
 2513|    401|            decoded += size;
 2514|    401|            break;
 2515|    228|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE:
  ------------------
  |  |  807|    228|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_TYPE 0x63
  ------------------
  |  Branch (2515:9): [True: 228, False: 42.9k]
  ------------------
 2516|    228|            size = ogs_nas_5gs_decode_access_technology_utilization_control(&configuration_update_command->access_technology_utilization_control, pkbuf);
 2517|    228|            if (size < 0) {
  ------------------
  |  Branch (2517:17): [True: 8, False: 220]
  ------------------
 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|    220|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT;
  ------------------
  |  |  760|    220|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_ACCESS_TECHNOLOGY_UTILIZATION_CONTROL_PRESENT ((uint64_t)1<<44)
  ------------------
 2523|    220|            decoded += size;
 2524|    220|            break;
 2525|    216|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_LP_WUSPS_ASSISTANCE_INFORMATION_TYPE:
  ------------------
  |  |  808|    216|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_LP_WUSPS_ASSISTANCE_INFORMATION_TYPE 0x64
  ------------------
  |  Branch (2525:9): [True: 216, False: 42.9k]
  ------------------
 2526|    216|            size = ogs_nas_5gs_decode_lp_wusps_assistance_information(&configuration_update_command->updated_lp_wusps_assistance_information, pkbuf);
 2527|    216|            if (size < 0) {
  ------------------
  |  Branch (2527:17): [True: 7, False: 209]
  ------------------
 2528|      7|               ogs_error("ogs_nas_5gs_decode_lp_wusps_assistance_information() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2529|      7|               return size;
 2530|      7|            }
 2531|       |
 2532|    209|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_LP_WUSPS_ASSISTANCE_INFORMATION_PRESENT;
  ------------------
  |  |  761|    209|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_UPDATED_LP_WUSPS_ASSISTANCE_INFORMATION_PRESENT ((uint64_t)1<<45)
  ------------------
 2533|    209|            decoded += size;
 2534|    209|            break;
 2535|  1.40k|        case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LP_WUS_STATUS_TYPE:
  ------------------
  |  |  809|  1.40k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LP_WUS_STATUS_TYPE 0x80
  ------------------
  |  Branch (2535:9): [True: 1.40k, False: 41.7k]
  ------------------
 2536|  1.40k|            decoded--;
 2537|  1.40k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.40k|    do { \
  |  |  114|  1.40k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.40k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.40k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.40k|        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.40k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.40k]
  |  |  ------------------
  ------------------
 2538|  1.40k|            size = ogs_nas_5gs_decode_lp_wus_status(&configuration_update_command->lp_wus_status, pkbuf);
 2539|  1.40k|            if (size < 0) {
  ------------------
  |  Branch (2539:17): [True: 0, False: 1.40k]
  ------------------
 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.40k|            configuration_update_command->presencemask |= OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LP_WUS_STATUS_PRESENT;
  ------------------
  |  |  762|  1.40k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND_LP_WUS_STATUS_PRESENT ((uint64_t)1<<46)
  ------------------
 2545|  1.40k|            decoded += size;
 2546|  1.40k|            break;
 2547|  16.6k|        default:
  ------------------
  |  Branch (2547:9): [True: 16.6k, False: 26.5k]
  ------------------
 2548|  16.6k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  16.6k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  16.6k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  16.6k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  16.6k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  16.6k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  16.6k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2549|  16.6k|            break;
 2550|  43.1k|        }
 2551|  43.1k|    }
 2552|       |
 2553|    753|    return decoded;
 2554|  1.13k|}
ogs_nas_5gs_decode_authentication_request:
 2557|    102|{
 2558|    102|    ogs_nas_5gs_authentication_request_t *authentication_request = &message->gmm.authentication_request;
 2559|    102|    int decoded = 0;
 2560|    102|    int size = 0;
 2561|       |
 2562|    102|    ogs_trace("[NAS] Decode AUTHENTICATION_REQUEST\n");
  ------------------
  |  |   40|    102|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    102|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    102|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    102|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    102|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    102|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2563|       |
 2564|    102|    size = ogs_nas_5gs_decode_key_set_identifier(&authentication_request->ngksi, pkbuf);
 2565|    102|    if (size < 0) {
  ------------------
  |  Branch (2565:9): [True: 0, False: 102]
  ------------------
 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|    102|    decoded += size;
 2571|       |
 2572|    102|    size = ogs_nas_5gs_decode_abba(&authentication_request->abba, pkbuf);
 2573|    102|    if (size < 0) {
  ------------------
  |  Branch (2573:9): [True: 9, False: 93]
  ------------------
 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|     93|    decoded += size;
 2579|       |
 2580|  5.01k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (2580:12): [True: 4.94k, False: 71]
  ------------------
 2581|  4.94k|        uint8_t *buffer = pkbuf->data;
 2582|  4.94k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (2582:24): [True: 1.29k, False: 3.65k]
  ------------------
 2583|       |
 2584|  4.94k|        size = sizeof(uint8_t);
 2585|  4.94k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2585:13): [True: 0, False: 4.94k]
  ------------------
 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|  4.94k|        decoded += size;
 2590|       |
 2591|  4.94k|        switch(type) {
 2592|    206|        case OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_RAND_TYPE:
  ------------------
  |  |  871|    206|#define OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_RAND_TYPE 0x21
  ------------------
  |  Branch (2592:9): [True: 206, False: 4.74k]
  ------------------
 2593|    206|            size = ogs_nas_5gs_decode_authentication_parameter_rand(&authentication_request->authentication_parameter_rand, pkbuf);
 2594|    206|            if (size < 0) {
  ------------------
  |  Branch (2594:17): [True: 13, False: 193]
  ------------------
 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|    193|            authentication_request->presencemask |= OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_RAND_PRESENT;
  ------------------
  |  |  868|    193|#define OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_RAND_PRESENT ((uint64_t)1<<0)
  ------------------
 2600|    193|            decoded += size;
 2601|    193|            break;
 2602|    240|        case OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_AUTN_TYPE:
  ------------------
  |  |  872|    240|#define OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_AUTN_TYPE 0x20
  ------------------
  |  Branch (2602:9): [True: 240, False: 4.70k]
  ------------------
 2603|    240|            size = ogs_nas_5gs_decode_authentication_parameter_autn(&authentication_request->authentication_parameter_autn, pkbuf);
 2604|    240|            if (size < 0) {
  ------------------
  |  Branch (2604:17): [True: 8, False: 232]
  ------------------
 2605|      8|               ogs_error("ogs_nas_5gs_decode_authentication_parameter_autn() 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__) 
  |  |  ------------------
  ------------------
 2606|      8|               return size;
 2607|      8|            }
 2608|       |
 2609|    232|            authentication_request->presencemask |= OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_AUTN_PRESENT;
  ------------------
  |  |  869|    232|#define OGS_NAS_5GS_AUTHENTICATION_REQUEST_AUTHENTICATION_PARAMETER_AUTN_PRESENT ((uint64_t)1<<1)
  ------------------
 2610|    232|            decoded += size;
 2611|    232|            break;
 2612|    196|        case OGS_NAS_5GS_AUTHENTICATION_REQUEST_EAP_MESSAGE_TYPE:
  ------------------
  |  |  873|    196|#define OGS_NAS_5GS_AUTHENTICATION_REQUEST_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (2612:9): [True: 196, False: 4.75k]
  ------------------
 2613|    196|            size = ogs_nas_5gs_decode_eap_message(&authentication_request->eap_message, pkbuf);
 2614|    196|            if (size < 0) {
  ------------------
  |  Branch (2614:17): [True: 1, False: 195]
  ------------------
 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|    195|            authentication_request->presencemask |= OGS_NAS_5GS_AUTHENTICATION_REQUEST_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  870|    195|#define OGS_NAS_5GS_AUTHENTICATION_REQUEST_EAP_MESSAGE_PRESENT ((uint64_t)1<<2)
  ------------------
 2620|    195|            decoded += size;
 2621|    195|            break;
 2622|  4.30k|        default:
  ------------------
  |  Branch (2622:9): [True: 4.30k, False: 642]
  ------------------
 2623|  4.30k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  4.30k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  4.30k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  4.30k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  4.30k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  4.30k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  4.30k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2624|  4.30k|            break;
 2625|  4.94k|        }
 2626|  4.94k|    }
 2627|       |
 2628|     71|    return decoded;
 2629|     93|}
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|  1.90k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (2639:12): [True: 1.84k, False: 60]
  ------------------
 2640|  1.84k|        uint8_t *buffer = pkbuf->data;
 2641|  1.84k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (2641:24): [True: 622, False: 1.22k]
  ------------------
 2642|       |
 2643|  1.84k|        size = sizeof(uint8_t);
 2644|  1.84k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2644:13): [True: 0, False: 1.84k]
  ------------------
 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|  1.84k|        decoded += size;
 2649|       |
 2650|  1.84k|        switch(type) {
 2651|    230|        case OGS_NAS_5GS_AUTHENTICATION_RESPONSE_AUTHENTICATION_RESPONSE_PARAMETER_TYPE:
  ------------------
  |  |  893|    230|#define OGS_NAS_5GS_AUTHENTICATION_RESPONSE_AUTHENTICATION_RESPONSE_PARAMETER_TYPE 0x2D
  ------------------
  |  Branch (2651:9): [True: 230, False: 1.61k]
  ------------------
 2652|    230|            size = ogs_nas_5gs_decode_authentication_response_parameter(&authentication_response->authentication_response_parameter, pkbuf);
 2653|    230|            if (size < 0) {
  ------------------
  |  Branch (2653:17): [True: 7, False: 223]
  ------------------
 2654|      7|               ogs_error("ogs_nas_5gs_decode_authentication_response_parameter() 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__) 
  |  |  ------------------
  ------------------
 2655|      7|               return size;
 2656|      7|            }
 2657|       |
 2658|    223|            authentication_response->presencemask |= OGS_NAS_5GS_AUTHENTICATION_RESPONSE_AUTHENTICATION_RESPONSE_PARAMETER_PRESENT;
  ------------------
  |  |  891|    223|#define OGS_NAS_5GS_AUTHENTICATION_RESPONSE_AUTHENTICATION_RESPONSE_PARAMETER_PRESENT ((uint64_t)1<<0)
  ------------------
 2659|    223|            decoded += size;
 2660|    223|            break;
 2661|    215|        case OGS_NAS_5GS_AUTHENTICATION_RESPONSE_EAP_MESSAGE_TYPE:
  ------------------
  |  |  894|    215|#define OGS_NAS_5GS_AUTHENTICATION_RESPONSE_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (2661:9): [True: 215, False: 1.63k]
  ------------------
 2662|    215|            size = ogs_nas_5gs_decode_eap_message(&authentication_response->eap_message, pkbuf);
 2663|    215|            if (size < 0) {
  ------------------
  |  Branch (2663:17): [True: 2, False: 213]
  ------------------
 2664|      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__) 
  |  |  ------------------
  ------------------
 2665|      2|               return size;
 2666|      2|            }
 2667|       |
 2668|    213|            authentication_response->presencemask |= OGS_NAS_5GS_AUTHENTICATION_RESPONSE_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  892|    213|#define OGS_NAS_5GS_AUTHENTICATION_RESPONSE_EAP_MESSAGE_PRESENT ((uint64_t)1<<1)
  ------------------
 2669|    213|            decoded += size;
 2670|    213|            break;
 2671|  1.40k|        default:
  ------------------
  |  Branch (2671:9): [True: 1.40k, False: 445]
  ------------------
 2672|  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__) 
  |  |  ------------------
  ------------------
 2673|  1.40k|            break;
 2674|  1.84k|        }
 2675|  1.84k|    }
 2676|       |
 2677|     60|    return decoded;
 2678|     69|}
ogs_nas_5gs_decode_authentication_reject:
 2681|     50|{
 2682|     50|    ogs_nas_5gs_authentication_reject_t *authentication_reject = &message->gmm.authentication_reject;
 2683|     50|    int decoded = 0;
 2684|     50|    int size = 0;
 2685|       |
 2686|     50|    ogs_trace("[NAS] Decode AUTHENTICATION_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__) 
  |  |  ------------------
  ------------------
 2687|       |
 2688|  1.79k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (2688:12): [True: 1.74k, False: 46]
  ------------------
 2689|  1.74k|        uint8_t *buffer = pkbuf->data;
 2690|  1.74k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (2690:24): [True: 806, False: 938]
  ------------------
 2691|       |
 2692|  1.74k|        size = sizeof(uint8_t);
 2693|  1.74k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2693:13): [True: 0, False: 1.74k]
  ------------------
 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.74k|        decoded += size;
 2698|       |
 2699|  1.74k|        switch(type) {
 2700|    210|        case OGS_NAS_5GS_AUTHENTICATION_REJECT_EAP_MESSAGE_TYPE:
  ------------------
  |  |  909|    210|#define OGS_NAS_5GS_AUTHENTICATION_REJECT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (2700:9): [True: 210, False: 1.53k]
  ------------------
 2701|    210|            size = ogs_nas_5gs_decode_eap_message(&authentication_reject->eap_message, pkbuf);
 2702|    210|            if (size < 0) {
  ------------------
  |  Branch (2702:17): [True: 4, False: 206]
  ------------------
 2703|      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__) 
  |  |  ------------------
  ------------------
 2704|      4|               return size;
 2705|      4|            }
 2706|       |
 2707|    206|            authentication_reject->presencemask |= OGS_NAS_5GS_AUTHENTICATION_REJECT_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  908|    206|#define OGS_NAS_5GS_AUTHENTICATION_REJECT_EAP_MESSAGE_PRESENT ((uint64_t)1<<0)
  ------------------
 2708|    206|            decoded += size;
 2709|    206|            break;
 2710|  1.53k|        default:
  ------------------
  |  Branch (2710:9): [True: 1.53k, False: 210]
  ------------------
 2711|  1.53k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.53k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.53k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.53k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.53k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.53k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.53k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2712|  1.53k|            break;
 2713|  1.74k|        }
 2714|  1.74k|    }
 2715|       |
 2716|     46|    return decoded;
 2717|     50|}
ogs_nas_5gs_decode_authentication_failure:
 2720|     51|{
 2721|     51|    ogs_nas_5gs_authentication_failure_t *authentication_failure = &message->gmm.authentication_failure;
 2722|     51|    int decoded = 0;
 2723|     51|    int size = 0;
 2724|       |
 2725|     51|    ogs_trace("[NAS] Decode AUTHENTICATION_FAILURE\n");
  ------------------
  |  |   40|     51|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     51|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     51|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     51|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     51|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     51|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2726|       |
 2727|     51|    size = ogs_nas_5gs_decode_5gmm_cause(&authentication_failure->gmm_cause, pkbuf);
 2728|     51|    if (size < 0) {
  ------------------
  |  Branch (2728:9): [True: 0, False: 51]
  ------------------
 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|     51|    decoded += size;
 2734|       |
 2735|  2.55k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (2735:12): [True: 2.51k, False: 46]
  ------------------
 2736|  2.51k|        uint8_t *buffer = pkbuf->data;
 2737|  2.51k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (2737:24): [True: 885, False: 1.62k]
  ------------------
 2738|       |
 2739|  2.51k|        size = sizeof(uint8_t);
 2740|  2.51k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2740:13): [True: 0, False: 2.51k]
  ------------------
 2741|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2742|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 2743|      0|        }
 2744|  2.51k|        decoded += size;
 2745|       |
 2746|  2.51k|        switch(type) {
 2747|    224|        case OGS_NAS_5GS_AUTHENTICATION_FAILURE_AUTHENTICATION_FAILURE_PARAMETER_TYPE:
  ------------------
  |  |  923|    224|#define OGS_NAS_5GS_AUTHENTICATION_FAILURE_AUTHENTICATION_FAILURE_PARAMETER_TYPE 0x30
  ------------------
  |  Branch (2747:9): [True: 224, False: 2.28k]
  ------------------
 2748|    224|            size = ogs_nas_5gs_decode_authentication_failure_parameter(&authentication_failure->authentication_failure_parameter, pkbuf);
 2749|    224|            if (size < 0) {
  ------------------
  |  Branch (2749:17): [True: 5, False: 219]
  ------------------
 2750|      5|               ogs_error("ogs_nas_5gs_decode_authentication_failure_parameter() 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__) 
  |  |  ------------------
  ------------------
 2751|      5|               return size;
 2752|      5|            }
 2753|       |
 2754|    219|            authentication_failure->presencemask |= OGS_NAS_5GS_AUTHENTICATION_FAILURE_AUTHENTICATION_FAILURE_PARAMETER_PRESENT;
  ------------------
  |  |  922|    219|#define OGS_NAS_5GS_AUTHENTICATION_FAILURE_AUTHENTICATION_FAILURE_PARAMETER_PRESENT ((uint64_t)1<<0)
  ------------------
 2755|    219|            decoded += size;
 2756|    219|            break;
 2757|  2.28k|        default:
  ------------------
  |  Branch (2757:9): [True: 2.28k, False: 224]
  ------------------
 2758|  2.28k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.28k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.28k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.28k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.28k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.28k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.28k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2759|  2.28k|            break;
 2760|  2.51k|        }
 2761|  2.51k|    }
 2762|       |
 2763|     46|    return decoded;
 2764|     51|}
ogs_nas_5gs_decode_authentication_result:
 2767|     72|{
 2768|     72|    ogs_nas_5gs_authentication_result_t *authentication_result = &message->gmm.authentication_result;
 2769|     72|    int decoded = 0;
 2770|     72|    int size = 0;
 2771|       |
 2772|     72|    ogs_trace("[NAS] Decode AUTHENTICATION_RESULT\n");
  ------------------
  |  |   40|     72|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     72|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     72|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     72|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     72|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     72|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2773|       |
 2774|     72|    size = ogs_nas_5gs_decode_key_set_identifier(&authentication_result->ngksi, pkbuf);
 2775|     72|    if (size < 0) {
  ------------------
  |  Branch (2775:9): [True: 0, False: 72]
  ------------------
 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|     72|    decoded += size;
 2781|       |
 2782|     72|    size = ogs_nas_5gs_decode_eap_message(&authentication_result->eap_message, pkbuf);
 2783|     72|    if (size < 0) {
  ------------------
  |  Branch (2783:9): [True: 13, False: 59]
  ------------------
 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|     59|    decoded += size;
 2789|       |
 2790|  3.20k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (2790:12): [True: 3.14k, False: 56]
  ------------------
 2791|  3.14k|        uint8_t *buffer = pkbuf->data;
 2792|  3.14k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (2792:24): [True: 757, False: 2.39k]
  ------------------
 2793|       |
 2794|  3.14k|        size = sizeof(uint8_t);
 2795|  3.14k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2795:13): [True: 0, False: 3.14k]
  ------------------
 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|  3.14k|        decoded += size;
 2800|       |
 2801|  3.14k|        switch(type) {
 2802|    204|        case OGS_NAS_5GS_AUTHENTICATION_RESULT_ABBA_TYPE:
  ------------------
  |  |  940|    204|#define OGS_NAS_5GS_AUTHENTICATION_RESULT_ABBA_TYPE 0x38
  ------------------
  |  Branch (2802:9): [True: 204, False: 2.94k]
  ------------------
 2803|    204|            size = ogs_nas_5gs_decode_abba(&authentication_result->abba, pkbuf);
 2804|    204|            if (size < 0) {
  ------------------
  |  Branch (2804:17): [True: 1, False: 203]
  ------------------
 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|    203|            authentication_result->presencemask |= OGS_NAS_5GS_AUTHENTICATION_RESULT_ABBA_PRESENT;
  ------------------
  |  |  938|    203|#define OGS_NAS_5GS_AUTHENTICATION_RESULT_ABBA_PRESENT ((uint64_t)1<<0)
  ------------------
 2810|    203|            decoded += size;
 2811|    203|            break;
 2812|    204|        case OGS_NAS_5GS_AUTHENTICATION_RESULT_AUN3_DEVICE_SECURITY_KEY_TYPE:
  ------------------
  |  |  941|    204|#define OGS_NAS_5GS_AUTHENTICATION_RESULT_AUN3_DEVICE_SECURITY_KEY_TYPE 0x55
  ------------------
  |  Branch (2812:9): [True: 204, False: 2.94k]
  ------------------
 2813|    204|            size = ogs_nas_5gs_decode_aun3_device_security_key(&authentication_result->aun3_device_security_key, pkbuf);
 2814|    204|            if (size < 0) {
  ------------------
  |  Branch (2814:17): [True: 2, False: 202]
  ------------------
 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|    202|            authentication_result->presencemask |= OGS_NAS_5GS_AUTHENTICATION_RESULT_AUN3_DEVICE_SECURITY_KEY_PRESENT;
  ------------------
  |  |  939|    202|#define OGS_NAS_5GS_AUTHENTICATION_RESULT_AUN3_DEVICE_SECURITY_KEY_PRESENT ((uint64_t)1<<1)
  ------------------
 2820|    202|            decoded += size;
 2821|    202|            break;
 2822|  2.74k|        default:
  ------------------
  |  Branch (2822:9): [True: 2.74k, False: 408]
  ------------------
 2823|  2.74k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.74k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 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__) 
  |  |  ------------------
  ------------------
 2824|  2.74k|            break;
 2825|  3.14k|        }
 2826|  3.14k|    }
 2827|       |
 2828|     56|    return decoded;
 2829|     59|}
ogs_nas_5gs_decode_identity_request:
 2832|      1|{
 2833|      1|    ogs_nas_5gs_identity_request_t *identity_request = &message->gmm.identity_request;
 2834|      1|    int decoded = 0;
 2835|      1|    int size = 0;
 2836|       |
 2837|      1|    ogs_trace("[NAS] Decode IDENTITY_REQUEST\n");
  ------------------
  |  |   40|      1|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2838|       |
 2839|      1|    size = ogs_nas_5gs_decode_5gs_identity_type(&identity_request->identity_type, pkbuf);
 2840|      1|    if (size < 0) {
  ------------------
  |  Branch (2840:9): [True: 0, False: 1]
  ------------------
 2841|      0|        ogs_error("ogs_nas_5gs_decode_5gs_identity_type() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2842|      0|        return size;
 2843|      0|    }
 2844|       |
 2845|      1|    decoded += size;
 2846|       |
 2847|      1|    return decoded;
 2848|      1|}
ogs_nas_5gs_decode_identity_response:
 2851|     18|{
 2852|     18|    ogs_nas_5gs_identity_response_t *identity_response = &message->gmm.identity_response;
 2853|     18|    int decoded = 0;
 2854|     18|    int size = 0;
 2855|       |
 2856|     18|    ogs_trace("[NAS] Decode IDENTITY_RESPONSE\n");
  ------------------
  |  |   40|     18|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 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__) 
  |  |  ------------------
  ------------------
 2857|       |
 2858|     18|    size = ogs_nas_5gs_decode_5gs_mobile_identity(&identity_response->mobile_identity, pkbuf);
 2859|     18|    if (size < 0) {
  ------------------
  |  Branch (2859:9): [True: 15, False: 3]
  ------------------
 2860|     15|        ogs_error("ogs_nas_5gs_decode_5gs_mobile_identity() failed");
  ------------------
  |  |   36|     15|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     15|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     15|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     15|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     15|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     15|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2861|     15|        return size;
 2862|     15|    }
 2863|       |
 2864|      3|    decoded += size;
 2865|       |
 2866|      3|    return decoded;
 2867|     18|}
ogs_nas_5gs_decode_security_mode_command:
 2870|    144|{
 2871|    144|    ogs_nas_5gs_security_mode_command_t *security_mode_command = &message->gmm.security_mode_command;
 2872|    144|    int decoded = 0;
 2873|    144|    int size = 0;
 2874|       |
 2875|    144|    ogs_trace("[NAS] Decode SECURITY_MODE_COMMAND\n");
  ------------------
  |  |   40|    144|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    144|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    144|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    144|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    144|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    144|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2876|       |
 2877|    144|    size = ogs_nas_5gs_decode_security_algorithms(&security_mode_command->selected_nas_security_algorithms, pkbuf);
 2878|    144|    if (size < 0) {
  ------------------
  |  Branch (2878:9): [True: 0, False: 144]
  ------------------
 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|    144|    decoded += size;
 2884|       |
 2885|    144|    size = ogs_nas_5gs_decode_key_set_identifier(&security_mode_command->ngksi, pkbuf);
 2886|    144|    if (size < 0) {
  ------------------
  |  Branch (2886:9): [True: 1, False: 143]
  ------------------
 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|    143|    decoded += size;
 2892|       |
 2893|    143|    size = ogs_nas_5gs_decode_ue_security_capability(&security_mode_command->replayed_ue_security_capabilities, pkbuf);
 2894|    143|    if (size < 0) {
  ------------------
  |  Branch (2894:9): [True: 9, False: 134]
  ------------------
 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|    134|    decoded += size;
 2900|       |
 2901|  6.80k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (2901:12): [True: 6.69k, False: 112]
  ------------------
 2902|  6.69k|        uint8_t *buffer = pkbuf->data;
 2903|  6.69k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (2903:24): [True: 1.82k, False: 4.87k]
  ------------------
 2904|       |
 2905|  6.69k|        size = sizeof(uint8_t);
 2906|  6.69k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2906:13): [True: 0, False: 6.69k]
  ------------------
 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.69k|        decoded += size;
 2911|       |
 2912|  6.69k|        switch(type) {
 2913|    484|        case OGS_NAS_5GS_SECURITY_MODE_COMMAND_IMEISV_REQUEST_TYPE:
  ------------------
  |  |  985|    484|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_IMEISV_REQUEST_TYPE 0xE0
  ------------------
  |  Branch (2913:9): [True: 484, False: 6.21k]
  ------------------
 2914|    484|            decoded--;
 2915|    484|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    484|    do { \
  |  |  114|    484|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    484|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 484, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    484|        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|    484|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 484]
  |  |  ------------------
  ------------------
 2916|    484|            size = ogs_nas_5gs_decode_imeisv_request(&security_mode_command->imeisv_request, pkbuf);
 2917|    484|            if (size < 0) {
  ------------------
  |  Branch (2917:17): [True: 0, False: 484]
  ------------------
 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|    484|            security_mode_command->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMMAND_IMEISV_REQUEST_PRESENT;
  ------------------
  |  |  978|    484|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_IMEISV_REQUEST_PRESENT ((uint64_t)1<<0)
  ------------------
 2923|    484|            decoded += size;
 2924|    484|            break;
 2925|    350|        case OGS_NAS_5GS_SECURITY_MODE_COMMAND_SELECTED_EPS_NAS_SECURITY_ALGORITHMS_TYPE:
  ------------------
  |  |  986|    350|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_SELECTED_EPS_NAS_SECURITY_ALGORITHMS_TYPE 0x57
  ------------------
  |  Branch (2925:9): [True: 350, False: 6.34k]
  ------------------
 2926|    350|            size = ogs_nas_5gs_decode_eps_nas_security_algorithms(&security_mode_command->selected_eps_nas_security_algorithms, pkbuf);
 2927|    350|            if (size < 0) {
  ------------------
  |  Branch (2927:17): [True: 3, False: 347]
  ------------------
 2928|      3|               ogs_error("ogs_nas_5gs_decode_eps_nas_security_algorithms() 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__) 
  |  |  ------------------
  ------------------
 2929|      3|               return size;
 2930|      3|            }
 2931|       |
 2932|    347|            security_mode_command->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMMAND_SELECTED_EPS_NAS_SECURITY_ALGORITHMS_PRESENT;
  ------------------
  |  |  979|    347|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_SELECTED_EPS_NAS_SECURITY_ALGORITHMS_PRESENT ((uint64_t)1<<1)
  ------------------
 2933|    347|            decoded += size;
 2934|    347|            break;
 2935|    206|        case OGS_NAS_5GS_SECURITY_MODE_COMMAND_ADDITIONAL_5G_SECURITY_INFORMATION_TYPE:
  ------------------
  |  |  987|    206|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_ADDITIONAL_5G_SECURITY_INFORMATION_TYPE 0x36
  ------------------
  |  Branch (2935:9): [True: 206, False: 6.49k]
  ------------------
 2936|    206|            size = ogs_nas_5gs_decode_additional_5g_security_information(&security_mode_command->additional_security_information, pkbuf);
 2937|    206|            if (size < 0) {
  ------------------
  |  Branch (2937:17): [True: 4, False: 202]
  ------------------
 2938|      4|               ogs_error("ogs_nas_5gs_decode_additional_5g_security_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__) 
  |  |  ------------------
  ------------------
 2939|      4|               return size;
 2940|      4|            }
 2941|       |
 2942|    202|            security_mode_command->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMMAND_ADDITIONAL_5G_SECURITY_INFORMATION_PRESENT;
  ------------------
  |  |  980|    202|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_ADDITIONAL_5G_SECURITY_INFORMATION_PRESENT ((uint64_t)1<<2)
  ------------------
 2943|    202|            decoded += size;
 2944|    202|            break;
 2945|    204|        case OGS_NAS_5GS_SECURITY_MODE_COMMAND_EAP_MESSAGE_TYPE:
  ------------------
  |  |  988|    204|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (2945:9): [True: 204, False: 6.49k]
  ------------------
 2946|    204|            size = ogs_nas_5gs_decode_eap_message(&security_mode_command->eap_message, pkbuf);
 2947|    204|            if (size < 0) {
  ------------------
  |  Branch (2947:17): [True: 1, False: 203]
  ------------------
 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|    203|            security_mode_command->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMMAND_EAP_MESSAGE_PRESENT;
  ------------------
  |  |  981|    203|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_EAP_MESSAGE_PRESENT ((uint64_t)1<<3)
  ------------------
 2953|    203|            decoded += size;
 2954|    203|            break;
 2955|    210|        case OGS_NAS_5GS_SECURITY_MODE_COMMAND_ABBA_TYPE:
  ------------------
  |  |  989|    210|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_ABBA_TYPE 0x38
  ------------------
  |  Branch (2955:9): [True: 210, False: 6.48k]
  ------------------
 2956|    210|            size = ogs_nas_5gs_decode_abba(&security_mode_command->abba, pkbuf);
 2957|    210|            if (size < 0) {
  ------------------
  |  Branch (2957:17): [True: 2, False: 208]
  ------------------
 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|    208|            security_mode_command->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMMAND_ABBA_PRESENT;
  ------------------
  |  |  982|    208|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_ABBA_PRESENT ((uint64_t)1<<4)
  ------------------
 2963|    208|            decoded += size;
 2964|    208|            break;
 2965|    209|        case OGS_NAS_5GS_SECURITY_MODE_COMMAND_REPLAYED_S1_UE_SECURITY_CAPABILITIES_TYPE:
  ------------------
  |  |  990|    209|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_REPLAYED_S1_UE_SECURITY_CAPABILITIES_TYPE 0x19
  ------------------
  |  Branch (2965:9): [True: 209, False: 6.48k]
  ------------------
 2966|    209|            size = ogs_nas_5gs_decode_s1_ue_security_capability(&security_mode_command->replayed_s1_ue_security_capabilities, pkbuf);
 2967|    209|            if (size < 0) {
  ------------------
  |  Branch (2967:17): [True: 6, False: 203]
  ------------------
 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|    203|            security_mode_command->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMMAND_REPLAYED_S1_UE_SECURITY_CAPABILITIES_PRESENT;
  ------------------
  |  |  983|    203|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_REPLAYED_S1_UE_SECURITY_CAPABILITIES_PRESENT ((uint64_t)1<<5)
  ------------------
 2973|    203|            decoded += size;
 2974|    203|            break;
 2975|    244|        case OGS_NAS_5GS_SECURITY_MODE_COMMAND_AUN3_DEVICE_SECURITY_KEY_TYPE:
  ------------------
  |  |  991|    244|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_AUN3_DEVICE_SECURITY_KEY_TYPE 0x55
  ------------------
  |  Branch (2975:9): [True: 244, False: 6.45k]
  ------------------
 2976|    244|            size = ogs_nas_5gs_decode_aun3_device_security_key(&security_mode_command->aun3_device_security_key, pkbuf);
 2977|    244|            if (size < 0) {
  ------------------
  |  Branch (2977:17): [True: 6, False: 238]
  ------------------
 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|    238|            security_mode_command->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMMAND_AUN3_DEVICE_SECURITY_KEY_PRESENT;
  ------------------
  |  |  984|    238|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND_AUN3_DEVICE_SECURITY_KEY_PRESENT ((uint64_t)1<<6)
  ------------------
 2983|    238|            decoded += size;
 2984|    238|            break;
 2985|  4.79k|        default:
  ------------------
  |  Branch (2985:9): [True: 4.79k, False: 1.90k]
  ------------------
 2986|  4.79k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  4.79k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  4.79k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  4.79k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  4.79k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  4.79k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  4.79k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2987|  4.79k|            break;
 2988|  6.69k|        }
 2989|  6.69k|    }
 2990|       |
 2991|    112|    return decoded;
 2992|    134|}
ogs_nas_5gs_decode_security_mode_complete:
 2995|     97|{
 2996|     97|    ogs_nas_5gs_security_mode_complete_t *security_mode_complete = &message->gmm.security_mode_complete;
 2997|     97|    int decoded = 0;
 2998|     97|    int size = 0;
 2999|       |
 3000|     97|    ogs_trace("[NAS] Decode SECURITY_MODE_COMPLETE\n");
  ------------------
  |  |   40|     97|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     97|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     97|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     97|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     97|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     97|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3001|       |
 3002|  3.05k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (3002:12): [True: 2.98k, False: 63]
  ------------------
 3003|  2.98k|        uint8_t *buffer = pkbuf->data;
 3004|  2.98k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (3004:24): [True: 699, False: 2.28k]
  ------------------
 3005|       |
 3006|  2.98k|        size = sizeof(uint8_t);
 3007|  2.98k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3007:13): [True: 0, False: 2.98k]
  ------------------
 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.98k|        decoded += size;
 3012|       |
 3013|  2.98k|        switch(type) {
 3014|    225|        case OGS_NAS_5GS_SECURITY_MODE_COMPLETE_IMEISV_TYPE:
  ------------------
  |  | 1017|    225|#define OGS_NAS_5GS_SECURITY_MODE_COMPLETE_IMEISV_TYPE 0x77
  ------------------
  |  Branch (3014:9): [True: 225, False: 2.76k]
  ------------------
 3015|    225|            size = ogs_nas_5gs_decode_5gs_mobile_identity(&security_mode_complete->imeisv, pkbuf);
 3016|    225|            if (size < 0) {
  ------------------
  |  Branch (3016:17): [True: 3, False: 222]
  ------------------
 3017|      3|               ogs_error("ogs_nas_5gs_decode_5gs_mobile_identity() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3018|      3|               return size;
 3019|      3|            }
 3020|       |
 3021|    222|            security_mode_complete->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMPLETE_IMEISV_PRESENT;
  ------------------
  |  | 1014|    222|#define OGS_NAS_5GS_SECURITY_MODE_COMPLETE_IMEISV_PRESENT ((uint64_t)1<<0)
  ------------------
 3022|    222|            decoded += size;
 3023|    222|            break;
 3024|    268|        case OGS_NAS_5GS_SECURITY_MODE_COMPLETE_NAS_MESSAGE_CONTAINER_TYPE:
  ------------------
  |  | 1018|    268|#define OGS_NAS_5GS_SECURITY_MODE_COMPLETE_NAS_MESSAGE_CONTAINER_TYPE 0x71
  ------------------
  |  Branch (3024:9): [True: 268, False: 2.71k]
  ------------------
 3025|    268|            size = ogs_nas_5gs_decode_message_container(&security_mode_complete->nas_message_container, pkbuf);
 3026|    268|            if (size < 0) {
  ------------------
  |  Branch (3026:17): [True: 29, False: 239]
  ------------------
 3027|     29|               ogs_error("ogs_nas_5gs_decode_message_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__) 
  |  |  ------------------
  ------------------
 3028|     29|               return size;
 3029|     29|            }
 3030|       |
 3031|    239|            security_mode_complete->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMPLETE_NAS_MESSAGE_CONTAINER_PRESENT;
  ------------------
  |  | 1015|    239|#define OGS_NAS_5GS_SECURITY_MODE_COMPLETE_NAS_MESSAGE_CONTAINER_PRESENT ((uint64_t)1<<1)
  ------------------
 3032|    239|            decoded += size;
 3033|    239|            break;
 3034|    203|        case OGS_NAS_5GS_SECURITY_MODE_COMPLETE_NON_IMEISV_PEI_TYPE:
  ------------------
  |  | 1019|    203|#define OGS_NAS_5GS_SECURITY_MODE_COMPLETE_NON_IMEISV_PEI_TYPE 0x78
  ------------------
  |  Branch (3034:9): [True: 203, False: 2.78k]
  ------------------
 3035|    203|            size = ogs_nas_5gs_decode_5gs_mobile_identity(&security_mode_complete->non_imeisv_pei, pkbuf);
 3036|    203|            if (size < 0) {
  ------------------
  |  Branch (3036:17): [True: 2, False: 201]
  ------------------
 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|    201|            security_mode_complete->presencemask |= OGS_NAS_5GS_SECURITY_MODE_COMPLETE_NON_IMEISV_PEI_PRESENT;
  ------------------
  |  | 1016|    201|#define OGS_NAS_5GS_SECURITY_MODE_COMPLETE_NON_IMEISV_PEI_PRESENT ((uint64_t)1<<2)
  ------------------
 3042|    201|            decoded += size;
 3043|    201|            break;
 3044|  2.29k|        default:
  ------------------
  |  Branch (3044:9): [True: 2.29k, False: 696]
  ------------------
 3045|  2.29k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.29k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.29k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.29k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.29k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.29k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.29k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3046|  2.29k|            break;
 3047|  2.98k|        }
 3048|  2.98k|    }
 3049|       |
 3050|     63|    return decoded;
 3051|     97|}
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|     55|{
 3112|     55|    ogs_nas_5gs_notification_response_t *notification_response = &message->gmm.notification_response;
 3113|     55|    int decoded = 0;
 3114|     55|    int size = 0;
 3115|       |
 3116|     55|    ogs_trace("[NAS] Decode NOTIFICATION_RESPONSE\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__) 
  |  |  ------------------
  ------------------
 3117|       |
 3118|  2.00k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (3118:12): [True: 1.95k, False: 48]
  ------------------
 3119|  1.95k|        uint8_t *buffer = pkbuf->data;
 3120|  1.95k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (3120:24): [True: 498, False: 1.45k]
  ------------------
 3121|       |
 3122|  1.95k|        size = sizeof(uint8_t);
 3123|  1.95k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3123:13): [True: 0, False: 1.95k]
  ------------------
 3124|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3125|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 3126|      0|        }
 3127|  1.95k|        decoded += size;
 3128|       |
 3129|  1.95k|        switch(type) {
 3130|    334|        case OGS_NAS_5GS_NOTIFICATION_RESPONSE_PDU_SESSION_STATUS_TYPE:
  ------------------
  |  | 1065|    334|#define OGS_NAS_5GS_NOTIFICATION_RESPONSE_PDU_SESSION_STATUS_TYPE 0x50
  ------------------
  |  Branch (3130:9): [True: 334, False: 1.62k]
  ------------------
 3131|    334|            size = ogs_nas_5gs_decode_pdu_session_status(&notification_response->pdu_session_status, pkbuf);
 3132|    334|            if (size < 0) {
  ------------------
  |  Branch (3132:17): [True: 7, False: 327]
  ------------------
 3133|      7|               ogs_error("ogs_nas_5gs_decode_pdu_session_status() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3134|      7|               return size;
 3135|      7|            }
 3136|       |
 3137|    327|            notification_response->presencemask |= OGS_NAS_5GS_NOTIFICATION_RESPONSE_PDU_SESSION_STATUS_PRESENT;
  ------------------
  |  | 1064|    327|#define OGS_NAS_5GS_NOTIFICATION_RESPONSE_PDU_SESSION_STATUS_PRESENT ((uint64_t)1<<0)
  ------------------
 3138|    327|            decoded += size;
 3139|    327|            break;
 3140|  1.62k|        default:
  ------------------
  |  Branch (3140:9): [True: 1.62k, False: 334]
  ------------------
 3141|  1.62k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.62k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.62k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.62k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.62k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.62k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.62k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3142|  1.62k|            break;
 3143|  1.95k|        }
 3144|  1.95k|    }
 3145|       |
 3146|     48|    return decoded;
 3147|     55|}
ogs_nas_5gs_decode_ul_nas_transport:
 3150|    281|{
 3151|    281|    ogs_nas_5gs_ul_nas_transport_t *ul_nas_transport = &message->gmm.ul_nas_transport;
 3152|    281|    int decoded = 0;
 3153|    281|    int size = 0;
 3154|       |
 3155|    281|    ogs_trace("[NAS] Decode UL_NAS_TRANSPORT\n");
  ------------------
  |  |   40|    281|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    281|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    281|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    281|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    281|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    281|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3156|       |
 3157|    281|    size = ogs_nas_5gs_decode_payload_container_type(&ul_nas_transport->payload_container_type, pkbuf);
 3158|    281|    if (size < 0) {
  ------------------
  |  Branch (3158:9): [True: 0, False: 281]
  ------------------
 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|    281|    decoded += size;
 3164|       |
 3165|    281|    size = ogs_nas_5gs_decode_payload_container(&ul_nas_transport->payload_container, pkbuf);
 3166|    281|    if (size < 0) {
  ------------------
  |  Branch (3166:9): [True: 7, False: 274]
  ------------------
 3167|      7|        ogs_error("ogs_nas_5gs_decode_payload_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__) 
  |  |  ------------------
  ------------------
 3168|      7|        return size;
 3169|      7|    }
 3170|       |
 3171|    274|    decoded += size;
 3172|       |
 3173|  14.3k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (3173:12): [True: 14.1k, False: 245]
  ------------------
 3174|  14.1k|        uint8_t *buffer = pkbuf->data;
 3175|  14.1k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (3175:24): [True: 3.87k, False: 10.2k]
  ------------------
 3176|       |
 3177|  14.1k|        size = sizeof(uint8_t);
 3178|  14.1k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3178:13): [True: 0, False: 14.1k]
  ------------------
 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.1k|        decoded += size;
 3183|       |
 3184|  14.1k|        switch(type) {
 3185|    231|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_PDU_SESSION_ID_TYPE:
  ------------------
  |  | 1089|    231|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_PDU_SESSION_ID_TYPE 0x12
  ------------------
  |  Branch (3185:9): [True: 231, False: 13.8k]
  ------------------
 3186|    231|            size = ogs_nas_5gs_decode_pdu_session_identity_2(&ul_nas_transport->pdu_session_id, pkbuf);
 3187|    231|            if (size < 0) {
  ------------------
  |  Branch (3187:17): [True: 3, False: 228]
  ------------------
 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|    228|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_PDU_SESSION_ID_PRESENT;
  ------------------
  |  | 1078|    228|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_PDU_SESSION_ID_PRESENT ((uint64_t)1<<0)
  ------------------
 3193|    228|            decoded += size;
 3194|    228|            break;
 3195|    299|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_OLD_PDU_SESSION_ID_TYPE:
  ------------------
  |  | 1090|    299|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_OLD_PDU_SESSION_ID_TYPE 0x59
  ------------------
  |  Branch (3195:9): [True: 299, False: 13.8k]
  ------------------
 3196|    299|            size = ogs_nas_5gs_decode_pdu_session_identity_2(&ul_nas_transport->old_pdu_session_id, pkbuf);
 3197|    299|            if (size < 0) {
  ------------------
  |  Branch (3197:17): [True: 3, False: 296]
  ------------------
 3198|      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__) 
  |  |  ------------------
  ------------------
 3199|      3|               return size;
 3200|      3|            }
 3201|       |
 3202|    296|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_OLD_PDU_SESSION_ID_PRESENT;
  ------------------
  |  | 1079|    296|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_OLD_PDU_SESSION_ID_PRESENT ((uint64_t)1<<1)
  ------------------
 3203|    296|            decoded += size;
 3204|    296|            break;
 3205|    370|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_REQUEST_TYPE_TYPE:
  ------------------
  |  | 1091|    370|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_REQUEST_TYPE_TYPE 0x80
  ------------------
  |  Branch (3205:9): [True: 370, False: 13.7k]
  ------------------
 3206|    370|            decoded--;
 3207|    370|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    370|    do { \
  |  |  114|    370|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    370|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 370, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    370|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define 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|    370|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 370]
  |  |  ------------------
  ------------------
 3208|    370|            size = ogs_nas_5gs_decode_request_type(&ul_nas_transport->request_type, pkbuf);
 3209|    370|            if (size < 0) {
  ------------------
  |  Branch (3209:17): [True: 0, False: 370]
  ------------------
 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|    370|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_REQUEST_TYPE_PRESENT;
  ------------------
  |  | 1080|    370|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_REQUEST_TYPE_PRESENT ((uint64_t)1<<2)
  ------------------
 3215|    370|            decoded += size;
 3216|    370|            break;
 3217|    206|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_S_NSSAI_TYPE:
  ------------------
  |  | 1092|    206|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_S_NSSAI_TYPE 0x22
  ------------------
  |  Branch (3217:9): [True: 206, False: 13.8k]
  ------------------
 3218|    206|            size = ogs_nas_5gs_decode_s_nssai(&ul_nas_transport->s_nssai, pkbuf);
 3219|    206|            if (size < 0) {
  ------------------
  |  Branch (3219:17): [True: 2, False: 204]
  ------------------
 3220|      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__) 
  |  |  ------------------
  ------------------
 3221|      2|               return size;
 3222|      2|            }
 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.17k|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_DNN_TYPE:
  ------------------
  |  | 1093|  1.17k|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_DNN_TYPE 0x25
  ------------------
  |  Branch (3227:9): [True: 1.17k, False: 12.9k]
  ------------------
 3228|  1.17k|            size = ogs_nas_5gs_decode_dnn(&ul_nas_transport->dnn, pkbuf);
 3229|  1.17k|            if (size < 0) {
  ------------------
  |  Branch (3229:17): [True: 12, False: 1.16k]
  ------------------
 3230|     12|               ogs_error("ogs_nas_5gs_decode_dnn() 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__) 
  |  |  ------------------
  ------------------
 3231|     12|               return size;
 3232|     12|            }
 3233|       |
 3234|  1.16k|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_DNN_PRESENT;
  ------------------
  |  | 1082|  1.16k|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_DNN_PRESENT ((uint64_t)1<<4)
  ------------------
 3235|  1.16k|            decoded += size;
 3236|  1.16k|            break;
 3237|    222|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_TYPE:
  ------------------
  |  | 1094|    222|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_TYPE 0x24
  ------------------
  |  Branch (3237:9): [True: 222, False: 13.8k]
  ------------------
 3238|    222|            size = ogs_nas_5gs_decode_additional_information(&ul_nas_transport->additional_information, pkbuf);
 3239|    222|            if (size < 0) {
  ------------------
  |  Branch (3239:17): [True: 1, False: 221]
  ------------------
 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|    221|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_PRESENT;
  ------------------
  |  | 1083|    221|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_PRESENT ((uint64_t)1<<5)
  ------------------
 3245|    221|            decoded += size;
 3246|    221|            break;
 3247|    384|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_MA_PDU_SESSION_INFORMATION_TYPE:
  ------------------
  |  | 1095|    384|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_MA_PDU_SESSION_INFORMATION_TYPE 0xA0
  ------------------
  |  Branch (3247:9): [True: 384, False: 13.7k]
  ------------------
 3248|    384|            decoded--;
 3249|    384|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    384|    do { \
  |  |  114|    384|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    384|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 384, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    384|        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|    384|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 384]
  |  |  ------------------
  ------------------
 3250|    384|            size = ogs_nas_5gs_decode_ma_pdu_session_information(&ul_nas_transport->ma_pdu_session_information, pkbuf);
 3251|    384|            if (size < 0) {
  ------------------
  |  Branch (3251:17): [True: 0, False: 384]
  ------------------
 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|    384|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_MA_PDU_SESSION_INFORMATION_PRESENT;
  ------------------
  |  | 1084|    384|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_MA_PDU_SESSION_INFORMATION_PRESENT ((uint64_t)1<<6)
  ------------------
 3257|    384|            decoded += size;
 3258|    384|            break;
 3259|  1.56k|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_RELEASE_ASSISTANCE_INDICATION_TYPE:
  ------------------
  |  | 1096|  1.56k|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_RELEASE_ASSISTANCE_INDICATION_TYPE 0xF0
  ------------------
  |  Branch (3259:9): [True: 1.56k, False: 12.5k]
  ------------------
 3260|  1.56k|            decoded--;
 3261|  1.56k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.56k|    do { \
  |  |  114|  1.56k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.56k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.56k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.56k|        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.56k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.56k]
  |  |  ------------------
  ------------------
 3262|  1.56k|            size = ogs_nas_5gs_decode_release_assistance_indication(&ul_nas_transport->release_assistance_indication, pkbuf);
 3263|  1.56k|            if (size < 0) {
  ------------------
  |  Branch (3263:17): [True: 0, False: 1.56k]
  ------------------
 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|  1.56k|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_RELEASE_ASSISTANCE_INDICATION_PRESENT;
  ------------------
  |  | 1085|  1.56k|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_RELEASE_ASSISTANCE_INDICATION_PRESENT ((uint64_t)1<<7)
  ------------------
 3269|  1.56k|            decoded += size;
 3270|  1.56k|            break;
 3271|    223|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_NON_3GPP_ACCESS_PATH_SWITCHING_INDICATION_TYPE:
  ------------------
  |  | 1097|    223|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_NON_3GPP_ACCESS_PATH_SWITCHING_INDICATION_TYPE 0x4E
  ------------------
  |  Branch (3271:9): [True: 223, False: 13.8k]
  ------------------
 3272|    223|            size = ogs_nas_5gs_decode_non_3gpp_access_path_switching_indication(&ul_nas_transport->non_3gpp_access_path_switching_indication, pkbuf);
 3273|    223|            if (size < 0) {
  ------------------
  |  Branch (3273:17): [True: 6, False: 217]
  ------------------
 3274|      6|               ogs_error("ogs_nas_5gs_decode_non_3gpp_access_path_switching_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__) 
  |  |  ------------------
  ------------------
 3275|      6|               return size;
 3276|      6|            }
 3277|       |
 3278|    217|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_NON_3GPP_ACCESS_PATH_SWITCHING_INDICATION_PRESENT;
  ------------------
  |  | 1086|    217|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_NON_3GPP_ACCESS_PATH_SWITCHING_INDICATION_PRESENT ((uint64_t)1<<8)
  ------------------
 3279|    217|            decoded += size;
 3280|    217|            break;
 3281|    203|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_ALTERNATIVE_S_NSSAI_TYPE:
  ------------------
  |  | 1098|    203|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_ALTERNATIVE_S_NSSAI_TYPE 0x5A
  ------------------
  |  Branch (3281:9): [True: 203, False: 13.8k]
  ------------------
 3282|    203|            size = ogs_nas_5gs_decode_s_nssai(&ul_nas_transport->alternative_s_nssai, pkbuf);
 3283|    203|            if (size < 0) {
  ------------------
  |  Branch (3283:17): [True: 2, False: 201]
  ------------------
 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|    201|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_ALTERNATIVE_S_NSSAI_PRESENT;
  ------------------
  |  | 1087|    201|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_ALTERNATIVE_S_NSSAI_PRESENT ((uint64_t)1<<9)
  ------------------
 3289|    201|            decoded += size;
 3290|    201|            break;
 3291|    573|        case OGS_NAS_5GS_UL_NAS_TRANSPORT_PAYLOAD_CONTAINER_INFORMATION_TYPE:
  ------------------
  |  | 1099|    573|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_PAYLOAD_CONTAINER_INFORMATION_TYPE 0x90
  ------------------
  |  Branch (3291:9): [True: 573, False: 13.5k]
  ------------------
 3292|    573|            decoded--;
 3293|    573|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    573|    do { \
  |  |  114|    573|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    573|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 573, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    573|        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|    573|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 573]
  |  |  ------------------
  ------------------
 3294|    573|            size = ogs_nas_5gs_decode_payload_container_information(&ul_nas_transport->payload_container_information, pkbuf);
 3295|    573|            if (size < 0) {
  ------------------
  |  Branch (3295:17): [True: 0, False: 573]
  ------------------
 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|    573|            ul_nas_transport->presencemask |= OGS_NAS_5GS_UL_NAS_TRANSPORT_PAYLOAD_CONTAINER_INFORMATION_PRESENT;
  ------------------
  |  | 1088|    573|#define OGS_NAS_5GS_UL_NAS_TRANSPORT_PAYLOAD_CONTAINER_INFORMATION_PRESENT ((uint64_t)1<<10)
  ------------------
 3301|    573|            decoded += size;
 3302|    573|            break;
 3303|  8.65k|        default:
  ------------------
  |  Branch (3303:9): [True: 8.65k, False: 5.44k]
  ------------------
 3304|  8.65k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  8.65k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  8.65k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  8.65k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  8.65k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  8.65k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  8.65k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3305|  8.65k|            break;
 3306|  14.1k|        }
 3307|  14.1k|    }
 3308|       |
 3309|    245|    return decoded;
 3310|    274|}
ogs_nas_5gs_decode_dl_nas_transport:
 3313|    109|{
 3314|    109|    ogs_nas_5gs_dl_nas_transport_t *dl_nas_transport = &message->gmm.dl_nas_transport;
 3315|    109|    int decoded = 0;
 3316|    109|    int size = 0;
 3317|       |
 3318|    109|    ogs_trace("[NAS] Decode DL_NAS_TRANSPORT\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__) 
  |  |  ------------------
  ------------------
 3319|       |
 3320|    109|    size = ogs_nas_5gs_decode_payload_container_type(&dl_nas_transport->payload_container_type, pkbuf);
 3321|    109|    if (size < 0) {
  ------------------
  |  Branch (3321:9): [True: 0, False: 109]
  ------------------
 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|    109|    decoded += size;
 3327|       |
 3328|    109|    size = ogs_nas_5gs_decode_payload_container(&dl_nas_transport->payload_container, pkbuf);
 3329|    109|    if (size < 0) {
  ------------------
  |  Branch (3329:9): [True: 19, False: 90]
  ------------------
 3330|     19|        ogs_error("ogs_nas_5gs_decode_payload_container() failed");
  ------------------
  |  |   36|     19|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     19|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     19|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     19|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     19|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     19|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3331|     19|        return size;
 3332|     19|    }
 3333|       |
 3334|     90|    decoded += size;
 3335|       |
 3336|  2.65k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (3336:12): [True: 2.57k, False: 82]
  ------------------
 3337|  2.57k|        uint8_t *buffer = pkbuf->data;
 3338|  2.57k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (3338:24): [True: 866, False: 1.71k]
  ------------------
 3339|       |
 3340|  2.57k|        size = sizeof(uint8_t);
 3341|  2.57k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3341:13): [True: 0, False: 2.57k]
  ------------------
 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.57k|        decoded += size;
 3346|       |
 3347|  2.57k|        switch(type) {
 3348|    230|        case OGS_NAS_5GS_DL_NAS_TRANSPORT_PDU_SESSION_ID_TYPE:
  ------------------
  |  | 1130|    230|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_PDU_SESSION_ID_TYPE 0x12
  ------------------
  |  Branch (3348:9): [True: 230, False: 2.34k]
  ------------------
 3349|    230|            size = ogs_nas_5gs_decode_pdu_session_identity_2(&dl_nas_transport->pdu_session_id, pkbuf);
 3350|    230|            if (size < 0) {
  ------------------
  |  Branch (3350:17): [True: 2, False: 228]
  ------------------
 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|    228|            dl_nas_transport->presencemask |= OGS_NAS_5GS_DL_NAS_TRANSPORT_PDU_SESSION_ID_PRESENT;
  ------------------
  |  | 1125|    228|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_PDU_SESSION_ID_PRESENT ((uint64_t)1<<0)
  ------------------
 3356|    228|            decoded += size;
 3357|    228|            break;
 3358|    262|        case OGS_NAS_5GS_DL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_TYPE:
  ------------------
  |  | 1131|    262|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_TYPE 0x24
  ------------------
  |  Branch (3358:9): [True: 262, False: 2.31k]
  ------------------
 3359|    262|            size = ogs_nas_5gs_decode_additional_information(&dl_nas_transport->additional_information, pkbuf);
 3360|    262|            if (size < 0) {
  ------------------
  |  Branch (3360:17): [True: 3, False: 259]
  ------------------
 3361|      3|               ogs_error("ogs_nas_5gs_decode_additional_information() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3362|      3|               return size;
 3363|      3|            }
 3364|       |
 3365|    259|            dl_nas_transport->presencemask |= OGS_NAS_5GS_DL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_PRESENT;
  ------------------
  |  | 1126|    259|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_ADDITIONAL_INFORMATION_PRESENT ((uint64_t)1<<1)
  ------------------
 3366|    259|            decoded += size;
 3367|    259|            break;
 3368|    195|        case OGS_NAS_5GS_DL_NAS_TRANSPORT_5GMM_CAUSE_TYPE:
  ------------------
  |  | 1132|    195|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_5GMM_CAUSE_TYPE 0x58
  ------------------
  |  Branch (3368:9): [True: 195, False: 2.38k]
  ------------------
 3369|    195|            size = ogs_nas_5gs_decode_5gmm_cause(&dl_nas_transport->gmm_cause, pkbuf);
 3370|    195|            if (size < 0) {
  ------------------
  |  Branch (3370:17): [True: 1, False: 194]
  ------------------
 3371|      1|               ogs_error("ogs_nas_5gs_decode_5gmm_cause() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3372|      1|               return size;
 3373|      1|            }
 3374|       |
 3375|    194|            dl_nas_transport->presencemask |= OGS_NAS_5GS_DL_NAS_TRANSPORT_5GMM_CAUSE_PRESENT;
  ------------------
  |  | 1127|    194|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_5GMM_CAUSE_PRESENT ((uint64_t)1<<2)
  ------------------
 3376|    194|            decoded += size;
 3377|    194|            break;
 3378|    203|        case OGS_NAS_5GS_DL_NAS_TRANSPORT_BACK_OFF_TIMER_VALUE_TYPE:
  ------------------
  |  | 1133|    203|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_BACK_OFF_TIMER_VALUE_TYPE 0x37
  ------------------
  |  Branch (3378:9): [True: 203, False: 2.37k]
  ------------------
 3379|    203|            size = ogs_nas_5gs_decode_gprs_timer_3(&dl_nas_transport->back_off_timer_value, pkbuf);
 3380|    203|            if (size < 0) {
  ------------------
  |  Branch (3380:17): [True: 1, False: 202]
  ------------------
 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|    202|            dl_nas_transport->presencemask |= OGS_NAS_5GS_DL_NAS_TRANSPORT_BACK_OFF_TIMER_VALUE_PRESENT;
  ------------------
  |  | 1128|    202|#define OGS_NAS_5GS_DL_NAS_TRANSPORT_BACK_OFF_TIMER_VALUE_PRESENT ((uint64_t)1<<3)
  ------------------
 3386|    202|            decoded += size;
 3387|    202|            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.38k]
  ------------------
 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.49k|        default:
  ------------------
  |  Branch (3398:9): [True: 1.49k, False: 1.08k]
  ------------------
 3399|  1.49k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.49k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 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__) 
  |  |  ------------------
  ------------------
 3400|  1.49k|            break;
 3401|  2.57k|        }
 3402|  2.57k|    }
 3403|       |
 3404|     82|    return decoded;
 3405|     90|}
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|  10.6k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (3423:12): [True: 10.4k, False: 215]
  ------------------
 3424|  10.4k|        uint8_t *buffer = pkbuf->data;
 3425|  10.4k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (3425:24): [True: 3.15k, False: 7.33k]
  ------------------
 3426|       |
 3427|  10.4k|        size = sizeof(uint8_t);
 3428|  10.4k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3428:13): [True: 0, False: 10.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|  10.4k|        decoded += size;
 3433|       |
 3434|  10.4k|        switch(type) {
 3435|    385|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_TYPE_TYPE:
  ------------------
  |  | 1172|    385|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_TYPE_TYPE 0x90
  ------------------
  |  Branch (3435:9): [True: 385, False: 10.0k]
  ------------------
 3436|    385|            decoded--;
 3437|    385|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    385|    do { \
  |  |  114|    385|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    385|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 385, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    385|        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|    385|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 385]
  |  |  ------------------
  ------------------
 3438|    385|            size = ogs_nas_5gs_decode_pdu_session_type(&pdu_session_establishment_request->pdu_session_type, pkbuf);
 3439|    385|            if (size < 0) {
  ------------------
  |  Branch (3439:17): [True: 0, False: 385]
  ------------------
 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|    385|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_TYPE_PRESENT;
  ------------------
  |  | 1154|    385|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_TYPE_PRESENT ((uint64_t)1<<0)
  ------------------
 3445|    385|            decoded += size;
 3446|    385|            break;
 3447|    360|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SSC_MODE_TYPE:
  ------------------
  |  | 1173|    360|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SSC_MODE_TYPE 0xA0
  ------------------
  |  Branch (3447:9): [True: 360, False: 10.1k]
  ------------------
 3448|    360|            decoded--;
 3449|    360|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    360|    do { \
  |  |  114|    360|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    360|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 360, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    360|        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|    360|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 360]
  |  |  ------------------
  ------------------
 3450|    360|            size = ogs_nas_5gs_decode_ssc_mode(&pdu_session_establishment_request->ssc_mode, pkbuf);
 3451|    360|            if (size < 0) {
  ------------------
  |  Branch (3451:17): [True: 0, False: 360]
  ------------------
 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|    360|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SSC_MODE_PRESENT;
  ------------------
  |  | 1155|    360|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SSC_MODE_PRESENT ((uint64_t)1<<1)
  ------------------
 3457|    360|            decoded += size;
 3458|    360|            break;
 3459|    197|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_5GSM_CAPABILITY_TYPE:
  ------------------
  |  | 1174|    197|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_5GSM_CAPABILITY_TYPE 0x28
  ------------------
  |  Branch (3459:9): [True: 197, False: 10.2k]
  ------------------
 3460|    197|            size = ogs_nas_5gs_decode_5gsm_capability(&pdu_session_establishment_request->gsm_capability, pkbuf);
 3461|    197|            if (size < 0) {
  ------------------
  |  Branch (3461:17): [True: 1, False: 196]
  ------------------
 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|    196|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_5GSM_CAPABILITY_PRESENT;
  ------------------
  |  | 1156|    196|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_5GSM_CAPABILITY_PRESENT ((uint64_t)1<<2)
  ------------------
 3467|    196|            decoded += size;
 3468|    196|            break;
 3469|    208|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_TYPE:
  ------------------
  |  | 1175|    208|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_TYPE 0x55
  ------------------
  |  Branch (3469:9): [True: 208, False: 10.2k]
  ------------------
 3470|    208|            size = ogs_nas_5gs_decode_maximum_number_of_supported_packet_filters(&pdu_session_establishment_request->maximum_number_of_supported_packet_filters, pkbuf);
 3471|    208|            if (size < 0) {
  ------------------
  |  Branch (3471:17): [True: 1, False: 207]
  ------------------
 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|    207|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_PRESENT;
  ------------------
  |  | 1157|    207|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_PRESENT ((uint64_t)1<<3)
  ------------------
 3477|    207|            decoded += size;
 3478|    207|            break;
 3479|    694|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_TYPE:
  ------------------
  |  | 1176|    694|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_TYPE 0xB0
  ------------------
  |  Branch (3479:9): [True: 694, False: 9.79k]
  ------------------
 3480|    694|            decoded--;
 3481|    694|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    694|    do { \
  |  |  114|    694|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    694|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 694, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    694|        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|    694|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 694]
  |  |  ------------------
  ------------------
 3482|    694|            size = ogs_nas_5gs_decode_always_on_pdu_session_requested(&pdu_session_establishment_request->always_on_pdu_session_requested, pkbuf);
 3483|    694|            if (size < 0) {
  ------------------
  |  Branch (3483:17): [True: 0, False: 694]
  ------------------
 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|    694|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_PRESENT;
  ------------------
  |  | 1158|    694|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_PRESENT ((uint64_t)1<<4)
  ------------------
 3489|    694|            decoded += size;
 3490|    694|            break;
 3491|    320|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SM_PDU_DN_REQUEST_CONTAINER_TYPE:
  ------------------
  |  | 1177|    320|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SM_PDU_DN_REQUEST_CONTAINER_TYPE 0x39
  ------------------
  |  Branch (3491:9): [True: 320, False: 10.1k]
  ------------------
 3492|    320|            size = ogs_nas_5gs_decode_sm_pdu_dn_request_container(&pdu_session_establishment_request->sm_pdu_dn_request_container, pkbuf);
 3493|    320|            if (size < 0) {
  ------------------
  |  Branch (3493:17): [True: 4, False: 316]
  ------------------
 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|    316|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SM_PDU_DN_REQUEST_CONTAINER_PRESENT;
  ------------------
  |  | 1159|    316|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SM_PDU_DN_REQUEST_CONTAINER_PRESENT ((uint64_t)1<<5)
  ------------------
 3499|    316|            decoded += size;
 3500|    316|            break;
 3501|    423|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1178|    423|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (3501:9): [True: 423, False: 10.0k]
  ------------------
 3502|    423|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_establishment_request->extended_protocol_configuration_options, pkbuf);
 3503|    423|            if (size < 0) {
  ------------------
  |  Branch (3503:17): [True: 2, False: 421]
  ------------------
 3504|      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__) 
  |  |  ------------------
  ------------------
 3505|      2|               return size;
 3506|      2|            }
 3507|       |
 3508|    421|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1160|    421|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<6)
  ------------------
 3509|    421|            decoded += size;
 3510|    421|            break;
 3511|    229|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1179|    229|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x66
  ------------------
  |  Branch (3511:9): [True: 229, False: 10.2k]
  ------------------
 3512|    229|            size = ogs_nas_5gs_decode_ip_header_compression_configuration(&pdu_session_establishment_request->ip_header_compression_configuration, pkbuf);
 3513|    229|            if (size < 0) {
  ------------------
  |  Branch (3513:17): [True: 1, False: 228]
  ------------------
 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|    228|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1161|    228|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<7)
  ------------------
 3519|    228|            decoded += size;
 3520|    228|            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: 10.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|    218|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_UE_DS_TT_RESIDENCE_TIME_TYPE:
  ------------------
  |  | 1181|    218|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_UE_DS_TT_RESIDENCE_TIME_TYPE 0x6F
  ------------------
  |  Branch (3531:9): [True: 218, False: 10.2k]
  ------------------
 3532|    218|            size = ogs_nas_5gs_decode_ue_ds_tt_residence_time(&pdu_session_establishment_request->ue_ds_tt_residence_time, pkbuf);
 3533|    218|            if (size < 0) {
  ------------------
  |  Branch (3533:17): [True: 9, False: 209]
  ------------------
 3534|      9|               ogs_error("ogs_nas_5gs_decode_ue_ds_tt_residence_time() 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__) 
  |  |  ------------------
  ------------------
 3535|      9|               return size;
 3536|      9|            }
 3537|       |
 3538|    209|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_UE_DS_TT_RESIDENCE_TIME_PRESENT;
  ------------------
  |  | 1163|    209|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_UE_DS_TT_RESIDENCE_TIME_PRESENT ((uint64_t)1<<9)
  ------------------
 3539|    209|            decoded += size;
 3540|    209|            break;
 3541|    214|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE:
  ------------------
  |  | 1182|    214|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE 0x74
  ------------------
  |  Branch (3541:9): [True: 214, False: 10.2k]
  ------------------
 3542|    214|            size = ogs_nas_5gs_decode_port_management_information_container(&pdu_session_establishment_request->port_management_information_container, pkbuf);
 3543|    214|            if (size < 0) {
  ------------------
  |  Branch (3543:17): [True: 1, False: 213]
  ------------------
 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|    213|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT;
  ------------------
  |  | 1164|    213|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT ((uint64_t)1<<10)
  ------------------
 3549|    213|            decoded += size;
 3550|    213|            break;
 3551|    225|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1183|    225|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x1F
  ------------------
  |  Branch (3551:9): [True: 225, False: 10.2k]
  ------------------
 3552|    225|            size = ogs_nas_5gs_decode_ethernet_header_compression_configuration(&pdu_session_establishment_request->ethernet_header_compression_configuration, pkbuf);
 3553|    225|            if (size < 0) {
  ------------------
  |  Branch (3553:17): [True: 1, False: 224]
  ------------------
 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|    224|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1165|    224|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<11)
  ------------------
 3559|    224|            decoded += size;
 3560|    224|            break;
 3561|    229|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SUGGESTED_INTERFACE_IDENTIFIER_TYPE:
  ------------------
  |  | 1184|    229|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SUGGESTED_INTERFACE_IDENTIFIER_TYPE 0x29
  ------------------
  |  Branch (3561:9): [True: 229, False: 10.2k]
  ------------------
 3562|    229|            size = ogs_nas_5gs_decode_pdu_address(&pdu_session_establishment_request->suggested_interface_identifier, pkbuf);
 3563|    229|            if (size < 0) {
  ------------------
  |  Branch (3563:17): [True: 6, False: 223]
  ------------------
 3564|      6|               ogs_error("ogs_nas_5gs_decode_pdu_address() 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__) 
  |  |  ------------------
  ------------------
 3565|      6|               return size;
 3566|      6|            }
 3567|       |
 3568|    223|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SUGGESTED_INTERFACE_IDENTIFIER_PRESENT;
  ------------------
  |  | 1166|    223|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SUGGESTED_INTERFACE_IDENTIFIER_PRESENT ((uint64_t)1<<12)
  ------------------
 3569|    223|            decoded += size;
 3570|    223|            break;
 3571|    197|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  | 1185|    197|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (3571:9): [True: 197, False: 10.2k]
  ------------------
 3572|    197|            size = ogs_nas_5gs_decode_service_level_aa_container(&pdu_session_establishment_request->service_level_aa_container, pkbuf);
 3573|    197|            if (size < 0) {
  ------------------
  |  Branch (3573:17): [True: 1, False: 196]
  ------------------
 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|    196|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  | 1167|    196|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<13)
  ------------------
 3579|    196|            decoded += size;
 3580|    196|            break;
 3581|    217|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_REQUESTED_MBS_CONTAINER_TYPE:
  ------------------
  |  | 1186|    217|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_REQUESTED_MBS_CONTAINER_TYPE 0x70
  ------------------
  |  Branch (3581:9): [True: 217, False: 10.2k]
  ------------------
 3582|    217|            size = ogs_nas_5gs_decode_requested_mbs_container(&pdu_session_establishment_request->requested_mbs_container, pkbuf);
 3583|    217|            if (size < 0) {
  ------------------
  |  Branch (3583:17): [True: 6, False: 211]
  ------------------
 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|    211|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_REQUESTED_MBS_CONTAINER_PRESENT;
  ------------------
  |  | 1168|    211|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_REQUESTED_MBS_CONTAINER_PRESENT ((uint64_t)1<<14)
  ------------------
 3589|    211|            decoded += size;
 3590|    211|            break;
 3591|    198|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_PAIR_ID_TYPE:
  ------------------
  |  | 1187|    198|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_PAIR_ID_TYPE 0x34
  ------------------
  |  Branch (3591:9): [True: 198, False: 10.2k]
  ------------------
 3592|    198|            size = ogs_nas_5gs_decode_pdu_session_pair_id(&pdu_session_establishment_request->pdu_session_pair_id, pkbuf);
 3593|    198|            if (size < 0) {
  ------------------
  |  Branch (3593:17): [True: 3, False: 195]
  ------------------
 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|    195|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_PAIR_ID_PRESENT;
  ------------------
  |  | 1169|    195|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_PDU_SESSION_PAIR_ID_PRESENT ((uint64_t)1<<15)
  ------------------
 3599|    195|            decoded += size;
 3600|    195|            break;
 3601|    210|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_RSN_TYPE:
  ------------------
  |  | 1188|    210|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_RSN_TYPE 0x35
  ------------------
  |  Branch (3601:9): [True: 210, False: 10.2k]
  ------------------
 3602|    210|            size = ogs_nas_5gs_decode_rsn(&pdu_session_establishment_request->rsn, pkbuf);
 3603|    210|            if (size < 0) {
  ------------------
  |  Branch (3603:17): [True: 4, False: 206]
  ------------------
 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|    206|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_RSN_PRESENT;
  ------------------
  |  | 1170|    206|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_RSN_PRESENT ((uint64_t)1<<16)
  ------------------
 3609|    206|            decoded += size;
 3610|    206|            break;
 3611|    195|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_TYPE:
  ------------------
  |  | 1189|    195|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_TYPE 0x36
  ------------------
  |  Branch (3611:9): [True: 195, False: 10.2k]
  ------------------
 3612|    195|            size = ogs_nas_5gs_decode_ursp_rule_enforcement_reports(&pdu_session_establishment_request->ursp_rule_enforcement_reports, pkbuf);
 3613|    195|            if (size < 0) {
  ------------------
  |  Branch (3613:17): [True: 1, False: 194]
  ------------------
 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|    194|            pdu_session_establishment_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_PRESENT;
  ------------------
  |  | 1171|    194|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_PRESENT ((uint64_t)1<<17)
  ------------------
 3619|    194|            decoded += size;
 3620|    194|            break;
 3621|  5.55k|        default:
  ------------------
  |  Branch (3621:9): [True: 5.55k, False: 4.92k]
  ------------------
 3622|  5.55k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  5.55k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  5.55k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  5.55k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  5.55k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  5.55k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  5.55k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3623|  5.55k|            break;
 3624|  10.4k|        }
 3625|  10.4k|    }
 3626|       |
 3627|    215|    return decoded;
 3628|    260|}
ogs_nas_5gs_decode_pdu_session_establishment_accept:
 3631|    322|{
 3632|    322|    ogs_nas_5gs_pdu_session_establishment_accept_t *pdu_session_establishment_accept = &message->gsm.pdu_session_establishment_accept;
 3633|    322|    int decoded = 0;
 3634|    322|    int size = 0;
 3635|       |
 3636|    322|    ogs_trace("[NAS] Decode PDU_SESSION_ESTABLISHMENT_ACCEPT\n");
  ------------------
  |  |   40|    322|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    322|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    322|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    322|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    322|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    322|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3637|       |
 3638|    322|    size = ogs_nas_5gs_decode_pdu_session_type(&pdu_session_establishment_accept->selected_pdu_session_type, pkbuf);
 3639|    322|    if (size < 0) {
  ------------------
  |  Branch (3639:9): [True: 1, False: 321]
  ------------------
 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|    321|    decoded += size;
 3645|       |
 3646|    321|    size = ogs_nas_5gs_decode_qos_rules(&pdu_session_establishment_accept->authorized_qos_rules, pkbuf);
 3647|    321|    if (size < 0) {
  ------------------
  |  Branch (3647:9): [True: 17, False: 304]
  ------------------
 3648|     17|        ogs_error("ogs_nas_5gs_decode_qos_rules() 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__) 
  |  |  ------------------
  ------------------
 3649|     17|        return size;
 3650|     17|    }
 3651|       |
 3652|    304|    decoded += size;
 3653|       |
 3654|    304|    size = ogs_nas_5gs_decode_session_ambr(&pdu_session_establishment_accept->session_ambr, pkbuf);
 3655|    304|    if (size < 0) {
  ------------------
  |  Branch (3655:9): [True: 17, False: 287]
  ------------------
 3656|     17|        ogs_error("ogs_nas_5gs_decode_session_ambr() 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__) 
  |  |  ------------------
  ------------------
 3657|     17|        return size;
 3658|     17|    }
 3659|       |
 3660|    287|    decoded += size;
 3661|       |
 3662|  10.5k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (3662:12): [True: 10.2k, False: 256]
  ------------------
 3663|  10.2k|        uint8_t *buffer = pkbuf->data;
 3664|  10.2k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (3664:24): [True: 2.44k, False: 7.82k]
  ------------------
 3665|       |
 3666|  10.2k|        size = sizeof(uint8_t);
 3667|  10.2k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3667:13): [True: 0, False: 10.2k]
  ------------------
 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|  10.2k|        decoded += size;
 3672|       |
 3673|  10.2k|        switch(type) {
 3674|    239|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_CAUSE_TYPE:
  ------------------
  |  | 1242|    239|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_CAUSE_TYPE 0x59
  ------------------
  |  Branch (3674:9): [True: 239, False: 10.0k]
  ------------------
 3675|    239|            size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_establishment_accept->gsm_cause, pkbuf);
 3676|    239|            if (size < 0) {
  ------------------
  |  Branch (3676:17): [True: 1, False: 238]
  ------------------
 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|    238|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_CAUSE_PRESENT;
  ------------------
  |  | 1221|    238|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_CAUSE_PRESENT ((uint64_t)1<<0)
  ------------------
 3682|    238|            decoded += size;
 3683|    238|            break;
 3684|    202|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_PDU_ADDRESS_TYPE:
  ------------------
  |  | 1243|    202|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_PDU_ADDRESS_TYPE 0x29
  ------------------
  |  Branch (3684:9): [True: 202, False: 10.0k]
  ------------------
 3685|    202|            size = ogs_nas_5gs_decode_pdu_address(&pdu_session_establishment_accept->pdu_address, pkbuf);
 3686|    202|            if (size < 0) {
  ------------------
  |  Branch (3686:17): [True: 2, False: 200]
  ------------------
 3687|      2|               ogs_error("ogs_nas_5gs_decode_pdu_address() 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__) 
  |  |  ------------------
  ------------------
 3688|      2|               return size;
 3689|      2|            }
 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|    261|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RQ_TIMER_VALUE_TYPE:
  ------------------
  |  | 1244|    261|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RQ_TIMER_VALUE_TYPE 0x56
  ------------------
  |  Branch (3694:9): [True: 261, False: 10.0k]
  ------------------
 3695|    261|            size = ogs_nas_5gs_decode_gprs_timer(&pdu_session_establishment_accept->rq_timer_value, pkbuf);
 3696|    261|            if (size < 0) {
  ------------------
  |  Branch (3696:17): [True: 1, False: 260]
  ------------------
 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|    260|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RQ_TIMER_VALUE_PRESENT;
  ------------------
  |  | 1223|    260|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RQ_TIMER_VALUE_PRESENT ((uint64_t)1<<2)
  ------------------
 3702|    260|            decoded += size;
 3703|    260|            break;
 3704|    197|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_S_NSSAI_TYPE:
  ------------------
  |  | 1245|    197|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_S_NSSAI_TYPE 0x22
  ------------------
  |  Branch (3704:9): [True: 197, False: 10.0k]
  ------------------
 3705|    197|            size = ogs_nas_5gs_decode_s_nssai(&pdu_session_establishment_accept->s_nssai, pkbuf);
 3706|    197|            if (size < 0) {
  ------------------
  |  Branch (3706:17): [True: 1, False: 196]
  ------------------
 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|    196|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_S_NSSAI_PRESENT;
  ------------------
  |  | 1224|    196|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_S_NSSAI_PRESENT ((uint64_t)1<<3)
  ------------------
 3712|    196|            decoded += size;
 3713|    196|            break;
 3714|    382|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ALWAYS_ON_PDU_SESSION_INDICATION_TYPE:
  ------------------
  |  | 1246|    382|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ALWAYS_ON_PDU_SESSION_INDICATION_TYPE 0x80
  ------------------
  |  Branch (3714:9): [True: 382, False: 9.88k]
  ------------------
 3715|    382|            decoded--;
 3716|    382|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    382|    do { \
  |  |  114|    382|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    382|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 382, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    382|        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|    382|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 382]
  |  |  ------------------
  ------------------
 3717|    382|            size = ogs_nas_5gs_decode_always_on_pdu_session_indication(&pdu_session_establishment_accept->always_on_pdu_session_indication, pkbuf);
 3718|    382|            if (size < 0) {
  ------------------
  |  Branch (3718:17): [True: 0, False: 382]
  ------------------
 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|    382|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ALWAYS_ON_PDU_SESSION_INDICATION_PRESENT;
  ------------------
  |  | 1225|    382|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ALWAYS_ON_PDU_SESSION_INDICATION_PRESENT ((uint64_t)1<<4)
  ------------------
 3724|    382|            decoded += size;
 3725|    382|            break;
 3726|    212|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_MAPPED_EPS_BEARER_CONTEXTS_TYPE:
  ------------------
  |  | 1247|    212|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_MAPPED_EPS_BEARER_CONTEXTS_TYPE 0x75
  ------------------
  |  Branch (3726:9): [True: 212, False: 10.0k]
  ------------------
 3727|    212|            size = ogs_nas_5gs_decode_mapped_eps_bearer_contexts(&pdu_session_establishment_accept->mapped_eps_bearer_contexts, pkbuf);
 3728|    212|            if (size < 0) {
  ------------------
  |  Branch (3728:17): [True: 1, False: 211]
  ------------------
 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|    211|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_MAPPED_EPS_BEARER_CONTEXTS_PRESENT;
  ------------------
  |  | 1226|    211|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_MAPPED_EPS_BEARER_CONTEXTS_PRESENT ((uint64_t)1<<5)
  ------------------
 3734|    211|            decoded += size;
 3735|    211|            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: 10.0k]
  ------------------
 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|    199|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_AUTHORIZED_QOS_FLOW_DESCRIPTIONS_TYPE:
  ------------------
  |  | 1249|    199|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_AUTHORIZED_QOS_FLOW_DESCRIPTIONS_TYPE 0x79
  ------------------
  |  Branch (3746:9): [True: 199, False: 10.0k]
  ------------------
 3747|    199|            size = ogs_nas_5gs_decode_qos_flow_descriptions(&pdu_session_establishment_accept->authorized_qos_flow_descriptions, pkbuf);
 3748|    199|            if (size < 0) {
  ------------------
  |  Branch (3748:17): [True: 2, False: 197]
  ------------------
 3749|      2|               ogs_error("ogs_nas_5gs_decode_qos_flow_descriptions() 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__) 
  |  |  ------------------
  ------------------
 3750|      2|               return size;
 3751|      2|            }
 3752|       |
 3753|    197|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_AUTHORIZED_QOS_FLOW_DESCRIPTIONS_PRESENT;
  ------------------
  |  | 1228|    197|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_AUTHORIZED_QOS_FLOW_DESCRIPTIONS_PRESENT ((uint64_t)1<<7)
  ------------------
 3754|    197|            decoded += size;
 3755|    197|            break;
 3756|    224|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1250|    224|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (3756:9): [True: 224, False: 10.0k]
  ------------------
 3757|    224|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_establishment_accept->extended_protocol_configuration_options, pkbuf);
 3758|    224|            if (size < 0) {
  ------------------
  |  Branch (3758:17): [True: 1, False: 223]
  ------------------
 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|    223|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1229|    223|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<8)
  ------------------
 3764|    223|            decoded += size;
 3765|    223|            break;
 3766|    208|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_DNN_TYPE:
  ------------------
  |  | 1251|    208|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_DNN_TYPE 0x25
  ------------------
  |  Branch (3766:9): [True: 208, False: 10.0k]
  ------------------
 3767|    208|            size = ogs_nas_5gs_decode_dnn(&pdu_session_establishment_accept->dnn, pkbuf);
 3768|    208|            if (size < 0) {
  ------------------
  |  Branch (3768:17): [True: 1, False: 207]
  ------------------
 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|    207|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_DNN_PRESENT;
  ------------------
  |  | 1230|    207|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_DNN_PRESENT ((uint64_t)1<<9)
  ------------------
 3774|    207|            decoded += size;
 3775|    207|            break;
 3776|    212|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_NETWORK_FEATURE_SUPPORT_TYPE:
  ------------------
  |  | 1252|    212|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_NETWORK_FEATURE_SUPPORT_TYPE 0x17
  ------------------
  |  Branch (3776:9): [True: 212, False: 10.0k]
  ------------------
 3777|    212|            size = ogs_nas_5gs_decode_5gsm_network_feature_support(&pdu_session_establishment_accept->gsm_network_feature_support, pkbuf);
 3778|    212|            if (size < 0) {
  ------------------
  |  Branch (3778:17): [True: 5, False: 207]
  ------------------
 3779|      5|               ogs_error("ogs_nas_5gs_decode_5gsm_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__) 
  |  |  ------------------
  ------------------
 3780|      5|               return size;
 3781|      5|            }
 3782|       |
 3783|    207|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_NETWORK_FEATURE_SUPPORT_PRESENT;
  ------------------
  |  | 1231|    207|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_5GSM_NETWORK_FEATURE_SUPPORT_PRESENT ((uint64_t)1<<10)
  ------------------
 3784|    207|            decoded += size;
 3785|    207|            break;
 3786|    197|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVING_PLMN_RATE_CONTROL_TYPE:
  ------------------
  |  | 1253|    197|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVING_PLMN_RATE_CONTROL_TYPE 0x18
  ------------------
  |  Branch (3786:9): [True: 197, False: 10.0k]
  ------------------
 3787|    197|            size = ogs_nas_5gs_decode_serving_plmn_rate_control(&pdu_session_establishment_accept->serving_plmn_rate_control, pkbuf);
 3788|    197|            if (size < 0) {
  ------------------
  |  Branch (3788:17): [True: 1, False: 196]
  ------------------
 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|    196|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVING_PLMN_RATE_CONTROL_PRESENT;
  ------------------
  |  | 1232|    196|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVING_PLMN_RATE_CONTROL_PRESENT ((uint64_t)1<<11)
  ------------------
 3794|    196|            decoded += size;
 3795|    196|            break;
 3796|    217|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ATSSS_CONTAINER_TYPE:
  ------------------
  |  | 1254|    217|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ATSSS_CONTAINER_TYPE 0x77
  ------------------
  |  Branch (3796:9): [True: 217, False: 10.0k]
  ------------------
 3797|    217|            size = ogs_nas_5gs_decode_atsss_container(&pdu_session_establishment_accept->atsss_container, pkbuf);
 3798|    217|            if (size < 0) {
  ------------------
  |  Branch (3798:17): [True: 3, False: 214]
  ------------------
 3799|      3|               ogs_error("ogs_nas_5gs_decode_atsss_container() failed");
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3800|      3|               return size;
 3801|      3|            }
 3802|       |
 3803|    214|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ATSSS_CONTAINER_PRESENT;
  ------------------
  |  | 1233|    214|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ATSSS_CONTAINER_PRESENT ((uint64_t)1<<12)
  ------------------
 3804|    214|            decoded += size;
 3805|    214|            break;
 3806|    261|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_CONTROL_PLANE_ONLY_INDICATION_TYPE:
  ------------------
  |  | 1255|    261|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_CONTROL_PLANE_ONLY_INDICATION_TYPE 0xC0
  ------------------
  |  Branch (3806:9): [True: 261, False: 10.0k]
  ------------------
 3807|    261|            decoded--;
 3808|    261|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    261|    do { \
  |  |  114|    261|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    261|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 261, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    261|        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|    261|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 261]
  |  |  ------------------
  ------------------
 3809|    261|            size = ogs_nas_5gs_decode_control_plane_only_indication(&pdu_session_establishment_accept->control_plane_only_indication, pkbuf);
 3810|    261|            if (size < 0) {
  ------------------
  |  Branch (3810:17): [True: 0, False: 261]
  ------------------
 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|    261|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_CONTROL_PLANE_ONLY_INDICATION_PRESENT;
  ------------------
  |  | 1234|    261|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_CONTROL_PLANE_ONLY_INDICATION_PRESENT ((uint64_t)1<<13)
  ------------------
 3816|    261|            decoded += size;
 3817|    261|            break;
 3818|    196|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1256|    196|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x66
  ------------------
  |  Branch (3818:9): [True: 196, False: 10.0k]
  ------------------
 3819|    196|            size = ogs_nas_5gs_decode_ip_header_compression_configuration(&pdu_session_establishment_accept->ip_header_compression_configuration, pkbuf);
 3820|    196|            if (size < 0) {
  ------------------
  |  Branch (3820:17): [True: 1, False: 195]
  ------------------
 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|    195|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1235|    195|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<14)
  ------------------
 3826|    195|            decoded += size;
 3827|    195|            break;
 3828|    196|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1257|    196|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x1F
  ------------------
  |  Branch (3828:9): [True: 196, False: 10.0k]
  ------------------
 3829|    196|            size = ogs_nas_5gs_decode_ethernet_header_compression_configuration(&pdu_session_establishment_accept->ethernet_header_compression_configuration, pkbuf);
 3830|    196|            if (size < 0) {
  ------------------
  |  Branch (3830:17): [True: 2, False: 194]
  ------------------
 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|    194|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1236|    194|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<15)
  ------------------
 3836|    194|            decoded += size;
 3837|    194|            break;
 3838|    206|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  | 1258|    206|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (3838:9): [True: 206, False: 10.0k]
  ------------------
 3839|    206|            size = ogs_nas_5gs_decode_service_level_aa_container(&pdu_session_establishment_accept->service_level_aa_container, pkbuf);
 3840|    206|            if (size < 0) {
  ------------------
  |  Branch (3840:17): [True: 1, False: 205]
  ------------------
 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|    205|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  | 1237|    205|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<16)
  ------------------
 3846|    205|            decoded += size;
 3847|    205|            break;
 3848|    204|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RECEIVED_MBS_CONTAINER_TYPE:
  ------------------
  |  | 1259|    204|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RECEIVED_MBS_CONTAINER_TYPE 0x71
  ------------------
  |  Branch (3848:9): [True: 204, False: 10.0k]
  ------------------
 3849|    204|            size = ogs_nas_5gs_decode_received_mbs_container(&pdu_session_establishment_accept->received_mbs_container, pkbuf);
 3850|    204|            if (size < 0) {
  ------------------
  |  Branch (3850:17): [True: 1, False: 203]
  ------------------
 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|    203|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RECEIVED_MBS_CONTAINER_PRESENT;
  ------------------
  |  | 1238|    203|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_RECEIVED_MBS_CONTAINER_PRESENT ((uint64_t)1<<17)
  ------------------
 3856|    203|            decoded += size;
 3857|    203|            break;
 3858|    232|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_N3QAI_TYPE:
  ------------------
  |  | 1260|    232|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_N3QAI_TYPE 0x70
  ------------------
  |  Branch (3858:9): [True: 232, False: 10.0k]
  ------------------
 3859|    232|            size = ogs_nas_5gs_decode_n3qai(&pdu_session_establishment_accept->n3qai, pkbuf);
 3860|    232|            if (size < 0) {
  ------------------
  |  Branch (3860:17): [True: 2, False: 230]
  ------------------
 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|    230|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_N3QAI_PRESENT;
  ------------------
  |  | 1239|    230|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_N3QAI_PRESENT ((uint64_t)1<<18)
  ------------------
 3866|    230|            decoded += size;
 3867|    230|            break;
 3868|    208|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_PROTOCOL_DESCRIPTION_TYPE:
  ------------------
  |  | 1261|    208|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_PROTOCOL_DESCRIPTION_TYPE 0x73
  ------------------
  |  Branch (3868:9): [True: 208, False: 10.0k]
  ------------------
 3869|    208|            size = ogs_nas_5gs_decode_protocol_description(&pdu_session_establishment_accept->protocol_description, pkbuf);
 3870|    208|            if (size < 0) {
  ------------------
  |  Branch (3870:17): [True: 3, False: 205]
  ------------------
 3871|      3|               ogs_error("ogs_nas_5gs_decode_protocol_description() 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__) 
  |  |  ------------------
  ------------------
 3872|      3|               return size;
 3873|      3|            }
 3874|       |
 3875|    205|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_PROTOCOL_DESCRIPTION_PRESENT;
  ------------------
  |  | 1240|    205|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_PROTOCOL_DESCRIPTION_PRESENT ((uint64_t)1<<19)
  ------------------
 3876|    205|            decoded += size;
 3877|    205|            break;
 3878|    205|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ECN_MARKING_FOR_L4S_INDICATION_TYPE:
  ------------------
  |  | 1262|    205|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ECN_MARKING_FOR_L4S_INDICATION_TYPE 0x38
  ------------------
  |  Branch (3878:9): [True: 205, False: 10.0k]
  ------------------
 3879|    205|            size = ogs_nas_5gs_decode_ecn_marking_for_l4s_indication(&pdu_session_establishment_accept->ecn_marking_for_l4s_indication, pkbuf);
 3880|    205|            if (size < 0) {
  ------------------
  |  Branch (3880:17): [True: 1, False: 204]
  ------------------
 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|    204|            pdu_session_establishment_accept->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ECN_MARKING_FOR_L4S_INDICATION_PRESENT;
  ------------------
  |  | 1241|    204|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT_ECN_MARKING_FOR_L4S_INDICATION_PRESENT ((uint64_t)1<<20)
  ------------------
 3886|    204|            decoded += size;
 3887|    204|            break;
 3888|  5.61k|        default:
  ------------------
  |  Branch (3888:9): [True: 5.61k, False: 4.65k]
  ------------------
 3889|  5.61k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  5.61k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  5.61k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  5.61k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  5.61k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  5.61k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  5.61k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3890|  5.61k|            break;
 3891|  10.2k|        }
 3892|  10.2k|    }
 3893|       |
 3894|    256|    return decoded;
 3895|    287|}
ogs_nas_5gs_decode_pdu_session_establishment_reject:
 3898|    126|{
 3899|    126|    ogs_nas_5gs_pdu_session_establishment_reject_t *pdu_session_establishment_reject = &message->gsm.pdu_session_establishment_reject;
 3900|    126|    int decoded = 0;
 3901|    126|    int size = 0;
 3902|       |
 3903|    126|    ogs_trace("[NAS] Decode PDU_SESSION_ESTABLISHMENT_REJECT\n");
  ------------------
  |  |   40|    126|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    126|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    126|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    126|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    126|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    126|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3904|       |
 3905|    126|    size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_establishment_reject->gsm_cause, pkbuf);
 3906|    126|    if (size < 0) {
  ------------------
  |  Branch (3906:9): [True: 1, False: 125]
  ------------------
 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|    125|    decoded += size;
 3912|       |
 3913|  4.92k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (3913:12): [True: 4.82k, False: 104]
  ------------------
 3914|  4.82k|        uint8_t *buffer = pkbuf->data;
 3915|  4.82k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (3915:24): [True: 2.16k, False: 2.65k]
  ------------------
 3916|       |
 3917|  4.82k|        size = sizeof(uint8_t);
 3918|  4.82k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3918:13): [True: 0, False: 4.82k]
  ------------------
 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.82k|        decoded += size;
 3923|       |
 3924|  4.82k|        switch(type) {
 3925|    199|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_BACK_OFF_TIMER_VALUE_TYPE:
  ------------------
  |  | 1307|    199|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_BACK_OFF_TIMER_VALUE_TYPE 0x37
  ------------------
  |  Branch (3925:9): [True: 199, False: 4.62k]
  ------------------
 3926|    199|            size = ogs_nas_5gs_decode_gprs_timer_3(&pdu_session_establishment_reject->back_off_timer_value, pkbuf);
 3927|    199|            if (size < 0) {
  ------------------
  |  Branch (3927:17): [True: 1, False: 198]
  ------------------
 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|    198|            pdu_session_establishment_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_BACK_OFF_TIMER_VALUE_PRESENT;
  ------------------
  |  | 1299|    198|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_BACK_OFF_TIMER_VALUE_PRESENT ((uint64_t)1<<0)
  ------------------
 3933|    198|            decoded += size;
 3934|    198|            break;
 3935|  1.35k|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ALLOWED_SSC_MODE_TYPE:
  ------------------
  |  | 1308|  1.35k|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ALLOWED_SSC_MODE_TYPE 0xF0
  ------------------
  |  Branch (3935:9): [True: 1.35k, False: 3.46k]
  ------------------
 3936|  1.35k|            decoded--;
 3937|  1.35k|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|  1.35k|    do { \
  |  |  114|  1.35k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.35k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.35k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.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|  1.35k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.35k]
  |  |  ------------------
  ------------------
 3938|  1.35k|            size = ogs_nas_5gs_decode_allowed_ssc_mode(&pdu_session_establishment_reject->allowed_ssc_mode, pkbuf);
 3939|  1.35k|            if (size < 0) {
  ------------------
  |  Branch (3939:17): [True: 0, False: 1.35k]
  ------------------
 3940|      0|               ogs_error("ogs_nas_5gs_decode_allowed_ssc_mode() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3941|      0|               return size;
 3942|      0|            }
 3943|       |
 3944|  1.35k|            pdu_session_establishment_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ALLOWED_SSC_MODE_PRESENT;
  ------------------
  |  | 1300|  1.35k|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ALLOWED_SSC_MODE_PRESENT ((uint64_t)1<<1)
  ------------------
 3945|  1.35k|            decoded += size;
 3946|  1.35k|            break;
 3947|    195|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_EAP_MESSAGE_TYPE:
  ------------------
  |  | 1309|    195|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (3947:9): [True: 195, False: 4.62k]
  ------------------
 3948|    195|            size = ogs_nas_5gs_decode_eap_message(&pdu_session_establishment_reject->eap_message, pkbuf);
 3949|    195|            if (size < 0) {
  ------------------
  |  Branch (3949:17): [True: 1, False: 194]
  ------------------
 3950|      1|               ogs_error("ogs_nas_5gs_decode_eap_message() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3951|      1|               return size;
 3952|      1|            }
 3953|       |
 3954|    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|    200|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_TYPE:
  ------------------
  |  | 1310|    200|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_TYPE 0x61
  ------------------
  |  Branch (3957:9): [True: 200, False: 4.62k]
  ------------------
 3958|    200|            size = ogs_nas_5gs_decode_5gsm_congestion_re_attempt_indicator(&pdu_session_establishment_reject->gsm_congestion_re_attempt_indicator, pkbuf);
 3959|    200|            if (size < 0) {
  ------------------
  |  Branch (3959:17): [True: 3, False: 197]
  ------------------
 3960|      3|               ogs_error("ogs_nas_5gs_decode_5gsm_congestion_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__) 
  |  |  ------------------
  ------------------
 3961|      3|               return size;
 3962|      3|            }
 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|    197|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1311|    197|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (3967:9): [True: 197, False: 4.62k]
  ------------------
 3968|    197|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_establishment_reject->extended_protocol_configuration_options, pkbuf);
 3969|    197|            if (size < 0) {
  ------------------
  |  Branch (3969:17): [True: 2, False: 195]
  ------------------
 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|    195|            pdu_session_establishment_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1303|    195|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<4)
  ------------------
 3975|    195|            decoded += size;
 3976|    195|            break;
 3977|    216|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_RE_ATTEMPT_INDICATOR_TYPE:
  ------------------
  |  | 1312|    216|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_RE_ATTEMPT_INDICATOR_TYPE 0x1D
  ------------------
  |  Branch (3977:9): [True: 216, False: 4.60k]
  ------------------
 3978|    216|            size = ogs_nas_5gs_decode_re_attempt_indicator(&pdu_session_establishment_reject->re_attempt_indicator, pkbuf);
 3979|    216|            if (size < 0) {
  ------------------
  |  Branch (3979:17): [True: 3, False: 213]
  ------------------
 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|    213|            pdu_session_establishment_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_RE_ATTEMPT_INDICATOR_PRESENT;
  ------------------
  |  | 1304|    213|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_RE_ATTEMPT_INDICATOR_PRESENT ((uint64_t)1<<5)
  ------------------
 3985|    213|            decoded += size;
 3986|    213|            break;
 3987|    199|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  | 1313|    199|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (3987:9): [True: 199, False: 4.62k]
  ------------------
 3988|    199|            size = ogs_nas_5gs_decode_service_level_aa_container(&pdu_session_establishment_reject->service_level_aa_container, pkbuf);
 3989|    199|            if (size < 0) {
  ------------------
  |  Branch (3989:17): [True: 2, False: 197]
  ------------------
 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|    197|            pdu_session_establishment_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  | 1305|    197|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<6)
  ------------------
 3995|    197|            decoded += size;
 3996|    197|            break;
 3997|    264|        case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ATSSS_CONTAINER_TYPE:
  ------------------
  |  | 1314|    264|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ATSSS_CONTAINER_TYPE 0x77
  ------------------
  |  Branch (3997:9): [True: 264, False: 4.55k]
  ------------------
 3998|    264|            size = ogs_nas_5gs_decode_atsss_container(&pdu_session_establishment_reject->atsss_container, pkbuf);
 3999|    264|            if (size < 0) {
  ------------------
  |  Branch (3999:17): [True: 9, False: 255]
  ------------------
 4000|      9|               ogs_error("ogs_nas_5gs_decode_atsss_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__) 
  |  |  ------------------
  ------------------
 4001|      9|               return size;
 4002|      9|            }
 4003|       |
 4004|    255|            pdu_session_establishment_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ATSSS_CONTAINER_PRESENT;
  ------------------
  |  | 1306|    255|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT_ATSSS_CONTAINER_PRESENT ((uint64_t)1<<7)
  ------------------
 4005|    255|            decoded += size;
 4006|    255|            break;
 4007|  1.99k|        default:
  ------------------
  |  Branch (4007:9): [True: 1.99k, False: 2.82k]
  ------------------
 4008|  1.99k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.99k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.99k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.99k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.99k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.99k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.99k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4009|  1.99k|            break;
 4010|  4.82k|        }
 4011|  4.82k|    }
 4012|       |
 4013|    104|    return decoded;
 4014|    125|}
ogs_nas_5gs_decode_pdu_session_authentication_command:
 4017|     52|{
 4018|     52|    ogs_nas_5gs_pdu_session_authentication_command_t *pdu_session_authentication_command = &message->gsm.pdu_session_authentication_command;
 4019|     52|    int decoded = 0;
 4020|     52|    int size = 0;
 4021|       |
 4022|     52|    ogs_trace("[NAS] Decode PDU_SESSION_AUTHENTICATION_COMMAND\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__) 
  |  |  ------------------
  ------------------
 4023|       |
 4024|     52|    size = ogs_nas_5gs_decode_eap_message(&pdu_session_authentication_command->eap_message, pkbuf);
 4025|     52|    if (size < 0) {
  ------------------
  |  Branch (4025:9): [True: 6, False: 46]
  ------------------
 4026|      6|        ogs_error("ogs_nas_5gs_decode_eap_message() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4027|      6|        return size;
 4028|      6|    }
 4029|       |
 4030|     46|    decoded += size;
 4031|       |
 4032|  1.12k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4032:12): [True: 1.08k, False: 45]
  ------------------
 4033|  1.08k|        uint8_t *buffer = pkbuf->data;
 4034|  1.08k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4034:24): [True: 286, False: 796]
  ------------------
 4035|       |
 4036|  1.08k|        size = sizeof(uint8_t);
 4037|  1.08k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4037:13): [True: 0, False: 1.08k]
  ------------------
 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.08k|        decoded += size;
 4042|       |
 4043|  1.08k|        switch(type) {
 4044|    197|        case OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1337|    197|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4044:9): [True: 197, False: 885]
  ------------------
 4045|    197|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_authentication_command->extended_protocol_configuration_options, pkbuf);
 4046|    197|            if (size < 0) {
  ------------------
  |  Branch (4046:17): [True: 1, False: 196]
  ------------------
 4047|      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__) 
  |  |  ------------------
  ------------------
 4048|      1|               return size;
 4049|      1|            }
 4050|       |
 4051|    196|            pdu_session_authentication_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1336|    196|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<0)
  ------------------
 4052|    196|            decoded += size;
 4053|    196|            break;
 4054|    885|        default:
  ------------------
  |  Branch (4054:9): [True: 885, False: 197]
  ------------------
 4055|    885|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|    885|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    885|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    885|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    885|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    885|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    885|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4056|    885|            break;
 4057|  1.08k|        }
 4058|  1.08k|    }
 4059|       |
 4060|     45|    return decoded;
 4061|     46|}
ogs_nas_5gs_decode_pdu_session_authentication_complete:
 4064|     60|{
 4065|     60|    ogs_nas_5gs_pdu_session_authentication_complete_t *pdu_session_authentication_complete = &message->gsm.pdu_session_authentication_complete;
 4066|     60|    int decoded = 0;
 4067|     60|    int size = 0;
 4068|       |
 4069|     60|    ogs_trace("[NAS] Decode PDU_SESSION_AUTHENTICATION_COMPLETE\n");
  ------------------
  |  |   40|     60|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     60|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     60|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     60|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     60|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     60|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4070|       |
 4071|     60|    size = ogs_nas_5gs_decode_eap_message(&pdu_session_authentication_complete->eap_message, pkbuf);
 4072|     60|    if (size < 0) {
  ------------------
  |  Branch (4072:9): [True: 6, False: 54]
  ------------------
 4073|      6|        ogs_error("ogs_nas_5gs_decode_eap_message() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4074|      6|        return size;
 4075|      6|    }
 4076|       |
 4077|     54|    decoded += size;
 4078|       |
 4079|  1.64k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4079:12): [True: 1.59k, False: 53]
  ------------------
 4080|  1.59k|        uint8_t *buffer = pkbuf->data;
 4081|  1.59k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4081:24): [True: 397, False: 1.19k]
  ------------------
 4082|       |
 4083|  1.59k|        size = sizeof(uint8_t);
 4084|  1.59k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4084:13): [True: 0, False: 1.59k]
  ------------------
 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|  1.59k|        decoded += size;
 4089|       |
 4090|  1.59k|        switch(type) {
 4091|    211|        case OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1353|    211|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4091:9): [True: 211, False: 1.38k]
  ------------------
 4092|    211|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_authentication_complete->extended_protocol_configuration_options, pkbuf);
 4093|    211|            if (size < 0) {
  ------------------
  |  Branch (4093:17): [True: 1, False: 210]
  ------------------
 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|    210|            pdu_session_authentication_complete->presencemask |= OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1352|    210|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<0)
  ------------------
 4099|    210|            decoded += size;
 4100|    210|            break;
 4101|  1.38k|        default:
  ------------------
  |  Branch (4101:9): [True: 1.38k, False: 211]
  ------------------
 4102|  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__) 
  |  |  ------------------
  ------------------
 4103|  1.38k|            break;
 4104|  1.59k|        }
 4105|  1.59k|    }
 4106|       |
 4107|     53|    return decoded;
 4108|     54|}
ogs_nas_5gs_decode_pdu_session_authentication_result:
 4111|     52|{
 4112|     52|    ogs_nas_5gs_pdu_session_authentication_result_t *pdu_session_authentication_result = &message->gsm.pdu_session_authentication_result;
 4113|     52|    int decoded = 0;
 4114|     52|    int size = 0;
 4115|       |
 4116|     52|    ogs_trace("[NAS] Decode PDU_SESSION_AUTHENTICATION_RESULT\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__) 
  |  |  ------------------
  ------------------
 4117|       |
 4118|  1.88k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4118:12): [True: 1.84k, False: 46]
  ------------------
 4119|  1.84k|        uint8_t *buffer = pkbuf->data;
 4120|  1.84k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4120:24): [True: 645, False: 1.19k]
  ------------------
 4121|       |
 4122|  1.84k|        size = sizeof(uint8_t);
 4123|  1.84k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4123:13): [True: 0, False: 1.84k]
  ------------------
 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.84k|        decoded += size;
 4128|       |
 4129|  1.84k|        switch(type) {
 4130|    199|        case OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EAP_MESSAGE_TYPE:
  ------------------
  |  | 1370|    199|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (4130:9): [True: 199, False: 1.64k]
  ------------------
 4131|    199|            size = ogs_nas_5gs_decode_eap_message(&pdu_session_authentication_result->eap_message, pkbuf);
 4132|    199|            if (size < 0) {
  ------------------
  |  Branch (4132:17): [True: 1, False: 198]
  ------------------
 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|    198|            pdu_session_authentication_result->presencemask |= OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EAP_MESSAGE_PRESENT;
  ------------------
  |  | 1368|    198|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EAP_MESSAGE_PRESENT ((uint64_t)1<<0)
  ------------------
 4138|    198|            decoded += size;
 4139|    198|            break;
 4140|    201|        case OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1371|    201|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4140:9): [True: 201, False: 1.64k]
  ------------------
 4141|    201|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_authentication_result->extended_protocol_configuration_options, pkbuf);
 4142|    201|            if (size < 0) {
  ------------------
  |  Branch (4142:17): [True: 5, False: 196]
  ------------------
 4143|      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__) 
  |  |  ------------------
  ------------------
 4144|      5|               return size;
 4145|      5|            }
 4146|       |
 4147|    196|            pdu_session_authentication_result->presencemask |= OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1369|    196|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<1)
  ------------------
 4148|    196|            decoded += size;
 4149|    196|            break;
 4150|  1.44k|        default:
  ------------------
  |  Branch (4150:9): [True: 1.44k, False: 400]
  ------------------
 4151|  1.44k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.44k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.44k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.44k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.44k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.44k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.44k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4152|  1.44k|            break;
 4153|  1.84k|        }
 4154|  1.84k|    }
 4155|       |
 4156|     46|    return decoded;
 4157|     52|}
ogs_nas_5gs_decode_pdu_session_modification_request:
 4160|    656|{
 4161|    656|    ogs_nas_5gs_pdu_session_modification_request_t *pdu_session_modification_request = &message->gsm.pdu_session_modification_request;
 4162|    656|    int decoded = 0;
 4163|    656|    int size = 0;
 4164|       |
 4165|    656|    ogs_trace("[NAS] Decode PDU_SESSION_MODIFICATION_REQUEST\n");
  ------------------
  |  |   40|    656|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    656|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    656|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    656|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    656|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    656|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4166|       |
 4167|  13.9k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4167:12): [True: 13.4k, False: 470]
  ------------------
 4168|  13.4k|        uint8_t *buffer = pkbuf->data;
 4169|  13.4k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4169:24): [True: 3.79k, False: 9.65k]
  ------------------
 4170|       |
 4171|  13.4k|        size = sizeof(uint8_t);
 4172|  13.4k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4172:13): [True: 0, False: 13.4k]
  ------------------
 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|  13.4k|        decoded += size;
 4177|       |
 4178|  13.4k|        switch(type) {
 4179|    204|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAPABILITY_TYPE:
  ------------------
  |  | 1402|    204|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAPABILITY_TYPE 0x28
  ------------------
  |  Branch (4179:9): [True: 204, False: 13.2k]
  ------------------
 4180|    204|            size = ogs_nas_5gs_decode_5gsm_capability(&pdu_session_modification_request->gsm_capability, pkbuf);
 4181|    204|            if (size < 0) {
  ------------------
  |  Branch (4181:17): [True: 5, False: 199]
  ------------------
 4182|      5|               ogs_error("ogs_nas_5gs_decode_5gsm_capability() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4183|      5|               return size;
 4184|      5|            }
 4185|       |
 4186|    199|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAPABILITY_PRESENT;
  ------------------
  |  | 1385|    199|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAPABILITY_PRESENT ((uint64_t)1<<0)
  ------------------
 4187|    199|            decoded += size;
 4188|    199|            break;
 4189|    239|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAUSE_TYPE:
  ------------------
  |  | 1403|    239|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAUSE_TYPE 0x59
  ------------------
  |  Branch (4189:9): [True: 239, False: 13.2k]
  ------------------
 4190|    239|            size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_modification_request->gsm_cause, pkbuf);
 4191|    239|            if (size < 0) {
  ------------------
  |  Branch (4191:17): [True: 5, False: 234]
  ------------------
 4192|      5|               ogs_error("ogs_nas_5gs_decode_5gsm_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__) 
  |  |  ------------------
  ------------------
 4193|      5|               return size;
 4194|      5|            }
 4195|       |
 4196|    234|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAUSE_PRESENT;
  ------------------
  |  | 1386|    234|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_5GSM_CAUSE_PRESENT ((uint64_t)1<<1)
  ------------------
 4197|    234|            decoded += size;
 4198|    234|            break;
 4199|    254|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_TYPE:
  ------------------
  |  | 1404|    254|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_TYPE 0x55
  ------------------
  |  Branch (4199:9): [True: 254, False: 13.1k]
  ------------------
 4200|    254|            size = ogs_nas_5gs_decode_maximum_number_of_supported_packet_filters(&pdu_session_modification_request->maximum_number_of_supported_packet_filters, pkbuf);
 4201|    254|            if (size < 0) {
  ------------------
  |  Branch (4201:17): [True: 7, False: 247]
  ------------------
 4202|      7|               ogs_error("ogs_nas_5gs_decode_maximum_number_of_supported_packet_filters() 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__) 
  |  |  ------------------
  ------------------
 4203|      7|               return size;
 4204|      7|            }
 4205|       |
 4206|    247|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_PRESENT;
  ------------------
  |  | 1387|    247|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS_PRESENT ((uint64_t)1<<2)
  ------------------
 4207|    247|            decoded += size;
 4208|    247|            break;
 4209|  1.03k|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_TYPE:
  ------------------
  |  | 1405|  1.03k|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_TYPE 0xB0
  ------------------
  |  Branch (4209:9): [True: 1.03k, False: 12.4k]
  ------------------
 4210|  1.03k|            decoded--;
 4211|  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]
  |  |  ------------------
  ------------------
 4212|  1.03k|            size = ogs_nas_5gs_decode_always_on_pdu_session_requested(&pdu_session_modification_request->always_on_pdu_session_requested, pkbuf);
 4213|  1.03k|            if (size < 0) {
  ------------------
  |  Branch (4213:17): [True: 0, False: 1.03k]
  ------------------
 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|  1.03k|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_PRESENT;
  ------------------
  |  | 1388|  1.03k|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ALWAYS_ON_PDU_SESSION_REQUESTED_PRESENT ((uint64_t)1<<3)
  ------------------
 4219|  1.03k|            decoded += size;
 4220|  1.03k|            break;
 4221|    252|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_INTEGRITY_PROTECTION_MAXIMUM_DATA_RATE_TYPE:
  ------------------
  |  | 1406|    252|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_INTEGRITY_PROTECTION_MAXIMUM_DATA_RATE_TYPE 0x13
  ------------------
  |  Branch (4221:9): [True: 252, False: 13.1k]
  ------------------
 4222|    252|            size = ogs_nas_5gs_decode_integrity_protection_maximum_data_rate(&pdu_session_modification_request->integrity_protection_maximum_data_rate, pkbuf);
 4223|    252|            if (size < 0) {
  ------------------
  |  Branch (4223:17): [True: 5, False: 247]
  ------------------
 4224|      5|               ogs_error("ogs_nas_5gs_decode_integrity_protection_maximum_data_rate() 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__) 
  |  |  ------------------
  ------------------
 4225|      5|               return size;
 4226|      5|            }
 4227|       |
 4228|    247|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_INTEGRITY_PROTECTION_MAXIMUM_DATA_RATE_PRESENT;
  ------------------
  |  | 1389|    247|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_INTEGRITY_PROTECTION_MAXIMUM_DATA_RATE_PRESENT ((uint64_t)1<<4)
  ------------------
 4229|    247|            decoded += size;
 4230|    247|            break;
 4231|    413|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_RULES_TYPE:
  ------------------
  |  | 1407|    413|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_RULES_TYPE 0x7A
  ------------------
  |  Branch (4231:9): [True: 413, False: 13.0k]
  ------------------
 4232|    413|            size = ogs_nas_5gs_decode_qos_rules(&pdu_session_modification_request->requested_qos_rules, pkbuf);
 4233|    413|            if (size < 0) {
  ------------------
  |  Branch (4233:17): [True: 8, False: 405]
  ------------------
 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|    405|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_RULES_PRESENT;
  ------------------
  |  | 1390|    405|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_RULES_PRESENT ((uint64_t)1<<5)
  ------------------
 4239|    405|            decoded += size;
 4240|    405|            break;
 4241|    277|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_FLOW_DESCRIPTIONS_TYPE:
  ------------------
  |  | 1408|    277|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_FLOW_DESCRIPTIONS_TYPE 0x79
  ------------------
  |  Branch (4241:9): [True: 277, False: 13.1k]
  ------------------
 4242|    277|            size = ogs_nas_5gs_decode_qos_flow_descriptions(&pdu_session_modification_request->requested_qos_flow_descriptions, pkbuf);
 4243|    277|            if (size < 0) {
  ------------------
  |  Branch (4243:17): [True: 14, False: 263]
  ------------------
 4244|     14|               ogs_error("ogs_nas_5gs_decode_qos_flow_descriptions() 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__) 
  |  |  ------------------
  ------------------
 4245|     14|               return size;
 4246|     14|            }
 4247|       |
 4248|    263|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_FLOW_DESCRIPTIONS_PRESENT;
  ------------------
  |  | 1391|    263|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_QOS_FLOW_DESCRIPTIONS_PRESENT ((uint64_t)1<<6)
  ------------------
 4249|    263|            decoded += size;
 4250|    263|            break;
 4251|    256|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAPPED_EPS_BEARER_CONTEXTS_TYPE:
  ------------------
  |  | 1409|    256|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAPPED_EPS_BEARER_CONTEXTS_TYPE 0x75
  ------------------
  |  Branch (4251:9): [True: 256, False: 13.1k]
  ------------------
 4252|    256|            size = ogs_nas_5gs_decode_mapped_eps_bearer_contexts(&pdu_session_modification_request->mapped_eps_bearer_contexts, pkbuf);
 4253|    256|            if (size < 0) {
  ------------------
  |  Branch (4253:17): [True: 13, False: 243]
  ------------------
 4254|     13|               ogs_error("ogs_nas_5gs_decode_mapped_eps_bearer_contexts() 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__) 
  |  |  ------------------
  ------------------
 4255|     13|               return size;
 4256|     13|            }
 4257|       |
 4258|    243|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAPPED_EPS_BEARER_CONTEXTS_PRESENT;
  ------------------
  |  | 1392|    243|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_MAPPED_EPS_BEARER_CONTEXTS_PRESENT ((uint64_t)1<<7)
  ------------------
 4259|    243|            decoded += size;
 4260|    243|            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: 13.2k]
  ------------------
 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: 4, False: 224]
  ------------------
 4264|      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__) 
  |  |  ------------------
  ------------------
 4265|      4|               return size;
 4266|      4|            }
 4267|       |
 4268|    224|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1393|    224|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<8)
  ------------------
 4269|    224|            decoded += size;
 4270|    224|            break;
 4271|    221|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE:
  ------------------
  |  | 1411|    221|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE 0x74
  ------------------
  |  Branch (4271:9): [True: 221, False: 13.2k]
  ------------------
 4272|    221|            size = ogs_nas_5gs_decode_port_management_information_container(&pdu_session_modification_request->port_management_information_container, pkbuf);
 4273|    221|            if (size < 0) {
  ------------------
  |  Branch (4273:17): [True: 13, False: 208]
  ------------------
 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|    208|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT;
  ------------------
  |  | 1394|    208|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT ((uint64_t)1<<9)
  ------------------
 4279|    208|            decoded += size;
 4280|    208|            break;
 4281|    248|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1412|    248|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x66
  ------------------
  |  Branch (4281:9): [True: 248, False: 13.2k]
  ------------------
 4282|    248|            size = ogs_nas_5gs_decode_header_compression_configuration(&pdu_session_modification_request->ip_header_compression_configuration, pkbuf);
 4283|    248|            if (size < 0) {
  ------------------
  |  Branch (4283:17): [True: 12, False: 236]
  ------------------
 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|    236|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1395|    236|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<10)
  ------------------
 4289|    236|            decoded += size;
 4290|    236|            break;
 4291|    216|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1413|    216|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x1F
  ------------------
  |  Branch (4291:9): [True: 216, False: 13.2k]
  ------------------
 4292|    216|            size = ogs_nas_5gs_decode_ethernet_header_compression_configuration(&pdu_session_modification_request->ethernet_header_compression_configuration, pkbuf);
 4293|    216|            if (size < 0) {
  ------------------
  |  Branch (4293:17): [True: 5, False: 211]
  ------------------
 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|    211|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1396|    211|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<11)
  ------------------
 4299|    211|            decoded += size;
 4300|    211|            break;
 4301|    257|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_MBS_CONTAINER_TYPE:
  ------------------
  |  | 1414|    257|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_MBS_CONTAINER_TYPE 0x70
  ------------------
  |  Branch (4301:9): [True: 257, False: 13.1k]
  ------------------
 4302|    257|            size = ogs_nas_5gs_decode_requested_mbs_container(&pdu_session_modification_request->requested_mbs_container, pkbuf);
 4303|    257|            if (size < 0) {
  ------------------
  |  Branch (4303:17): [True: 25, False: 232]
  ------------------
 4304|     25|               ogs_error("ogs_nas_5gs_decode_requested_mbs_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__) 
  |  |  ------------------
  ------------------
 4305|     25|               return size;
 4306|     25|            }
 4307|       |
 4308|    232|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_MBS_CONTAINER_PRESENT;
  ------------------
  |  | 1397|    232|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_REQUESTED_MBS_CONTAINER_PRESENT ((uint64_t)1<<12)
  ------------------
 4309|    232|            decoded += size;
 4310|    232|            break;
 4311|    246|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  | 1415|    246|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (4311:9): [True: 246, False: 13.2k]
  ------------------
 4312|    246|            size = ogs_nas_5gs_decode_service_level_aa_container(&pdu_session_modification_request->service_level_aa_container, pkbuf);
 4313|    246|            if (size < 0) {
  ------------------
  |  Branch (4313:17): [True: 7, False: 239]
  ------------------
 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|    239|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  | 1398|    239|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<13)
  ------------------
 4319|    239|            decoded += size;
 4320|    239|            break;
 4321|    247|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DELAY_BUDGET_TYPE:
  ------------------
  |  | 1416|    247|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DELAY_BUDGET_TYPE 0x73
  ------------------
  |  Branch (4321:9): [True: 247, False: 13.2k]
  ------------------
 4322|    247|            size = ogs_nas_5gs_decode_non_3gpp_delay_budget(&pdu_session_modification_request->non_3gpp_delay_budget, pkbuf);
 4323|    247|            if (size < 0) {
  ------------------
  |  Branch (4323:17): [True: 29, False: 218]
  ------------------
 4324|     29|               ogs_error("ogs_nas_5gs_decode_non_3gpp_delay_budget() 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__) 
  |  |  ------------------
  ------------------
 4325|     29|               return size;
 4326|     29|            }
 4327|       |
 4328|    218|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DELAY_BUDGET_PRESENT;
  ------------------
  |  | 1399|    218|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DELAY_BUDGET_PRESENT ((uint64_t)1<<14)
  ------------------
 4329|    218|            decoded += size;
 4330|    218|            break;
 4331|    238|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_TYPE:
  ------------------
  |  | 1417|    238|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_TYPE 0x36
  ------------------
  |  Branch (4331:9): [True: 238, False: 13.2k]
  ------------------
 4332|    238|            size = ogs_nas_5gs_decode_ursp_rule_enforcement_reports(&pdu_session_modification_request->ursp_rule_enforcement_reports, pkbuf);
 4333|    238|            if (size < 0) {
  ------------------
  |  Branch (4333:17): [True: 6, False: 232]
  ------------------
 4334|      6|               ogs_error("ogs_nas_5gs_decode_ursp_rule_enforcement_reports() 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__) 
  |  |  ------------------
  ------------------
 4335|      6|               return size;
 4336|      6|            }
 4337|       |
 4338|    232|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_PRESENT;
  ------------------
  |  | 1400|    232|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_URSP_RULE_ENFORCEMENT_REPORTS_PRESENT ((uint64_t)1<<15)
  ------------------
 4339|    232|            decoded += size;
 4340|    232|            break;
 4341|    264|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DEVICE_INFORMATION_TYPE:
  ------------------
  |  | 1418|    264|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DEVICE_INFORMATION_TYPE 0x7C
  ------------------
  |  Branch (4341:9): [True: 264, False: 13.1k]
  ------------------
 4342|    264|            size = ogs_nas_5gs_decode_non_3gpp_device_information(&pdu_session_modification_request->non_3gpp_device_information, pkbuf);
 4343|    264|            if (size < 0) {
  ------------------
  |  Branch (4343:17): [True: 28, False: 236]
  ------------------
 4344|     28|               ogs_error("ogs_nas_5gs_decode_non_3gpp_device_information() 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__) 
  |  |  ------------------
  ------------------
 4345|     28|               return size;
 4346|     28|            }
 4347|       |
 4348|    236|            pdu_session_modification_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DEVICE_INFORMATION_PRESENT;
  ------------------
  |  | 1401|    236|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST_NON_3GPP_DEVICE_INFORMATION_PRESENT ((uint64_t)1<<16)
  ------------------
 4349|    236|            decoded += size;
 4350|    236|            break;
 4351|  8.35k|        default:
  ------------------
  |  Branch (4351:9): [True: 8.35k, False: 5.09k]
  ------------------
 4352|  8.35k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  8.35k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  8.35k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  8.35k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  8.35k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  8.35k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  8.35k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4353|  8.35k|            break;
 4354|  13.4k|        }
 4355|  13.4k|    }
 4356|       |
 4357|    470|    return decoded;
 4358|    656|}
ogs_nas_5gs_decode_pdu_session_modification_reject:
 4361|     79|{
 4362|     79|    ogs_nas_5gs_pdu_session_modification_reject_t *pdu_session_modification_reject = &message->gsm.pdu_session_modification_reject;
 4363|     79|    int decoded = 0;
 4364|     79|    int size = 0;
 4365|       |
 4366|     79|    ogs_trace("[NAS] Decode PDU_SESSION_MODIFICATION_REJECT\n");
  ------------------
  |  |   40|     79|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     79|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     79|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     79|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     79|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     79|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4367|       |
 4368|     79|    size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_modification_reject->gsm_cause, pkbuf);
 4369|     79|    if (size < 0) {
  ------------------
  |  Branch (4369:9): [True: 1, False: 78]
  ------------------
 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|     78|    decoded += size;
 4375|       |
 4376|  1.73k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4376:12): [True: 1.66k, False: 68]
  ------------------
 4377|  1.66k|        uint8_t *buffer = pkbuf->data;
 4378|  1.66k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4378:24): [True: 328, False: 1.34k]
  ------------------
 4379|       |
 4380|  1.66k|        size = sizeof(uint8_t);
 4381|  1.66k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4381:13): [True: 0, False: 1.66k]
  ------------------
 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|  1.66k|        decoded += size;
 4386|       |
 4387|  1.66k|        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: 1.47k]
  ------------------
 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|    222|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_TYPE:
  ------------------
  |  | 1452|    222|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_TYPE 0x61
  ------------------
  |  Branch (4398:9): [True: 222, False: 1.44k]
  ------------------
 4399|    222|            size = ogs_nas_5gs_decode_5gsm_congestion_re_attempt_indicator(&pdu_session_modification_reject->gsm_congestion_re_attempt_indicator, pkbuf);
 4400|    222|            if (size < 0) {
  ------------------
  |  Branch (4400:17): [True: 3, False: 219]
  ------------------
 4401|      3|               ogs_error("ogs_nas_5gs_decode_5gsm_congestion_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__) 
  |  |  ------------------
  ------------------
 4402|      3|               return size;
 4403|      3|            }
 4404|       |
 4405|    219|            pdu_session_modification_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_PRESENT;
  ------------------
  |  | 1448|    219|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_PRESENT ((uint64_t)1<<1)
  ------------------
 4406|    219|            decoded += size;
 4407|    219|            break;
 4408|    229|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1453|    229|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4408:9): [True: 229, False: 1.44k]
  ------------------
 4409|    229|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_modification_reject->extended_protocol_configuration_options, pkbuf);
 4410|    229|            if (size < 0) {
  ------------------
  |  Branch (4410:17): [True: 1, False: 228]
  ------------------
 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|    228|            pdu_session_modification_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1449|    228|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<2)
  ------------------
 4416|    228|            decoded += size;
 4417|    228|            break;
 4418|    202|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_RE_ATTEMPT_INDICATOR_TYPE:
  ------------------
  |  | 1454|    202|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_RE_ATTEMPT_INDICATOR_TYPE 0x1D
  ------------------
  |  Branch (4418:9): [True: 202, False: 1.46k]
  ------------------
 4419|    202|            size = ogs_nas_5gs_decode_re_attempt_indicator(&pdu_session_modification_reject->re_attempt_indicator, pkbuf);
 4420|    202|            if (size < 0) {
  ------------------
  |  Branch (4420:17): [True: 5, False: 197]
  ------------------
 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|    197|            pdu_session_modification_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_RE_ATTEMPT_INDICATOR_PRESENT;
  ------------------
  |  | 1450|    197|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT_RE_ATTEMPT_INDICATOR_PRESENT ((uint64_t)1<<3)
  ------------------
 4426|    197|            decoded += size;
 4427|    197|            break;
 4428|    821|        default:
  ------------------
  |  Branch (4428:9): [True: 821, False: 848]
  ------------------
 4429|    821|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|    821|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    821|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    821|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    821|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    821|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    821|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4430|    821|            break;
 4431|  1.66k|        }
 4432|  1.66k|    }
 4433|       |
 4434|     68|    return decoded;
 4435|     78|}
ogs_nas_5gs_decode_pdu_session_modification_command:
 4438|    558|{
 4439|    558|    ogs_nas_5gs_pdu_session_modification_command_t *pdu_session_modification_command = &message->gsm.pdu_session_modification_command;
 4440|    558|    int decoded = 0;
 4441|    558|    int size = 0;
 4442|       |
 4443|    558|    ogs_trace("[NAS] Decode PDU_SESSION_MODIFICATION_COMMAND\n");
  ------------------
  |  |   40|    558|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    558|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    558|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    558|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    558|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    558|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4444|       |
 4445|  9.94k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4445:12): [True: 9.55k, False: 386]
  ------------------
 4446|  9.55k|        uint8_t *buffer = pkbuf->data;
 4447|  9.55k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4447:24): [True: 2.51k, False: 7.04k]
  ------------------
 4448|       |
 4449|  9.55k|        size = sizeof(uint8_t);
 4450|  9.55k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4450:13): [True: 0, False: 9.55k]
  ------------------
 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.55k|        decoded += size;
 4455|       |
 4456|  9.55k|        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: 9.36k]
  ------------------
 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|    101|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SESSION_AMBR_TYPE:
  ------------------
  |  | 1492|    101|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SESSION_AMBR_TYPE 0x2A
  ------------------
  |  Branch (4467:9): [True: 101, False: 9.45k]
  ------------------
 4468|    101|            size = ogs_nas_5gs_decode_session_ambr(&pdu_session_modification_command->session_ambr, pkbuf);
 4469|    101|            if (size < 0) {
  ------------------
  |  Branch (4469:17): [True: 18, False: 83]
  ------------------
 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|     83|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SESSION_AMBR_PRESENT;
  ------------------
  |  | 1473|     83|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SESSION_AMBR_PRESENT ((uint64_t)1<<1)
  ------------------
 4475|     83|            decoded += size;
 4476|     83|            break;
 4477|    229|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RQ_TIMER_VALUE_TYPE:
  ------------------
  |  | 1493|    229|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RQ_TIMER_VALUE_TYPE 0x56
  ------------------
  |  Branch (4477:9): [True: 229, False: 9.32k]
  ------------------
 4478|    229|            size = ogs_nas_5gs_decode_gprs_timer(&pdu_session_modification_command->rq_timer_value, pkbuf);
 4479|    229|            if (size < 0) {
  ------------------
  |  Branch (4479:17): [True: 6, False: 223]
  ------------------
 4480|      6|               ogs_error("ogs_nas_5gs_decode_gprs_timer() 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__) 
  |  |  ------------------
  ------------------
 4481|      6|               return size;
 4482|      6|            }
 4483|       |
 4484|    223|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RQ_TIMER_VALUE_PRESENT;
  ------------------
  |  | 1474|    223|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RQ_TIMER_VALUE_PRESENT ((uint64_t)1<<2)
  ------------------
 4485|    223|            decoded += size;
 4486|    223|            break;
 4487|    360|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALWAYS_ON_PDU_SESSION_INDICATION_TYPE:
  ------------------
  |  | 1494|    360|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALWAYS_ON_PDU_SESSION_INDICATION_TYPE 0x80
  ------------------
  |  Branch (4487:9): [True: 360, False: 9.19k]
  ------------------
 4488|    360|            decoded--;
 4489|    360|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    360|    do { \
  |  |  114|    360|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    360|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 360, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    360|        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|    360|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 360]
  |  |  ------------------
  ------------------
 4490|    360|            size = ogs_nas_5gs_decode_always_on_pdu_session_indication(&pdu_session_modification_command->always_on_pdu_session_indication, pkbuf);
 4491|    360|            if (size < 0) {
  ------------------
  |  Branch (4491:17): [True: 0, False: 360]
  ------------------
 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|    360|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALWAYS_ON_PDU_SESSION_INDICATION_PRESENT;
  ------------------
  |  | 1475|    360|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALWAYS_ON_PDU_SESSION_INDICATION_PRESENT ((uint64_t)1<<3)
  ------------------
 4497|    360|            decoded += size;
 4498|    360|            break;
 4499|    302|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_AUTHORIZED_QOS_RULES_TYPE:
  ------------------
  |  | 1495|    302|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_AUTHORIZED_QOS_RULES_TYPE 0x7A
  ------------------
  |  Branch (4499:9): [True: 302, False: 9.25k]
  ------------------
 4500|    302|            size = ogs_nas_5gs_decode_qos_rules(&pdu_session_modification_command->authorized_qos_rules, pkbuf);
 4501|    302|            if (size < 0) {
  ------------------
  |  Branch (4501:17): [True: 5, False: 297]
  ------------------
 4502|      5|               ogs_error("ogs_nas_5gs_decode_qos_rules() 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__) 
  |  |  ------------------
  ------------------
 4503|      5|               return size;
 4504|      5|            }
 4505|       |
 4506|    297|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_AUTHORIZED_QOS_RULES_PRESENT;
  ------------------
  |  | 1476|    297|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_AUTHORIZED_QOS_RULES_PRESENT ((uint64_t)1<<4)
  ------------------
 4507|    297|            decoded += size;
 4508|    297|            break;
 4509|    247|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_MAPPED_EPS_BEARER_CONTEXTS_TYPE:
  ------------------
  |  | 1496|    247|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_MAPPED_EPS_BEARER_CONTEXTS_TYPE 0x75
  ------------------
  |  Branch (4509:9): [True: 247, False: 9.31k]
  ------------------
 4510|    247|            size = ogs_nas_5gs_decode_mapped_eps_bearer_contexts(&pdu_session_modification_command->mapped_eps_bearer_contexts, pkbuf);
 4511|    247|            if (size < 0) {
  ------------------
  |  Branch (4511:17): [True: 16, False: 231]
  ------------------
 4512|     16|               ogs_error("ogs_nas_5gs_decode_mapped_eps_bearer_contexts() 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__) 
  |  |  ------------------
  ------------------
 4513|     16|               return size;
 4514|     16|            }
 4515|       |
 4516|    231|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_MAPPED_EPS_BEARER_CONTEXTS_PRESENT;
  ------------------
  |  | 1477|    231|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_MAPPED_EPS_BEARER_CONTEXTS_PRESENT ((uint64_t)1<<5)
  ------------------
 4517|    231|            decoded += size;
 4518|    231|            break;
 4519|    266|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_AUTHORIZED_QOS_FLOW_DESCRIPTIONS_TYPE:
  ------------------
  |  | 1497|    266|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_AUTHORIZED_QOS_FLOW_DESCRIPTIONS_TYPE 0x79
  ------------------
  |  Branch (4519:9): [True: 266, False: 9.29k]
  ------------------
 4520|    266|            size = ogs_nas_5gs_decode_qos_flow_descriptions(&pdu_session_modification_command->authorized_qos_flow_descriptions, pkbuf);
 4521|    266|            if (size < 0) {
  ------------------
  |  Branch (4521:17): [True: 13, False: 253]
  ------------------
 4522|     13|               ogs_error("ogs_nas_5gs_decode_qos_flow_descriptions() 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__) 
  |  |  ------------------
  ------------------
 4523|     13|               return size;
 4524|     13|            }
 4525|       |
 4526|    253|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_AUTHORIZED_QOS_FLOW_DESCRIPTIONS_PRESENT;
  ------------------
  |  | 1478|    253|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_AUTHORIZED_QOS_FLOW_DESCRIPTIONS_PRESENT ((uint64_t)1<<6)
  ------------------
 4527|    253|            decoded += size;
 4528|    253|            break;
 4529|    225|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1498|    225|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4529:9): [True: 225, False: 9.33k]
  ------------------
 4530|    225|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_modification_command->extended_protocol_configuration_options, pkbuf);
 4531|    225|            if (size < 0) {
  ------------------
  |  Branch (4531:17): [True: 3, False: 222]
  ------------------
 4532|      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__) 
  |  |  ------------------
  ------------------
 4533|      3|               return size;
 4534|      3|            }
 4535|       |
 4536|    222|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1479|    222|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<7)
  ------------------
 4537|    222|            decoded += size;
 4538|    222|            break;
 4539|    279|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ATSSS_CONTAINER_TYPE:
  ------------------
  |  | 1499|    279|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ATSSS_CONTAINER_TYPE 0x77
  ------------------
  |  Branch (4539:9): [True: 279, False: 9.27k]
  ------------------
 4540|    279|            size = ogs_nas_5gs_decode_atsss_container(&pdu_session_modification_command->atsss_container, pkbuf);
 4541|    279|            if (size < 0) {
  ------------------
  |  Branch (4541:17): [True: 19, False: 260]
  ------------------
 4542|     19|               ogs_error("ogs_nas_5gs_decode_atsss_container() failed");
  ------------------
  |  |   36|     19|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     19|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     19|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     19|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     19|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     19|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4543|     19|               return size;
 4544|     19|            }
 4545|       |
 4546|    260|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ATSSS_CONTAINER_PRESENT;
  ------------------
  |  | 1480|    260|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ATSSS_CONTAINER_PRESENT ((uint64_t)1<<8)
  ------------------
 4547|    260|            decoded += size;
 4548|    260|            break;
 4549|    222|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1500|    222|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_IP_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x66
  ------------------
  |  Branch (4549:9): [True: 222, False: 9.33k]
  ------------------
 4550|    222|            size = ogs_nas_5gs_decode_ip_header_compression_configuration(&pdu_session_modification_command->ip_header_compression_configuration, pkbuf);
 4551|    222|            if (size < 0) {
  ------------------
  |  Branch (4551:17): [True: 5, False: 217]
  ------------------
 4552|      5|               ogs_error("ogs_nas_5gs_decode_ip_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__) 
  |  |  ------------------
  ------------------
 4553|      5|               return size;
 4554|      5|            }
 4555|       |
 4556|    217|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1481|    217|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_IP_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<9)
  ------------------
 4557|    217|            decoded += size;
 4558|    217|            break;
 4559|    203|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE:
  ------------------
  |  | 1501|    203|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE 0x74
  ------------------
  |  Branch (4559:9): [True: 203, False: 9.35k]
  ------------------
 4560|    203|            size = ogs_nas_5gs_decode_port_management_information_container(&pdu_session_modification_command->port_management_information_container, pkbuf);
 4561|    203|            if (size < 0) {
  ------------------
  |  Branch (4561:17): [True: 6, False: 197]
  ------------------
 4562|      6|               ogs_error("ogs_nas_5gs_decode_port_management_information_container() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4563|      6|               return size;
 4564|      6|            }
 4565|       |
 4566|    197|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT;
  ------------------
  |  | 1482|    197|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT ((uint64_t)1<<10)
  ------------------
 4567|    197|            decoded += size;
 4568|    197|            break;
 4569|    204|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVING_PLMN_RATE_CONTROL_TYPE:
  ------------------
  |  | 1502|    204|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVING_PLMN_RATE_CONTROL_TYPE 0x1E
  ------------------
  |  Branch (4569:9): [True: 204, False: 9.35k]
  ------------------
 4570|    204|            size = ogs_nas_5gs_decode_serving_plmn_rate_control(&pdu_session_modification_command->serving_plmn_rate_control, pkbuf);
 4571|    204|            if (size < 0) {
  ------------------
  |  Branch (4571:17): [True: 5, False: 199]
  ------------------
 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|    199|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVING_PLMN_RATE_CONTROL_PRESENT;
  ------------------
  |  | 1483|    199|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVING_PLMN_RATE_CONTROL_PRESENT ((uint64_t)1<<11)
  ------------------
 4577|    199|            decoded += size;
 4578|    199|            break;
 4579|    227|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE:
  ------------------
  |  | 1503|    227|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_TYPE 0x1F
  ------------------
  |  Branch (4579:9): [True: 227, False: 9.33k]
  ------------------
 4580|    227|            size = ogs_nas_5gs_decode_ethernet_header_compression_configuration(&pdu_session_modification_command->ethernet_header_compression_configuration, pkbuf);
 4581|    227|            if (size < 0) {
  ------------------
  |  Branch (4581:17): [True: 2, False: 225]
  ------------------
 4582|      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__) 
  |  |  ------------------
  ------------------
 4583|      2|               return size;
 4584|      2|            }
 4585|       |
 4586|    225|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT;
  ------------------
  |  | 1484|    225|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ETHERNET_HEADER_COMPRESSION_CONFIGURATION_PRESENT ((uint64_t)1<<12)
  ------------------
 4587|    225|            decoded += size;
 4588|    225|            break;
 4589|    217|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RECEIVED_MBS_CONTAINER_TYPE:
  ------------------
  |  | 1504|    217|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RECEIVED_MBS_CONTAINER_TYPE 0x71
  ------------------
  |  Branch (4589:9): [True: 217, False: 9.34k]
  ------------------
 4590|    217|            size = ogs_nas_5gs_decode_received_mbs_container(&pdu_session_modification_command->received_mbs_container, pkbuf);
 4591|    217|            if (size < 0) {
  ------------------
  |  Branch (4591:17): [True: 8, False: 209]
  ------------------
 4592|      8|               ogs_error("ogs_nas_5gs_decode_received_mbs_container() failed");
  ------------------
  |  |   36|      8|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      8|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      8|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      8|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      8|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      8|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4593|      8|               return size;
 4594|      8|            }
 4595|       |
 4596|    209|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RECEIVED_MBS_CONTAINER_PRESENT;
  ------------------
  |  | 1485|    209|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_RECEIVED_MBS_CONTAINER_PRESENT ((uint64_t)1<<13)
  ------------------
 4597|    209|            decoded += size;
 4598|    209|            break;
 4599|    211|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  | 1505|    211|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (4599:9): [True: 211, False: 9.34k]
  ------------------
 4600|    211|            size = ogs_nas_5gs_decode_service_level_aa_container(&pdu_session_modification_command->service_level_aa_container, pkbuf);
 4601|    211|            if (size < 0) {
  ------------------
  |  Branch (4601:17): [True: 2, False: 209]
  ------------------
 4602|      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__) 
  |  |  ------------------
  ------------------
 4603|      2|               return size;
 4604|      2|            }
 4605|       |
 4606|    209|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  | 1486|    209|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<14)
  ------------------
 4607|    209|            decoded += size;
 4608|    209|            break;
 4609|    340|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALTERNATIVE_S_NSSAI_TYPE:
  ------------------
  |  | 1506|    340|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALTERNATIVE_S_NSSAI_TYPE 0x5A
  ------------------
  |  Branch (4609:9): [True: 340, False: 9.21k]
  ------------------
 4610|    340|            size = ogs_nas_5gs_decode_s_nssai(&pdu_session_modification_command->alternative_s_nssai, pkbuf);
 4611|    340|            if (size < 0) {
  ------------------
  |  Branch (4611:17): [True: 5, False: 335]
  ------------------
 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|    335|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALTERNATIVE_S_NSSAI_PRESENT;
  ------------------
  |  | 1487|    335|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ALTERNATIVE_S_NSSAI_PRESENT ((uint64_t)1<<15)
  ------------------
 4617|    335|            decoded += size;
 4618|    335|            break;
 4619|    262|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_N3QAI_TYPE:
  ------------------
  |  | 1507|    262|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_N3QAI_TYPE 0x70
  ------------------
  |  Branch (4619:9): [True: 262, False: 9.29k]
  ------------------
 4620|    262|            size = ogs_nas_5gs_decode_n3qai(&pdu_session_modification_command->n3qai, pkbuf);
 4621|    262|            if (size < 0) {
  ------------------
  |  Branch (4621:17): [True: 27, False: 235]
  ------------------
 4622|     27|               ogs_error("ogs_nas_5gs_decode_n3qai() 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__) 
  |  |  ------------------
  ------------------
 4623|     27|               return size;
 4624|     27|            }
 4625|       |
 4626|    235|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_N3QAI_PRESENT;
  ------------------
  |  | 1488|    235|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_N3QAI_PRESENT ((uint64_t)1<<16)
  ------------------
 4627|    235|            decoded += size;
 4628|    235|            break;
 4629|    239|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PROTOCOL_DESCRIPTION_TYPE:
  ------------------
  |  | 1508|    239|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PROTOCOL_DESCRIPTION_TYPE 0x73
  ------------------
  |  Branch (4629:9): [True: 239, False: 9.31k]
  ------------------
 4630|    239|            size = ogs_nas_5gs_decode_protocol_description(&pdu_session_modification_command->protocol_description, pkbuf);
 4631|    239|            if (size < 0) {
  ------------------
  |  Branch (4631:17): [True: 26, False: 213]
  ------------------
 4632|     26|               ogs_error("ogs_nas_5gs_decode_protocol_description() 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__) 
  |  |  ------------------
  ------------------
 4633|     26|               return size;
 4634|     26|            }
 4635|       |
 4636|    213|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PROTOCOL_DESCRIPTION_PRESENT;
  ------------------
  |  | 1489|    213|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_PROTOCOL_DESCRIPTION_PRESENT ((uint64_t)1<<17)
  ------------------
 4637|    213|            decoded += size;
 4638|    213|            break;
 4639|    205|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ECN_MARKING_FOR_L4S_INDICATION_TYPE:
  ------------------
  |  | 1509|    205|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ECN_MARKING_FOR_L4S_INDICATION_TYPE 0x38
  ------------------
  |  Branch (4639:9): [True: 205, False: 9.35k]
  ------------------
 4640|    205|            size = ogs_nas_5gs_decode_ecn_marking_for_l4s_indication(&pdu_session_modification_command->ecn_marking_for_l4s_indication, pkbuf);
 4641|    205|            if (size < 0) {
  ------------------
  |  Branch (4641:17): [True: 5, False: 200]
  ------------------
 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|    200|            pdu_session_modification_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ECN_MARKING_FOR_L4S_INDICATION_PRESENT;
  ------------------
  |  | 1490|    200|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_ECN_MARKING_FOR_L4S_INDICATION_PRESENT ((uint64_t)1<<18)
  ------------------
 4647|    200|            decoded += size;
 4648|    200|            break;
 4649|  5.02k|        default:
  ------------------
  |  Branch (4649:9): [True: 5.02k, False: 4.53k]
  ------------------
 4650|  5.02k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  5.02k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  5.02k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  5.02k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  5.02k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  5.02k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  5.02k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4651|  5.02k|            break;
 4652|  9.55k|        }
 4653|  9.55k|    }
 4654|       |
 4655|    386|    return decoded;
 4656|    558|}
ogs_nas_5gs_decode_pdu_session_modification_complete:
 4659|     78|{
 4660|     78|    ogs_nas_5gs_pdu_session_modification_complete_t *pdu_session_modification_complete = &message->gsm.pdu_session_modification_complete;
 4661|     78|    int decoded = 0;
 4662|     78|    int size = 0;
 4663|       |
 4664|     78|    ogs_trace("[NAS] Decode PDU_SESSION_MODIFICATION_COMPLETE\n");
  ------------------
  |  |   40|     78|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     78|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     78|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     78|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     78|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     78|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4665|       |
 4666|  2.25k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4666:12): [True: 2.19k, False: 57]
  ------------------
 4667|  2.19k|        uint8_t *buffer = pkbuf->data;
 4668|  2.19k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4668:24): [True: 907, False: 1.29k]
  ------------------
 4669|       |
 4670|  2.19k|        size = sizeof(uint8_t);
 4671|  2.19k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4671:13): [True: 0, False: 2.19k]
  ------------------
 4672|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4673|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 4674|      0|        }
 4675|  2.19k|        decoded += size;
 4676|       |
 4677|  2.19k|        switch(type) {
 4678|    219|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1542|    219|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4678:9): [True: 219, False: 1.98k]
  ------------------
 4679|    219|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_modification_complete->extended_protocol_configuration_options, pkbuf);
 4680|    219|            if (size < 0) {
  ------------------
  |  Branch (4680:17): [True: 11, False: 208]
  ------------------
 4681|     11|               ogs_error("ogs_nas_5gs_decode_extended_protocol_configuration_options() 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__) 
  |  |  ------------------
  ------------------
 4682|     11|               return size;
 4683|     11|            }
 4684|       |
 4685|    208|            pdu_session_modification_complete->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1540|    208|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<0)
  ------------------
 4686|    208|            decoded += size;
 4687|    208|            break;
 4688|    208|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE:
  ------------------
  |  | 1543|    208|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_PORT_MANAGEMENT_INFORMATION_CONTAINER_TYPE 0x74
  ------------------
  |  Branch (4688:9): [True: 208, False: 1.99k]
  ------------------
 4689|    208|            size = ogs_nas_5gs_decode_port_management_information_container(&pdu_session_modification_complete->port_management_information_container, pkbuf);
 4690|    208|            if (size < 0) {
  ------------------
  |  Branch (4690:17): [True: 10, False: 198]
  ------------------
 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|    198|            pdu_session_modification_complete->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT;
  ------------------
  |  | 1541|    198|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE_PORT_MANAGEMENT_INFORMATION_CONTAINER_PRESENT ((uint64_t)1<<1)
  ------------------
 4696|    198|            decoded += size;
 4697|    198|            break;
 4698|  1.77k|        default:
  ------------------
  |  Branch (4698:9): [True: 1.77k, False: 427]
  ------------------
 4699|  1.77k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.77k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.77k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.77k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.77k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.77k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.77k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4700|  1.77k|            break;
 4701|  2.19k|        }
 4702|  2.19k|    }
 4703|       |
 4704|     57|    return decoded;
 4705|     78|}
ogs_nas_5gs_decode_pdu_session_modification_command_reject:
 4708|     46|{
 4709|     46|    ogs_nas_5gs_pdu_session_modification_command_reject_t *pdu_session_modification_command_reject = &message->gsm.pdu_session_modification_command_reject;
 4710|     46|    int decoded = 0;
 4711|     46|    int size = 0;
 4712|       |
 4713|     46|    ogs_trace("[NAS] Decode PDU_SESSION_MODIFICATION_COMMAND_REJECT\n");
  ------------------
  |  |   40|     46|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     46|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     46|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     46|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     46|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     46|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4714|       |
 4715|     46|    size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_modification_command_reject->gsm_cause, pkbuf);
 4716|     46|    if (size < 0) {
  ------------------
  |  Branch (4716:9): [True: 1, False: 45]
  ------------------
 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|     45|    decoded += size;
 4722|       |
 4723|  2.15k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4723:12): [True: 2.10k, False: 44]
  ------------------
 4724|  2.10k|        uint8_t *buffer = pkbuf->data;
 4725|  2.10k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4725:24): [True: 809, False: 1.30k]
  ------------------
 4726|       |
 4727|  2.10k|        size = sizeof(uint8_t);
 4728|  2.10k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4728:13): [True: 0, False: 2.10k]
  ------------------
 4729|      0|           ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4730|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 4731|      0|        }
 4732|  2.10k|        decoded += size;
 4733|       |
 4734|  2.10k|        switch(type) {
 4735|    195|        case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1558|    195|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4735:9): [True: 195, False: 1.91k]
  ------------------
 4736|    195|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_modification_command_reject->extended_protocol_configuration_options, pkbuf);
 4737|    195|            if (size < 0) {
  ------------------
  |  Branch (4737:17): [True: 1, False: 194]
  ------------------
 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|    194|            pdu_session_modification_command_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1557|    194|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<0)
  ------------------
 4743|    194|            decoded += size;
 4744|    194|            break;
 4745|  1.91k|        default:
  ------------------
  |  Branch (4745:9): [True: 1.91k, False: 195]
  ------------------
 4746|  1.91k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.91k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.91k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.91k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.91k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.91k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.91k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4747|  1.91k|            break;
 4748|  2.10k|        }
 4749|  2.10k|    }
 4750|       |
 4751|     44|    return decoded;
 4752|     45|}
ogs_nas_5gs_decode_pdu_session_release_request:
 4755|     55|{
 4756|     55|    ogs_nas_5gs_pdu_session_release_request_t *pdu_session_release_request = &message->gsm.pdu_session_release_request;
 4757|     55|    int decoded = 0;
 4758|     55|    int size = 0;
 4759|       |
 4760|     55|    ogs_trace("[NAS] Decode PDU_SESSION_RELEASE_REQUEST\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__) 
  |  |  ------------------
  ------------------
 4761|       |
 4762|  1.88k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4762:12): [True: 1.83k, False: 51]
  ------------------
 4763|  1.83k|        uint8_t *buffer = pkbuf->data;
 4764|  1.83k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4764:24): [True: 497, False: 1.34k]
  ------------------
 4765|       |
 4766|  1.83k|        size = sizeof(uint8_t);
 4767|  1.83k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4767:13): [True: 0, False: 1.83k]
  ------------------
 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.83k|        decoded += size;
 4772|       |
 4773|  1.83k|        switch(type) {
 4774|    201|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_5GSM_CAUSE_TYPE:
  ------------------
  |  | 1575|    201|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_5GSM_CAUSE_TYPE 0x59
  ------------------
  |  Branch (4774:9): [True: 201, False: 1.63k]
  ------------------
 4775|    201|            size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_release_request->gsm_cause, pkbuf);
 4776|    201|            if (size < 0) {
  ------------------
  |  Branch (4776:17): [True: 1, False: 200]
  ------------------
 4777|      1|               ogs_error("ogs_nas_5gs_decode_5gsm_cause() failed");
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4778|      1|               return size;
 4779|      1|            }
 4780|       |
 4781|    200|            pdu_session_release_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_5GSM_CAUSE_PRESENT;
  ------------------
  |  | 1573|    200|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_5GSM_CAUSE_PRESENT ((uint64_t)1<<0)
  ------------------
 4782|    200|            decoded += size;
 4783|    200|            break;
 4784|    202|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1576|    202|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4784:9): [True: 202, False: 1.63k]
  ------------------
 4785|    202|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_release_request->extended_protocol_configuration_options, pkbuf);
 4786|    202|            if (size < 0) {
  ------------------
  |  Branch (4786:17): [True: 3, False: 199]
  ------------------
 4787|      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__) 
  |  |  ------------------
  ------------------
 4788|      3|               return size;
 4789|      3|            }
 4790|       |
 4791|    199|            pdu_session_release_request->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1574|    199|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<1)
  ------------------
 4792|    199|            decoded += size;
 4793|    199|            break;
 4794|  1.43k|        default:
  ------------------
  |  Branch (4794:9): [True: 1.43k, False: 403]
  ------------------
 4795|  1.43k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.43k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.43k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.43k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.43k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.43k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.43k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4796|  1.43k|            break;
 4797|  1.83k|        }
 4798|  1.83k|    }
 4799|       |
 4800|     51|    return decoded;
 4801|     55|}
ogs_nas_5gs_decode_pdu_session_release_reject:
 4804|     52|{
 4805|     52|    ogs_nas_5gs_pdu_session_release_reject_t *pdu_session_release_reject = &message->gsm.pdu_session_release_reject;
 4806|     52|    int decoded = 0;
 4807|     52|    int size = 0;
 4808|       |
 4809|     52|    ogs_trace("[NAS] Decode PDU_SESSION_RELEASE_REJECT\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__) 
  |  |  ------------------
  ------------------
 4810|       |
 4811|     52|    size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_release_reject->gsm_cause, pkbuf);
 4812|     52|    if (size < 0) {
  ------------------
  |  Branch (4812:9): [True: 1, False: 51]
  ------------------
 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|     51|    decoded += size;
 4818|       |
 4819|  2.56k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4819:12): [True: 2.51k, False: 50]
  ------------------
 4820|  2.51k|        uint8_t *buffer = pkbuf->data;
 4821|  2.51k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4821:24): [True: 1.05k, False: 1.46k]
  ------------------
 4822|       |
 4823|  2.51k|        size = sizeof(uint8_t);
 4824|  2.51k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4824:13): [True: 0, False: 2.51k]
  ------------------
 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.51k|        decoded += size;
 4829|       |
 4830|  2.51k|        switch(type) {
 4831|    215|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1591|    215|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4831:9): [True: 215, False: 2.30k]
  ------------------
 4832|    215|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_release_reject->extended_protocol_configuration_options, pkbuf);
 4833|    215|            if (size < 0) {
  ------------------
  |  Branch (4833:17): [True: 1, False: 214]
  ------------------
 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|    214|            pdu_session_release_reject->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1590|    214|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REJECT_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<0)
  ------------------
 4839|    214|            decoded += size;
 4840|    214|            break;
 4841|  2.30k|        default:
  ------------------
  |  Branch (4841:9): [True: 2.30k, False: 215]
  ------------------
 4842|  2.30k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  2.30k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.30k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.30k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.30k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.30k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.30k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4843|  2.30k|            break;
 4844|  2.51k|        }
 4845|  2.51k|    }
 4846|       |
 4847|     50|    return decoded;
 4848|     51|}
ogs_nas_5gs_decode_pdu_session_release_command:
 4851|    107|{
 4852|    107|    ogs_nas_5gs_pdu_session_release_command_t *pdu_session_release_command = &message->gsm.pdu_session_release_command;
 4853|    107|    int decoded = 0;
 4854|    107|    int size = 0;
 4855|       |
 4856|    107|    ogs_trace("[NAS] Decode PDU_SESSION_RELEASE_COMMAND\n");
  ------------------
  |  |   40|    107|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    107|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    107|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    107|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    107|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    107|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4857|       |
 4858|    107|    size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_release_command->gsm_cause, pkbuf);
 4859|    107|    if (size < 0) {
  ------------------
  |  Branch (4859:9): [True: 1, False: 106]
  ------------------
 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|    106|    decoded += size;
 4865|       |
 4866|  3.75k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4866:12): [True: 3.65k, False: 96]
  ------------------
 4867|  3.65k|        uint8_t *buffer = pkbuf->data;
 4868|  3.65k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4868:24): [True: 1.32k, False: 2.33k]
  ------------------
 4869|       |
 4870|  3.65k|        size = sizeof(uint8_t);
 4871|  3.65k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4871:13): [True: 0, False: 3.65k]
  ------------------
 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|  3.65k|        decoded += size;
 4876|       |
 4877|  3.65k|        switch(type) {
 4878|    197|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_BACK_OFF_TIMER_VALUE_TYPE:
  ------------------
  |  | 1613|    197|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_BACK_OFF_TIMER_VALUE_TYPE 0x37
  ------------------
  |  Branch (4878:9): [True: 197, False: 3.45k]
  ------------------
 4879|    197|            size = ogs_nas_5gs_decode_gprs_timer_3(&pdu_session_release_command->back_off_timer_value, pkbuf);
 4880|    197|            if (size < 0) {
  ------------------
  |  Branch (4880:17): [True: 2, False: 195]
  ------------------
 4881|      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__) 
  |  |  ------------------
  ------------------
 4882|      2|               return size;
 4883|      2|            }
 4884|       |
 4885|    195|            pdu_session_release_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_BACK_OFF_TIMER_VALUE_PRESENT;
  ------------------
  |  | 1606|    195|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_BACK_OFF_TIMER_VALUE_PRESENT ((uint64_t)1<<0)
  ------------------
 4886|    195|            decoded += size;
 4887|    195|            break;
 4888|    219|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EAP_MESSAGE_TYPE:
  ------------------
  |  | 1614|    219|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EAP_MESSAGE_TYPE 0x78
  ------------------
  |  Branch (4888:9): [True: 219, False: 3.43k]
  ------------------
 4889|    219|            size = ogs_nas_5gs_decode_eap_message(&pdu_session_release_command->eap_message, pkbuf);
 4890|    219|            if (size < 0) {
  ------------------
  |  Branch (4890:17): [True: 1, False: 218]
  ------------------
 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|    218|            pdu_session_release_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EAP_MESSAGE_PRESENT;
  ------------------
  |  | 1607|    218|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EAP_MESSAGE_PRESENT ((uint64_t)1<<1)
  ------------------
 4896|    218|            decoded += size;
 4897|    218|            break;
 4898|    220|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_TYPE:
  ------------------
  |  | 1615|    220|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_TYPE 0x61
  ------------------
  |  Branch (4898:9): [True: 220, False: 3.43k]
  ------------------
 4899|    220|            size = ogs_nas_5gs_decode_5gsm_congestion_re_attempt_indicator(&pdu_session_release_command->gsm_congestion_re_attempt_indicator, pkbuf);
 4900|    220|            if (size < 0) {
  ------------------
  |  Branch (4900:17): [True: 1, False: 219]
  ------------------
 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|    219|            pdu_session_release_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_PRESENT;
  ------------------
  |  | 1608|    219|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_5GSM_CONGESTION_RE_ATTEMPT_INDICATOR_PRESENT ((uint64_t)1<<2)
  ------------------
 4906|    219|            decoded += size;
 4907|    219|            break;
 4908|    232|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1616|    232|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4908:9): [True: 232, False: 3.42k]
  ------------------
 4909|    232|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_release_command->extended_protocol_configuration_options, pkbuf);
 4910|    232|            if (size < 0) {
  ------------------
  |  Branch (4910:17): [True: 3, False: 229]
  ------------------
 4911|      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__) 
  |  |  ------------------
  ------------------
 4912|      3|               return size;
 4913|      3|            }
 4914|       |
 4915|    229|            pdu_session_release_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1609|    229|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<3)
  ------------------
 4916|    229|            decoded += size;
 4917|    229|            break;
 4918|    910|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ACCESS_TYPE_TYPE:
  ------------------
  |  | 1617|    910|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ACCESS_TYPE_TYPE 0xD0
  ------------------
  |  Branch (4918:9): [True: 910, False: 2.74k]
  ------------------
 4919|    910|            decoded--;
 4920|    910|            ogs_assert(ogs_pkbuf_push(pkbuf, 1));
  ------------------
  |  |  113|    910|    do { \
  |  |  114|    910|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    910|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 910, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    910|        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|    910|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 910]
  |  |  ------------------
  ------------------
 4921|    910|            size = ogs_nas_5gs_decode_access_type(&pdu_session_release_command->access_type, pkbuf);
 4922|    910|            if (size < 0) {
  ------------------
  |  Branch (4922:17): [True: 0, False: 910]
  ------------------
 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|    910|            pdu_session_release_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ACCESS_TYPE_PRESENT;
  ------------------
  |  | 1610|    910|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ACCESS_TYPE_PRESENT ((uint64_t)1<<4)
  ------------------
 4928|    910|            decoded += size;
 4929|    910|            break;
 4930|    210|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_TYPE:
  ------------------
  |  | 1618|    210|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_TYPE 0x72
  ------------------
  |  Branch (4930:9): [True: 210, False: 3.44k]
  ------------------
 4931|    210|            size = ogs_nas_5gs_decode_service_level_aa_container(&pdu_session_release_command->service_level_aa_container, pkbuf);
 4932|    210|            if (size < 0) {
  ------------------
  |  Branch (4932:17): [True: 1, False: 209]
  ------------------
 4933|      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__) 
  |  |  ------------------
  ------------------
 4934|      1|               return size;
 4935|      1|            }
 4936|       |
 4937|    209|            pdu_session_release_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_PRESENT;
  ------------------
  |  | 1611|    209|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_SERVICE_LEVEL_AA_CONTAINER_PRESENT ((uint64_t)1<<5)
  ------------------
 4938|    209|            decoded += size;
 4939|    209|            break;
 4940|    198|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ALTERNATIVE_S_NSSAI_TYPE:
  ------------------
  |  | 1619|    198|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ALTERNATIVE_S_NSSAI_TYPE 0x5A
  ------------------
  |  Branch (4940:9): [True: 198, False: 3.45k]
  ------------------
 4941|    198|            size = ogs_nas_5gs_decode_s_nssai(&pdu_session_release_command->alternative_s_nssai, pkbuf);
 4942|    198|            if (size < 0) {
  ------------------
  |  Branch (4942:17): [True: 2, False: 196]
  ------------------
 4943|      2|               ogs_error("ogs_nas_5gs_decode_s_nssai() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4944|      2|               return size;
 4945|      2|            }
 4946|       |
 4947|    196|            pdu_session_release_command->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ALTERNATIVE_S_NSSAI_PRESENT;
  ------------------
  |  | 1612|    196|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND_ALTERNATIVE_S_NSSAI_PRESENT ((uint64_t)1<<6)
  ------------------
 4948|    196|            decoded += size;
 4949|    196|            break;
 4950|  1.46k|        default:
  ------------------
  |  Branch (4950:9): [True: 1.46k, False: 2.18k]
  ------------------
 4951|  1.46k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.46k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.46k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.46k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.46k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.46k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.46k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4952|  1.46k|            break;
 4953|  3.65k|        }
 4954|  3.65k|    }
 4955|       |
 4956|     96|    return decoded;
 4957|    106|}
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.97k|    while (pkbuf->len > 0) {
  ------------------
  |  Branch (4967:12): [True: 1.92k, False: 50]
  ------------------
 4968|  1.92k|        uint8_t *buffer = pkbuf->data;
 4969|  1.92k|        uint8_t type = (*buffer) >= 0x80 ? ((*buffer) & 0xf0) : (*buffer);
  ------------------
  |  Branch (4969:24): [True: 613, False: 1.31k]
  ------------------
 4970|       |
 4971|  1.92k|        size = sizeof(uint8_t);
 4972|  1.92k|        if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4972:13): [True: 0, False: 1.92k]
  ------------------
 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.92k|        decoded += size;
 4977|       |
 4978|  1.92k|        switch(type) {
 4979|    223|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_5GSM_CAUSE_TYPE:
  ------------------
  |  | 1642|    223|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_5GSM_CAUSE_TYPE 0x59
  ------------------
  |  Branch (4979:9): [True: 223, False: 1.70k]
  ------------------
 4980|    223|            size = ogs_nas_5gs_decode_5gsm_cause(&pdu_session_release_complete->gsm_cause, pkbuf);
 4981|    223|            if (size < 0) {
  ------------------
  |  Branch (4981:17): [True: 2, False: 221]
  ------------------
 4982|      2|               ogs_error("ogs_nas_5gs_decode_5gsm_cause() failed");
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4983|      2|               return size;
 4984|      2|            }
 4985|       |
 4986|    221|            pdu_session_release_complete->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_5GSM_CAUSE_PRESENT;
  ------------------
  |  | 1640|    221|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_5GSM_CAUSE_PRESENT ((uint64_t)1<<0)
  ------------------
 4987|    221|            decoded += size;
 4988|    221|            break;
 4989|    204|        case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE:
  ------------------
  |  | 1643|    204|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_TYPE 0x7B
  ------------------
  |  Branch (4989:9): [True: 204, False: 1.72k]
  ------------------
 4990|    204|            size = ogs_nas_5gs_decode_extended_protocol_configuration_options(&pdu_session_release_complete->extended_protocol_configuration_options, pkbuf);
 4991|    204|            if (size < 0) {
  ------------------
  |  Branch (4991:17): [True: 4, False: 200]
  ------------------
 4992|      4|               ogs_error("ogs_nas_5gs_decode_extended_protocol_configuration_options() failed");
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4993|      4|               return size;
 4994|      4|            }
 4995|       |
 4996|    200|            pdu_session_release_complete->presencemask |= OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT;
  ------------------
  |  | 1641|    200|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE_EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT ((uint64_t)1<<1)
  ------------------
 4997|    200|            decoded += size;
 4998|    200|            break;
 4999|  1.49k|        default:
  ------------------
  |  Branch (4999:9): [True: 1.49k, False: 427]
  ------------------
 5000|  1.49k|            ogs_error("Unknown type(0x%x) or not implemented\n", type);
  ------------------
  |  |   36|  1.49k|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 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__) 
  |  |  ------------------
  ------------------
 5001|  1.49k|            break;
 5002|  1.92k|        }
 5003|  1.92k|    }
 5004|       |
 5005|     50|    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.77k|{
 5029|  4.77k|    int size = 0;
 5030|  4.77k|    int decoded = 0;
 5031|       |
 5032|  4.77k|    ogs_assert(pkbuf);
  ------------------
  |  |  113|  4.77k|    do { \
  |  |  114|  4.77k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  4.77k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 4.77k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  4.77k|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|  4.77k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 4.77k]
  |  |  ------------------
  ------------------
 5033|  4.77k|    ogs_assert(pkbuf->data);
  ------------------
  |  |  113|  4.77k|    do { \
  |  |  114|  4.77k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  4.77k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 4.77k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  4.77k|        else { \
  |  |  116|      0|            ogs_fatal("%s: Assertion `%s' failed.", OGS_FUNC, #expr); \
  |  |  ------------------
  |  |  |  |   35|      0|#define ogs_fatal(...) ogs_log_message(OGS_LOG_FATAL, 0, __VA_ARGS__)
  |  |  |  |  ------------------
  |  |  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  117|      0|            ogs_abort(); \
  |  |  118|      0|        } \
  |  |  119|  4.77k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 4.77k]
  |  |  ------------------
  ------------------
 5034|       |
 5035|  4.77k|    size = sizeof(ogs_nas_5gmm_header_t);
 5036|  4.77k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5036:9): [True: 0, False: 4.77k]
  ------------------
 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.77k|    memset(message, 0, sizeof(ogs_nas_5gs_message_t));
 5042|  4.77k|    memcpy(&message->gmm.h, pkbuf->data - size, size);
 5043|  4.77k|    decoded += size;
 5044|       |
 5045|  4.77k|    switch(message->gmm.h.message_type) {
 5046|    648|    case OGS_NAS_5GS_REGISTRATION_REQUEST:
  ------------------
  |  |   71|    648|#define OGS_NAS_5GS_REGISTRATION_REQUEST 65
  ------------------
  |  Branch (5046:5): [True: 648, False: 4.12k]
  ------------------
 5047|    648|        size = ogs_nas_5gs_decode_registration_request(message, pkbuf);
 5048|    648|        if (size < 0) {
  ------------------
  |  Branch (5048:13): [True: 175, False: 473]
  ------------------
 5049|    175|           ogs_error("ogs_nas_5gs_decode_registration_request() failed");
  ------------------
  |  |   36|    175|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    175|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    175|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    175|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    175|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    175|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5050|    175|           return OGS_ERROR;
  ------------------
  |  |   78|    175|#define OGS_ERROR       -1
  ------------------
 5051|    175|        }
 5052|       |
 5053|    473|        decoded += size;
 5054|    473|        break;
 5055|    976|    case OGS_NAS_5GS_REGISTRATION_ACCEPT:
  ------------------
  |  |   72|    976|#define OGS_NAS_5GS_REGISTRATION_ACCEPT 66
  ------------------
  |  Branch (5055:5): [True: 976, False: 3.79k]
  ------------------
 5056|    976|        size = ogs_nas_5gs_decode_registration_accept(message, pkbuf);
 5057|    976|        if (size < 0) {
  ------------------
  |  Branch (5057:13): [True: 269, False: 707]
  ------------------
 5058|    269|           ogs_error("ogs_nas_5gs_decode_registration_accept() failed");
  ------------------
  |  |   36|    269|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    269|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    269|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    269|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    269|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    269|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5059|    269|           return OGS_ERROR;
  ------------------
  |  |   78|    269|#define OGS_ERROR       -1
  ------------------
 5060|    269|        }
 5061|       |
 5062|    707|        decoded += size;
 5063|    707|        break;
 5064|     65|    case OGS_NAS_5GS_REGISTRATION_COMPLETE:
  ------------------
  |  |   73|     65|#define OGS_NAS_5GS_REGISTRATION_COMPLETE 67
  ------------------
  |  Branch (5064:5): [True: 65, False: 4.70k]
  ------------------
 5065|     65|        size = ogs_nas_5gs_decode_registration_complete(message, pkbuf);
 5066|     65|        if (size < 0) {
  ------------------
  |  Branch (5066:13): [True: 19, False: 46]
  ------------------
 5067|     19|           ogs_error("ogs_nas_5gs_decode_registration_complete() 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__) 
  |  |  ------------------
  ------------------
 5068|     19|           return OGS_ERROR;
  ------------------
  |  |   78|     19|#define OGS_ERROR       -1
  ------------------
 5069|     19|        }
 5070|       |
 5071|     46|        decoded += size;
 5072|     46|        break;
 5073|    208|    case OGS_NAS_5GS_REGISTRATION_REJECT:
  ------------------
  |  |   74|    208|#define OGS_NAS_5GS_REGISTRATION_REJECT 68
  ------------------
  |  Branch (5073:5): [True: 208, False: 4.56k]
  ------------------
 5074|    208|        size = ogs_nas_5gs_decode_registration_reject(message, pkbuf);
 5075|    208|        if (size < 0) {
  ------------------
  |  Branch (5075:13): [True: 43, False: 165]
  ------------------
 5076|     43|           ogs_error("ogs_nas_5gs_decode_registration_reject() 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__) 
  |  |  ------------------
  ------------------
 5077|     43|           return OGS_ERROR;
  ------------------
  |  |   78|     43|#define OGS_ERROR       -1
  ------------------
 5078|     43|        }
 5079|       |
 5080|    165|        decoded += size;
 5081|    165|        break;
 5082|     54|    case OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE:
  ------------------
  |  |   75|     54|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_FROM_UE 69
  ------------------
  |  Branch (5082:5): [True: 54, False: 4.71k]
  ------------------
 5083|     54|        size = ogs_nas_5gs_decode_deregistration_request_from_ue(message, pkbuf);
 5084|     54|        if (size < 0) {
  ------------------
  |  Branch (5084:13): [True: 5, False: 49]
  ------------------
 5085|      5|           ogs_error("ogs_nas_5gs_decode_deregistration_request_from_ue() failed");
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5086|      5|           return OGS_ERROR;
  ------------------
  |  |   78|      5|#define OGS_ERROR       -1
  ------------------
 5087|      5|        }
 5088|       |
 5089|     49|        decoded += size;
 5090|     49|        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.77k]
  ------------------
 5092|      1|        break;
 5093|    163|    case OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE:
  ------------------
  |  |   77|    163|#define OGS_NAS_5GS_DEREGISTRATION_REQUEST_TO_UE 71
  ------------------
  |  Branch (5093:5): [True: 163, False: 4.60k]
  ------------------
 5094|    163|        size = ogs_nas_5gs_decode_deregistration_request_to_ue(message, pkbuf);
 5095|    163|        if (size < 0) {
  ------------------
  |  Branch (5095:13): [True: 26, False: 137]
  ------------------
 5096|     26|           ogs_error("ogs_nas_5gs_decode_deregistration_request_to_ue() 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__) 
  |  |  ------------------
  ------------------
 5097|     26|           return OGS_ERROR;
  ------------------
  |  |   78|     26|#define OGS_ERROR       -1
  ------------------
 5098|     26|        }
 5099|       |
 5100|    137|        decoded += size;
 5101|    137|        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.77k]
  ------------------
 5103|      1|        break;
 5104|    113|    case OGS_NAS_5GS_SERVICE_REQUEST:
  ------------------
  |  |   79|    113|#define OGS_NAS_5GS_SERVICE_REQUEST 76
  ------------------
  |  Branch (5104:5): [True: 113, False: 4.65k]
  ------------------
 5105|    113|        size = ogs_nas_5gs_decode_service_request(message, pkbuf);
 5106|    113|        if (size < 0) {
  ------------------
  |  Branch (5106:13): [True: 21, False: 92]
  ------------------
 5107|     21|           ogs_error("ogs_nas_5gs_decode_service_request() 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__) 
  |  |  ------------------
  ------------------
 5108|     21|           return OGS_ERROR;
  ------------------
  |  |   78|     21|#define OGS_ERROR       -1
  ------------------
 5109|     21|        }
 5110|       |
 5111|     92|        decoded += size;
 5112|     92|        break;
 5113|    164|    case OGS_NAS_5GS_SERVICE_REJECT:
  ------------------
  |  |   80|    164|#define OGS_NAS_5GS_SERVICE_REJECT 77
  ------------------
  |  Branch (5113:5): [True: 164, False: 4.60k]
  ------------------
 5114|    164|        size = ogs_nas_5gs_decode_service_reject(message, pkbuf);
 5115|    164|        if (size < 0) {
  ------------------
  |  Branch (5115:13): [True: 19, False: 145]
  ------------------
 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|    145|        decoded += size;
 5121|    145|        break;
 5122|    189|    case OGS_NAS_5GS_SERVICE_ACCEPT:
  ------------------
  |  |   81|    189|#define OGS_NAS_5GS_SERVICE_ACCEPT 78
  ------------------
  |  Branch (5122:5): [True: 189, False: 4.58k]
  ------------------
 5123|    189|        size = ogs_nas_5gs_decode_service_accept(message, pkbuf);
 5124|    189|        if (size < 0) {
  ------------------
  |  Branch (5124:13): [True: 61, False: 128]
  ------------------
 5125|     61|           ogs_error("ogs_nas_5gs_decode_service_accept() failed");
  ------------------
  |  |   36|     61|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 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__) 
  |  |  ------------------
  ------------------
 5126|     61|           return OGS_ERROR;
  ------------------
  |  |   78|     61|#define OGS_ERROR       -1
  ------------------
 5127|     61|        }
 5128|       |
 5129|    128|        decoded += size;
 5130|    128|        break;
 5131|  1.13k|    case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND:
  ------------------
  |  |   82|  1.13k|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND 84
  ------------------
  |  Branch (5131:5): [True: 1.13k, False: 3.64k]
  ------------------
 5132|  1.13k|        size = ogs_nas_5gs_decode_configuration_update_command(message, pkbuf);
 5133|  1.13k|        if (size < 0) {
  ------------------
  |  Branch (5133:13): [True: 378, False: 753]
  ------------------
 5134|    378|           ogs_error("ogs_nas_5gs_decode_configuration_update_command() failed");
  ------------------
  |  |   36|    378|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    378|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    378|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    378|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    378|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    378|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5135|    378|           return OGS_ERROR;
  ------------------
  |  |   78|    378|#define OGS_ERROR       -1
  ------------------
 5136|    378|        }
 5137|       |
 5138|    753|        decoded += size;
 5139|    753|        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.77k]
  ------------------
 5141|      1|        break;
 5142|    102|    case OGS_NAS_5GS_AUTHENTICATION_REQUEST:
  ------------------
  |  |   84|    102|#define OGS_NAS_5GS_AUTHENTICATION_REQUEST 86
  ------------------
  |  Branch (5142:5): [True: 102, False: 4.67k]
  ------------------
 5143|    102|        size = ogs_nas_5gs_decode_authentication_request(message, pkbuf);
 5144|    102|        if (size < 0) {
  ------------------
  |  Branch (5144:13): [True: 31, False: 71]
  ------------------
 5145|     31|           ogs_error("ogs_nas_5gs_decode_authentication_request() 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__) 
  |  |  ------------------
  ------------------
 5146|     31|           return OGS_ERROR;
  ------------------
  |  |   78|     31|#define OGS_ERROR       -1
  ------------------
 5147|     31|        }
 5148|       |
 5149|     71|        decoded += size;
 5150|     71|        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.70k]
  ------------------
 5152|     69|        size = ogs_nas_5gs_decode_authentication_response(message, pkbuf);
 5153|     69|        if (size < 0) {
  ------------------
  |  Branch (5153:13): [True: 9, False: 60]
  ------------------
 5154|      9|           ogs_error("ogs_nas_5gs_decode_authentication_response() 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__) 
  |  |  ------------------
  ------------------
 5155|      9|           return OGS_ERROR;
  ------------------
  |  |   78|      9|#define OGS_ERROR       -1
  ------------------
 5156|      9|        }
 5157|       |
 5158|     60|        decoded += size;
 5159|     60|        break;
 5160|     50|    case OGS_NAS_5GS_AUTHENTICATION_REJECT:
  ------------------
  |  |   86|     50|#define OGS_NAS_5GS_AUTHENTICATION_REJECT 88
  ------------------
  |  Branch (5160:5): [True: 50, False: 4.72k]
  ------------------
 5161|     50|        size = ogs_nas_5gs_decode_authentication_reject(message, pkbuf);
 5162|     50|        if (size < 0) {
  ------------------
  |  Branch (5162:13): [True: 4, False: 46]
  ------------------
 5163|      4|           ogs_error("ogs_nas_5gs_decode_authentication_reject() 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__) 
  |  |  ------------------
  ------------------
 5164|      4|           return OGS_ERROR;
  ------------------
  |  |   78|      4|#define OGS_ERROR       -1
  ------------------
 5165|      4|        }
 5166|       |
 5167|     46|        decoded += size;
 5168|     46|        break;
 5169|     51|    case OGS_NAS_5GS_AUTHENTICATION_FAILURE:
  ------------------
  |  |   87|     51|#define OGS_NAS_5GS_AUTHENTICATION_FAILURE 89
  ------------------
  |  Branch (5169:5): [True: 51, False: 4.72k]
  ------------------
 5170|     51|        size = ogs_nas_5gs_decode_authentication_failure(message, pkbuf);
 5171|     51|        if (size < 0) {
  ------------------
  |  Branch (5171:13): [True: 5, False: 46]
  ------------------
 5172|      5|           ogs_error("ogs_nas_5gs_decode_authentication_failure() 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__) 
  |  |  ------------------
  ------------------
 5173|      5|           return OGS_ERROR;
  ------------------
  |  |   78|      5|#define OGS_ERROR       -1
  ------------------
 5174|      5|        }
 5175|       |
 5176|     46|        decoded += size;
 5177|     46|        break;
 5178|     72|    case OGS_NAS_5GS_AUTHENTICATION_RESULT:
  ------------------
  |  |   88|     72|#define OGS_NAS_5GS_AUTHENTICATION_RESULT 90
  ------------------
  |  Branch (5178:5): [True: 72, False: 4.70k]
  ------------------
 5179|     72|        size = ogs_nas_5gs_decode_authentication_result(message, pkbuf);
 5180|     72|        if (size < 0) {
  ------------------
  |  Branch (5180:13): [True: 16, False: 56]
  ------------------
 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|     56|        decoded += size;
 5186|     56|        break;
 5187|      1|    case OGS_NAS_5GS_IDENTITY_REQUEST:
  ------------------
  |  |   89|      1|#define OGS_NAS_5GS_IDENTITY_REQUEST 91
  ------------------
  |  Branch (5187:5): [True: 1, False: 4.77k]
  ------------------
 5188|      1|        size = ogs_nas_5gs_decode_identity_request(message, pkbuf);
 5189|      1|        if (size < 0) {
  ------------------
  |  Branch (5189:13): [True: 0, False: 1]
  ------------------
 5190|      0|           ogs_error("ogs_nas_5gs_decode_identity_request() failed");
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5191|      0|           return OGS_ERROR;
  ------------------
  |  |   78|      0|#define OGS_ERROR       -1
  ------------------
 5192|      0|        }
 5193|       |
 5194|      1|        decoded += size;
 5195|      1|        break;
 5196|     18|    case OGS_NAS_5GS_IDENTITY_RESPONSE:
  ------------------
  |  |   90|     18|#define OGS_NAS_5GS_IDENTITY_RESPONSE 92
  ------------------
  |  Branch (5196:5): [True: 18, False: 4.75k]
  ------------------
 5197|     18|        size = ogs_nas_5gs_decode_identity_response(message, pkbuf);
 5198|     18|        if (size < 0) {
  ------------------
  |  Branch (5198:13): [True: 15, False: 3]
  ------------------
 5199|     15|           ogs_error("ogs_nas_5gs_decode_identity_response() failed");
  ------------------
  |  |   36|     15|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     15|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     15|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     15|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     15|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     15|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5200|     15|           return OGS_ERROR;
  ------------------
  |  |   78|     15|#define OGS_ERROR       -1
  ------------------
 5201|     15|        }
 5202|       |
 5203|      3|        decoded += size;
 5204|      3|        break;
 5205|    144|    case OGS_NAS_5GS_SECURITY_MODE_COMMAND:
  ------------------
  |  |   91|    144|#define OGS_NAS_5GS_SECURITY_MODE_COMMAND 93
  ------------------
  |  Branch (5205:5): [True: 144, False: 4.62k]
  ------------------
 5206|    144|        size = ogs_nas_5gs_decode_security_mode_command(message, pkbuf);
 5207|    144|        if (size < 0) {
  ------------------
  |  Branch (5207:13): [True: 32, False: 112]
  ------------------
 5208|     32|           ogs_error("ogs_nas_5gs_decode_security_mode_command() failed");
  ------------------
  |  |   36|     32|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     32|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     32|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     32|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     32|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     32|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5209|     32|           return OGS_ERROR;
  ------------------
  |  |   78|     32|#define OGS_ERROR       -1
  ------------------
 5210|     32|        }
 5211|       |
 5212|    112|        decoded += size;
 5213|    112|        break;
 5214|     97|    case OGS_NAS_5GS_SECURITY_MODE_COMPLETE:
  ------------------
  |  |   92|     97|#define OGS_NAS_5GS_SECURITY_MODE_COMPLETE 94
  ------------------
  |  Branch (5214:5): [True: 97, False: 4.67k]
  ------------------
 5215|     97|        size = ogs_nas_5gs_decode_security_mode_complete(message, pkbuf);
 5216|     97|        if (size < 0) {
  ------------------
  |  Branch (5216:13): [True: 34, False: 63]
  ------------------
 5217|     34|           ogs_error("ogs_nas_5gs_decode_security_mode_complete() failed");
  ------------------
  |  |   36|     34|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     34|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     34|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     34|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     34|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     34|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5218|     34|           return OGS_ERROR;
  ------------------
  |  |   78|     34|#define OGS_ERROR       -1
  ------------------
 5219|     34|        }
 5220|       |
 5221|     63|        decoded += size;
 5222|     63|        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.77k]
  ------------------
 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.77k]
  ------------------
 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.76k]
  ------------------
 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|     55|    case OGS_NAS_5GS_NOTIFICATION_RESPONSE:
  ------------------
  |  |   96|     55|#define OGS_NAS_5GS_NOTIFICATION_RESPONSE 102
  ------------------
  |  Branch (5250:5): [True: 55, False: 4.71k]
  ------------------
 5251|     55|        size = ogs_nas_5gs_decode_notification_response(message, pkbuf);
 5252|     55|        if (size < 0) {
  ------------------
  |  Branch (5252:13): [True: 7, False: 48]
  ------------------
 5253|      7|           ogs_error("ogs_nas_5gs_decode_notification_response() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5254|      7|           return OGS_ERROR;
  ------------------
  |  |   78|      7|#define OGS_ERROR       -1
  ------------------
 5255|      7|        }
 5256|       |
 5257|     48|        decoded += size;
 5258|     48|        break;
 5259|    281|    case OGS_NAS_5GS_UL_NAS_TRANSPORT:
  ------------------
  |  |   97|    281|#define OGS_NAS_5GS_UL_NAS_TRANSPORT 103
  ------------------
  |  Branch (5259:5): [True: 281, False: 4.49k]
  ------------------
 5260|    281|        size = ogs_nas_5gs_decode_ul_nas_transport(message, pkbuf);
 5261|    281|        if (size < 0) {
  ------------------
  |  Branch (5261:13): [True: 36, False: 245]
  ------------------
 5262|     36|           ogs_error("ogs_nas_5gs_decode_ul_nas_transport() failed");
  ------------------
  |  |   36|     36|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     36|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     36|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     36|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     36|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     36|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5263|     36|           return OGS_ERROR;
  ------------------
  |  |   78|     36|#define OGS_ERROR       -1
  ------------------
 5264|     36|        }
 5265|       |
 5266|    245|        decoded += size;
 5267|    245|        break;
 5268|    109|    case OGS_NAS_5GS_DL_NAS_TRANSPORT:
  ------------------
  |  |   98|    109|#define OGS_NAS_5GS_DL_NAS_TRANSPORT 104
  ------------------
  |  Branch (5268:5): [True: 109, False: 4.66k]
  ------------------
 5269|    109|        size = ogs_nas_5gs_decode_dl_nas_transport(message, pkbuf);
 5270|    109|        if (size < 0) {
  ------------------
  |  Branch (5270:13): [True: 27, False: 82]
  ------------------
 5271|     27|           ogs_error("ogs_nas_5gs_decode_dl_nas_transport() 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__) 
  |  |  ------------------
  ------------------
 5272|     27|           return OGS_ERROR;
  ------------------
  |  |   78|     27|#define OGS_ERROR       -1
  ------------------
 5273|     27|        }
 5274|       |
 5275|     82|        decoded += size;
 5276|     82|        break;
 5277|      1|    default:
  ------------------
  |  Branch (5277:5): [True: 1, False: 4.77k]
  ------------------
 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.77k|    }
 5282|       |
 5283|  3.54k|    ogs_assert(ogs_pkbuf_push(pkbuf, decoded));
  ------------------
  |  |  113|  3.54k|    do { \
  |  |  114|  3.54k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  3.54k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 3.54k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  3.54k|        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.54k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 3.54k]
  |  |  ------------------
  ------------------
 5284|       |
 5285|  3.54k|    return OGS_OK;
  ------------------
  |  |   77|  3.54k|#define OGS_OK           0
  ------------------
 5286|  3.54k|}
ogs_nas_5gsm_decode:
 5288|  2.56k|{
 5289|  2.56k|    int size = 0;
 5290|  2.56k|    int decoded = 0;
 5291|       |
 5292|  2.56k|    ogs_assert(pkbuf);
  ------------------
  |  |  113|  2.56k|    do { \
  |  |  114|  2.56k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  2.56k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 2.56k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  2.56k|        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.56k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 2.56k]
  |  |  ------------------
  ------------------
 5293|  2.56k|    ogs_assert(pkbuf->data);
  ------------------
  |  |  113|  2.56k|    do { \
  |  |  114|  2.56k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  2.56k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 2.56k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  2.56k|        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.56k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 2.56k]
  |  |  ------------------
  ------------------
 5294|       |
 5295|  2.56k|    size = sizeof(ogs_nas_5gsm_header_t);
 5296|  2.56k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5296:9): [True: 0, False: 2.56k]
  ------------------
 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.56k|    memset(message, 0, sizeof(ogs_nas_5gs_message_t));
 5302|  2.56k|    memcpy(&message->gsm.h, pkbuf->data - size, size);
 5303|  2.56k|    decoded += size;
 5304|       |
 5305|  2.56k|    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: 2.30k]
  ------------------
 5307|    262|        size = ogs_nas_5gs_decode_pdu_session_establishment_request(message, pkbuf);
 5308|    262|        if (size < 0) {
  ------------------
  |  Branch (5308:13): [True: 47, False: 215]
  ------------------
 5309|     47|           ogs_error("ogs_nas_5gs_decode_pdu_session_establishment_request() failed");
  ------------------
  |  |   36|     47|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     47|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     47|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     47|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     47|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     47|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5310|     47|           return OGS_ERROR;
  ------------------
  |  |   78|     47|#define OGS_ERROR       -1
  ------------------
 5311|     47|        }
 5312|       |
 5313|    215|        decoded += size;
 5314|    215|        break;
 5315|    322|    case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT:
  ------------------
  |  |  100|    322|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT 194
  ------------------
  |  Branch (5315:5): [True: 322, False: 2.24k]
  ------------------
 5316|    322|        size = ogs_nas_5gs_decode_pdu_session_establishment_accept(message, pkbuf);
 5317|    322|        if (size < 0) {
  ------------------
  |  Branch (5317:13): [True: 66, False: 256]
  ------------------
 5318|     66|           ogs_error("ogs_nas_5gs_decode_pdu_session_establishment_accept() failed");
  ------------------
  |  |   36|     66|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     66|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     66|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     66|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     66|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     66|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5319|     66|           return OGS_ERROR;
  ------------------
  |  |   78|     66|#define OGS_ERROR       -1
  ------------------
 5320|     66|        }
 5321|       |
 5322|    256|        decoded += size;
 5323|    256|        break;
 5324|    126|    case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT:
  ------------------
  |  |  101|    126|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REJECT 195
  ------------------
  |  Branch (5324:5): [True: 126, False: 2.43k]
  ------------------
 5325|    126|        size = ogs_nas_5gs_decode_pdu_session_establishment_reject(message, pkbuf);
 5326|    126|        if (size < 0) {
  ------------------
  |  Branch (5326:13): [True: 22, False: 104]
  ------------------
 5327|     22|           ogs_error("ogs_nas_5gs_decode_pdu_session_establishment_reject() 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__) 
  |  |  ------------------
  ------------------
 5328|     22|           return OGS_ERROR;
  ------------------
  |  |   78|     22|#define OGS_ERROR       -1
  ------------------
 5329|     22|        }
 5330|       |
 5331|    104|        decoded += size;
 5332|    104|        break;
 5333|     52|    case OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMMAND:
  ------------------
  |  |  102|     52|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMMAND 197
  ------------------
  |  Branch (5333:5): [True: 52, False: 2.51k]
  ------------------
 5334|     52|        size = ogs_nas_5gs_decode_pdu_session_authentication_command(message, pkbuf);
 5335|     52|        if (size < 0) {
  ------------------
  |  Branch (5335:13): [True: 7, False: 45]
  ------------------
 5336|      7|           ogs_error("ogs_nas_5gs_decode_pdu_session_authentication_command() 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__) 
  |  |  ------------------
  ------------------
 5337|      7|           return OGS_ERROR;
  ------------------
  |  |   78|      7|#define OGS_ERROR       -1
  ------------------
 5338|      7|        }
 5339|       |
 5340|     45|        decoded += size;
 5341|     45|        break;
 5342|     60|    case OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMPLETE:
  ------------------
  |  |  103|     60|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_COMPLETE 198
  ------------------
  |  Branch (5342:5): [True: 60, False: 2.50k]
  ------------------
 5343|     60|        size = ogs_nas_5gs_decode_pdu_session_authentication_complete(message, pkbuf);
 5344|     60|        if (size < 0) {
  ------------------
  |  Branch (5344:13): [True: 7, False: 53]
  ------------------
 5345|      7|           ogs_error("ogs_nas_5gs_decode_pdu_session_authentication_complete() failed");
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5346|      7|           return OGS_ERROR;
  ------------------
  |  |   78|      7|#define OGS_ERROR       -1
  ------------------
 5347|      7|        }
 5348|       |
 5349|     53|        decoded += size;
 5350|     53|        break;
 5351|     52|    case OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT:
  ------------------
  |  |  104|     52|#define OGS_NAS_5GS_PDU_SESSION_AUTHENTICATION_RESULT 199
  ------------------
  |  Branch (5351:5): [True: 52, False: 2.51k]
  ------------------
 5352|     52|        size = ogs_nas_5gs_decode_pdu_session_authentication_result(message, pkbuf);
 5353|     52|        if (size < 0) {
  ------------------
  |  Branch (5353:13): [True: 6, False: 46]
  ------------------
 5354|      6|           ogs_error("ogs_nas_5gs_decode_pdu_session_authentication_result() 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__) 
  |  |  ------------------
  ------------------
 5355|      6|           return OGS_ERROR;
  ------------------
  |  |   78|      6|#define OGS_ERROR       -1
  ------------------
 5356|      6|        }
 5357|       |
 5358|     46|        decoded += size;
 5359|     46|        break;
 5360|    656|    case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST:
  ------------------
  |  |  105|    656|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST 201
  ------------------
  |  Branch (5360:5): [True: 656, False: 1.90k]
  ------------------
 5361|    656|        size = ogs_nas_5gs_decode_pdu_session_modification_request(message, pkbuf);
 5362|    656|        if (size < 0) {
  ------------------
  |  Branch (5362:13): [True: 186, False: 470]
  ------------------
 5363|    186|           ogs_error("ogs_nas_5gs_decode_pdu_session_modification_request() failed");
  ------------------
  |  |   36|    186|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    186|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    186|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    186|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    186|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    186|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5364|    186|           return OGS_ERROR;
  ------------------
  |  |   78|    186|#define OGS_ERROR       -1
  ------------------
 5365|    186|        }
 5366|       |
 5367|    470|        decoded += size;
 5368|    470|        break;
 5369|     79|    case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT:
  ------------------
  |  |  106|     79|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REJECT 202
  ------------------
  |  Branch (5369:5): [True: 79, False: 2.48k]
  ------------------
 5370|     79|        size = ogs_nas_5gs_decode_pdu_session_modification_reject(message, pkbuf);
 5371|     79|        if (size < 0) {
  ------------------
  |  Branch (5371:13): [True: 11, False: 68]
  ------------------
 5372|     11|           ogs_error("ogs_nas_5gs_decode_pdu_session_modification_reject() 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__) 
  |  |  ------------------
  ------------------
 5373|     11|           return OGS_ERROR;
  ------------------
  |  |   78|     11|#define OGS_ERROR       -1
  ------------------
 5374|     11|        }
 5375|       |
 5376|     68|        decoded += size;
 5377|     68|        break;
 5378|    558|    case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND:
  ------------------
  |  |  107|    558|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND 203
  ------------------
  |  Branch (5378:5): [True: 558, False: 2.00k]
  ------------------
 5379|    558|        size = ogs_nas_5gs_decode_pdu_session_modification_command(message, pkbuf);
 5380|    558|        if (size < 0) {
  ------------------
  |  Branch (5380:13): [True: 172, False: 386]
  ------------------
 5381|    172|           ogs_error("ogs_nas_5gs_decode_pdu_session_modification_command() failed");
  ------------------
  |  |   36|    172|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    172|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    172|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    172|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    172|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    172|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5382|    172|           return OGS_ERROR;
  ------------------
  |  |   78|    172|#define OGS_ERROR       -1
  ------------------
 5383|    172|        }
 5384|       |
 5385|    386|        decoded += size;
 5386|    386|        break;
 5387|     78|    case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE:
  ------------------
  |  |  108|     78|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMPLETE 204
  ------------------
  |  Branch (5387:5): [True: 78, False: 2.48k]
  ------------------
 5388|     78|        size = ogs_nas_5gs_decode_pdu_session_modification_complete(message, pkbuf);
 5389|     78|        if (size < 0) {
  ------------------
  |  Branch (5389:13): [True: 21, False: 57]
  ------------------
 5390|     21|           ogs_error("ogs_nas_5gs_decode_pdu_session_modification_complete() failed");
  ------------------
  |  |   36|     21|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     21|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     21|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     21|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     21|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     21|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5391|     21|           return OGS_ERROR;
  ------------------
  |  |   78|     21|#define OGS_ERROR       -1
  ------------------
 5392|     21|        }
 5393|       |
 5394|     57|        decoded += size;
 5395|     57|        break;
 5396|     46|    case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_REJECT:
  ------------------
  |  |  109|     46|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND_REJECT 205
  ------------------
  |  Branch (5396:5): [True: 46, False: 2.51k]
  ------------------
 5397|     46|        size = ogs_nas_5gs_decode_pdu_session_modification_command_reject(message, pkbuf);
 5398|     46|        if (size < 0) {
  ------------------
  |  Branch (5398:13): [True: 2, False: 44]
  ------------------
 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|     44|        decoded += size;
 5404|     44|        break;
 5405|     55|    case OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST:
  ------------------
  |  |  110|     55|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REQUEST 209
  ------------------
  |  Branch (5405:5): [True: 55, False: 2.50k]
  ------------------
 5406|     55|        size = ogs_nas_5gs_decode_pdu_session_release_request(message, pkbuf);
 5407|     55|        if (size < 0) {
  ------------------
  |  Branch (5407:13): [True: 4, False: 51]
  ------------------
 5408|      4|           ogs_error("ogs_nas_5gs_decode_pdu_session_release_request() 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__) 
  |  |  ------------------
  ------------------
 5409|      4|           return OGS_ERROR;
  ------------------
  |  |   78|      4|#define OGS_ERROR       -1
  ------------------
 5410|      4|        }
 5411|       |
 5412|     51|        decoded += size;
 5413|     51|        break;
 5414|     52|    case OGS_NAS_5GS_PDU_SESSION_RELEASE_REJECT:
  ------------------
  |  |  111|     52|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_REJECT 210
  ------------------
  |  Branch (5414:5): [True: 52, False: 2.51k]
  ------------------
 5415|     52|        size = ogs_nas_5gs_decode_pdu_session_release_reject(message, pkbuf);
 5416|     52|        if (size < 0) {
  ------------------
  |  Branch (5416:13): [True: 2, False: 50]
  ------------------
 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|     50|        decoded += size;
 5422|     50|        break;
 5423|    107|    case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND:
  ------------------
  |  |  112|    107|#define OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND 211
  ------------------
  |  Branch (5423:5): [True: 107, False: 2.45k]
  ------------------
 5424|    107|        size = ogs_nas_5gs_decode_pdu_session_release_command(message, pkbuf);
 5425|    107|        if (size < 0) {
  ------------------
  |  Branch (5425:13): [True: 11, False: 96]
  ------------------
 5426|     11|           ogs_error("ogs_nas_5gs_decode_pdu_session_release_command() 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__) 
  |  |  ------------------
  ------------------
 5427|     11|           return OGS_ERROR;
  ------------------
  |  |   78|     11|#define OGS_ERROR       -1
  ------------------
 5428|     11|        }
 5429|       |
 5430|     96|        decoded += size;
 5431|     96|        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.50k]
  ------------------
 5433|     56|        size = ogs_nas_5gs_decode_pdu_session_release_complete(message, pkbuf);
 5434|     56|        if (size < 0) {
  ------------------
  |  Branch (5434:13): [True: 6, False: 50]
  ------------------
 5435|      6|           ogs_error("ogs_nas_5gs_decode_pdu_session_release_complete() failed");
  ------------------
  |  |   36|      6|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      6|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      6|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      6|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      6|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      6|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5436|      6|           return OGS_ERROR;
  ------------------
  |  |   78|      6|#define OGS_ERROR       -1
  ------------------
 5437|      6|        }
 5438|       |
 5439|     50|        decoded += size;
 5440|     50|        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.56k]
  ------------------
 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.56k]
  ------------------
 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.56k|    }
 5455|       |
 5456|  1.99k|    ogs_assert(ogs_pkbuf_push(pkbuf, decoded));
  ------------------
  |  |  113|  1.99k|    do { \
  |  |  114|  1.99k|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|  1.99k|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 1.99k, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|  1.99k|        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.99k|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 1.99k]
  |  |  ------------------
  ------------------
 5457|       |
 5458|  1.99k|    return OGS_OK;
  ------------------
  |  |   77|  1.99k|#define OGS_OK           0
  ------------------
 5459|  1.99k|}

ogs_nas_5gs_decode_additional_information:
   49|    484|{
   50|    484|    int size = 0;
   51|    484|    ogs_nas_additional_information_t *source = NULL;
   52|       |
   53|    484|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (53:9): [True: 2, False: 482]
  ------------------
   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|    482|    source = (ogs_nas_additional_information_t *)pkbuf->data;
   59|       |
   60|    482|    additional_information->length = source->length;
   61|    482|    size = additional_information->length + sizeof(additional_information->length);
   62|       |
   63|    482|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (63:9): [True: 2, False: 480]
  ------------------
   64|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
   65|      2|       return -1;
   66|      2|    }
   67|       |
   68|    480|    if (sizeof(*additional_information) < size) return -1;
  ------------------
  |  Branch (68:9): [True: 0, False: 480]
  ------------------
   69|    480|    memcpy(additional_information, pkbuf->data - size, size);
   70|       |
   71|    480|    ogs_trace("  ADDITIONAL_INFORMATION - ");
  ------------------
  |  |   40|    480|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    480|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    480|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    480|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    480|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    480|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
   72|    480|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    480|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    480|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
   73|       |
   74|    480|    return size;
   75|    480|}
ogs_nas_5gs_decode_service_level_aa_container:
   95|  1.96k|{
   96|  1.96k|    int size = 0;
   97|  1.96k|    ogs_nas_service_level_aa_container_t *source = NULL;
   98|       |
   99|  1.96k|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (99:9): [True: 12, False: 1.95k]
  ------------------
  100|     12|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|     12|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     12|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     12|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     12|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     12|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     12|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  101|     12|       return -1;
  102|     12|    }
  103|       |
  104|  1.95k|    source = (ogs_nas_service_level_aa_container_t *)pkbuf->data;
  105|       |
  106|  1.95k|    service_level_aa_container->length = be16toh(source->length);
  107|  1.95k|    size = service_level_aa_container->length + sizeof(service_level_aa_container->length);
  108|       |
  109|  1.95k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (109:9): [True: 24, False: 1.92k]
  ------------------
  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|  1.92k|    service_level_aa_container->buffer = pkbuf->data - size + sizeof(service_level_aa_container->length);
  115|       |
  116|  1.92k|    ogs_trace("  SERVICE_LEVEL_AA_CONTAINER - ");
  ------------------
  |  |   40|  1.92k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.92k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.92k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.92k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.92k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.92k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  117|  1.92k|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)service_level_aa_container->buffer, service_level_aa_container->length);
  ------------------
  |  |   53|  1.92k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.92k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  118|       |
  119|  1.92k|    return size;
  120|  1.95k|}
ogs_nas_5gs_decode_access_type:
  148|    916|{
  149|    916|    int size = sizeof(ogs_nas_access_type_t);
  150|       |
  151|    916|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (151:9): [True: 0, False: 916]
  ------------------
  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|    916|    memcpy(access_type, pkbuf->data - size, size);
  157|       |
  158|    916|    ogs_trace("  ACCESS_TYPE - ");
  ------------------
  |  |   40|    916|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    916|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    916|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    916|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    916|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    916|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  159|    916|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    916|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    916|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  160|       |
  161|    916|    return size;
  162|    916|}
ogs_nas_5gs_decode_dnn:
  182|  1.38k|{
  183|  1.38k|    int size = 0;
  184|  1.38k|    ogs_nas_dnn_t *source = NULL;
  185|       |
  186|  1.38k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (186:9): [True: 4, False: 1.37k]
  ------------------
  187|      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__) 
  |  |  ------------------
  ------------------
  188|      4|       return -1;
  189|      4|    }
  190|       |
  191|  1.37k|    source = (ogs_nas_dnn_t *)pkbuf->data;
  192|       |
  193|  1.37k|    dnn->length = source->length;
  194|  1.37k|    size = dnn->length + sizeof(dnn->length);
  195|       |
  196|  1.37k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (196:9): [True: 8, False: 1.37k]
  ------------------
  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.37k|    if (sizeof(*dnn) < size) return -1;
  ------------------
  |  Branch (201:9): [True: 1, False: 1.37k]
  ------------------
  202|  1.37k|    memcpy(dnn, pkbuf->data - size, size);
  203|       |
  204|  1.37k|    {
  205|  1.37k|        char data_network_name[OGS_MAX_DNN_LEN+1];
  206|  1.37k|        int parsed = ogs_fqdn_parse(data_network_name, dnn->value, ogs_min(dnn->length, OGS_MAX_DNN_LEN));
  ------------------
  |  |  179|  1.37k|#define ogs_min(x , y)  (((x) < (y)) ? (x) : (y))
  |  |  ------------------
  |  |  |  Branch (179:26): [True: 1.34k, False: 21]
  |  |  ------------------
  ------------------
  207|  1.37k|        if (parsed > 0) {
  ------------------
  |  Branch (207:13): [True: 516, False: 854]
  ------------------
  208|    516|            dnn->length = parsed;
  209|    516|            ogs_cpystrn(dnn->value, data_network_name, ogs_min(dnn->length, OGS_MAX_DNN_LEN)+1);
  ------------------
  |  |  179|    516|#define ogs_min(x , y)  (((x) < (y)) ? (x) : (y))
  |  |  ------------------
  |  |  |  Branch (179:26): [True: 516, False: 0]
  |  |  ------------------
  ------------------
  210|    854|        } else {
  211|    854|            ogs_error("UE not APN setting");
  ------------------
  |  |   36|    854|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    854|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    854|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    854|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    854|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    854|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  212|    854|        }
  213|  1.37k|    }
  214|       |
  215|  1.37k|    ogs_trace("  DNN - ");
  ------------------
  |  |   40|  1.37k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.37k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.37k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.37k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.37k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.37k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  216|  1.37k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.37k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.37k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  217|       |
  218|  1.37k|    return size;
  219|  1.37k|}
ogs_nas_5gs_decode_eap_message:
  242|  2.66k|{
  243|  2.66k|    int size = 0;
  244|  2.66k|    ogs_nas_eap_message_t *source = NULL;
  245|       |
  246|  2.66k|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (246:9): [True: 20, False: 2.64k]
  ------------------
  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.64k|    source = (ogs_nas_eap_message_t *)pkbuf->data;
  252|       |
  253|  2.64k|    eap_message->length = be16toh(source->length);
  254|  2.64k|    size = eap_message->length + sizeof(eap_message->length);
  255|       |
  256|  2.64k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (256:9): [True: 23, False: 2.61k]
  ------------------
  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.61k|    eap_message->buffer = pkbuf->data - size + sizeof(eap_message->length);
  262|       |
  263|  2.61k|    ogs_trace("  EAP_MESSAGE - ");
  ------------------
  |  |   40|  2.61k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.61k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.61k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.61k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.61k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.61k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  264|  2.61k|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)eap_message->buffer, eap_message->length);
  ------------------
  |  |   53|  2.61k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  2.61k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  265|       |
  266|  2.61k|    return size;
  267|  2.64k|}
ogs_nas_5gs_decode_unavailability_information:
  295|    416|{
  296|    416|    int size = 0;
  297|    416|    ogs_nas_unavailability_information_t *source = NULL;
  298|       |
  299|    416|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (299:9): [True: 5, False: 411]
  ------------------
  300|      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__) 
  |  |  ------------------
  ------------------
  301|      5|       return -1;
  302|      5|    }
  303|       |
  304|    411|    source = (ogs_nas_unavailability_information_t *)pkbuf->data;
  305|       |
  306|    411|    unavailability_information->length = source->length;
  307|    411|    size = unavailability_information->length + sizeof(unavailability_information->length);
  308|       |
  309|    411|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (309:9): [True: 1, False: 410]
  ------------------
  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|    410|    if (sizeof(*unavailability_information) < size) return -1;
  ------------------
  |  Branch (314:9): [True: 1, False: 409]
  ------------------
  315|    409|    memcpy(unavailability_information, pkbuf->data - size, size);
  316|       |
  317|    409|    ogs_trace("  UNAVAILABILITY_INFORMATION - ");
  ------------------
  |  |   40|    409|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    409|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    409|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    409|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    409|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    409|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  318|    409|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    409|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    409|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  319|       |
  320|    409|    return size;
  321|    410|}
ogs_nas_5gs_decode_unavailability_configuration:
  341|    218|{
  342|    218|    int size = 0;
  343|    218|    ogs_nas_unavailability_configuration_t *source = NULL;
  344|       |
  345|    218|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (345:9): [True: 5, False: 213]
  ------------------
  346|      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__) 
  |  |  ------------------
  ------------------
  347|      5|       return -1;
  348|      5|    }
  349|       |
  350|    213|    source = (ogs_nas_unavailability_configuration_t *)pkbuf->data;
  351|       |
  352|    213|    unavailability_configuration->length = source->length;
  353|    213|    size = unavailability_configuration->length + sizeof(unavailability_configuration->length);
  354|       |
  355|    213|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (355:9): [True: 1, False: 212]
  ------------------
  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|    212|    if (sizeof(*unavailability_configuration) < size) return -1;
  ------------------
  |  Branch (360:9): [True: 1, False: 211]
  ------------------
  361|    211|    memcpy(unavailability_configuration, pkbuf->data - size, size);
  362|       |
  363|    211|    ogs_trace("  UNAVAILABILITY_CONFIGURATION - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  364|    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
  |  |  ------------------
  ------------------
  365|       |
  366|    211|    return size;
  367|    212|}
ogs_nas_5gs_decode_gprs_timer:
  387|    490|{
  388|    490|    int size = sizeof(ogs_nas_gprs_timer_t);
  389|       |
  390|    490|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (390:9): [True: 7, False: 483]
  ------------------
  391|      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__) 
  |  |  ------------------
  ------------------
  392|      7|       return -1;
  393|      7|    }
  394|       |
  395|    483|    memcpy(gprs_timer, pkbuf->data - size, size);
  396|       |
  397|    483|    ogs_trace("  GPRS_TIMER - ");
  ------------------
  |  |   40|    483|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    483|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    483|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    483|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    483|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    483|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  398|    483|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    483|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    483|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  399|       |
  400|    483|    return size;
  401|    490|}
ogs_nas_5gs_decode_gprs_timer_2:
  421|  1.84k|{
  422|  1.84k|    int size = 0;
  423|  1.84k|    ogs_nas_gprs_timer_2_t *source = NULL;
  424|       |
  425|  1.84k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (425:9): [True: 10, False: 1.83k]
  ------------------
  426|     10|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|     10|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     10|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     10|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     10|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     10|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     10|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  427|     10|       return -1;
  428|     10|    }
  429|       |
  430|  1.83k|    source = (ogs_nas_gprs_timer_2_t *)pkbuf->data;
  431|       |
  432|  1.83k|    gprs_timer_2->length = source->length;
  433|  1.83k|    size = gprs_timer_2->length + sizeof(gprs_timer_2->length);
  434|       |
  435|  1.83k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (435:9): [True: 5, False: 1.83k]
  ------------------
  436|      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__) 
  |  |  ------------------
  ------------------
  437|      5|       return -1;
  438|      5|    }
  439|       |
  440|  1.83k|    if (sizeof(*gprs_timer_2) < size) return -1;
  ------------------
  |  Branch (440:9): [True: 4, False: 1.82k]
  ------------------
  441|  1.82k|    memcpy(gprs_timer_2, pkbuf->data - size, size);
  442|       |
  443|  1.82k|    ogs_trace("  GPRS_TIMER_2 - ");
  ------------------
  |  |   40|  1.82k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.82k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.82k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.82k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.82k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.82k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  444|  1.82k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.82k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.82k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  445|       |
  446|  1.82k|    return size;
  447|  1.83k|}
ogs_nas_5gs_decode_gprs_timer_3:
  467|  3.22k|{
  468|  3.22k|    int size = 0;
  469|  3.22k|    ogs_nas_gprs_timer_3_t *source = NULL;
  470|       |
  471|  3.22k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (471:9): [True: 21, False: 3.20k]
  ------------------
  472|     21|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  473|     21|       return -1;
  474|     21|    }
  475|       |
  476|  3.20k|    source = (ogs_nas_gprs_timer_3_t *)pkbuf->data;
  477|       |
  478|  3.20k|    gprs_timer_3->length = source->length;
  479|  3.20k|    size = gprs_timer_3->length + sizeof(gprs_timer_3->length);
  480|       |
  481|  3.20k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (481:9): [True: 5, False: 3.19k]
  ------------------
  482|      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__) 
  |  |  ------------------
  ------------------
  483|      5|       return -1;
  484|      5|    }
  485|       |
  486|  3.19k|    if (sizeof(*gprs_timer_3) < size) return -1;
  ------------------
  |  Branch (486:9): [True: 4, False: 3.19k]
  ------------------
  487|  3.19k|    memcpy(gprs_timer_3, pkbuf->data - size, size);
  488|       |
  489|  3.19k|    ogs_trace("  GPRS_TIMER_3 - ");
  ------------------
  |  |   40|  3.19k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  3.19k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  3.19k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  3.19k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  3.19k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  3.19k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  490|  3.19k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  3.19k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  3.19k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  491|       |
  492|  3.19k|    return size;
  493|  3.19k|}
ogs_nas_5gs_decode_s_nssai:
  513|  1.14k|{
  514|  1.14k|    int size = 0;
  515|  1.14k|    ogs_nas_s_nssai_t *source = NULL;
  516|       |
  517|  1.14k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (517:9): [True: 7, False: 1.13k]
  ------------------
  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.13k|    source = (ogs_nas_s_nssai_t *)pkbuf->data;
  523|       |
  524|  1.13k|    s_nssai->length = source->length;
  525|  1.13k|    size = s_nssai->length + sizeof(s_nssai->length);
  526|       |
  527|  1.13k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (527:9): [True: 3, False: 1.13k]
  ------------------
  528|      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__) 
  |  |  ------------------
  ------------------
  529|      3|       return -1;
  530|      3|    }
  531|       |
  532|  1.13k|    if (sizeof(*s_nssai) < size) return -1;
  ------------------
  |  Branch (532:9): [True: 2, False: 1.13k]
  ------------------
  533|  1.13k|    memcpy(s_nssai, pkbuf->data - size, size);
  534|       |
  535|  1.13k|    ogs_trace("  S_NSSAI - ");
  ------------------
  |  |   40|  1.13k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.13k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.13k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.13k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.13k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.13k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  536|  1.13k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.13k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.13k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  537|       |
  538|  1.13k|    return size;
  539|  1.13k|}
ogs_nas_5gs_decode_5gmm_capability:
  559|    306|{
  560|    306|    int size = 0;
  561|    306|    ogs_nas_5gmm_capability_t *source = NULL;
  562|       |
  563|    306|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (563:9): [True: 6, False: 300]
  ------------------
  564|      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__) 
  |  |  ------------------
  ------------------
  565|      6|       return -1;
  566|      6|    }
  567|       |
  568|    300|    source = (ogs_nas_5gmm_capability_t *)pkbuf->data;
  569|       |
  570|    300|    gmm_capability->length = source->length;
  571|    300|    size = gmm_capability->length + sizeof(gmm_capability->length);
  572|       |
  573|    300|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (573:9): [True: 5, False: 295]
  ------------------
  574|      5|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      5|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  575|      5|       return -1;
  576|      5|    }
  577|       |
  578|    295|    if (sizeof(*gmm_capability) < size) return -1;
  ------------------
  |  Branch (578:9): [True: 1, False: 294]
  ------------------
  579|    294|    memcpy(gmm_capability, pkbuf->data - size, size);
  580|       |
  581|    294|    ogs_trace("  5GMM_CAPABILITY - ");
  ------------------
  |  |   40|    294|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    294|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    294|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    294|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    294|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    294|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  582|    294|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    294|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    294|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  583|       |
  584|    294|    return size;
  585|    295|}
ogs_nas_5gs_decode_abba:
  605|    516|{
  606|    516|    int size = 0;
  607|    516|    ogs_nas_abba_t *source = NULL;
  608|       |
  609|    516|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (609:9): [True: 4, False: 512]
  ------------------
  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|    512|    source = (ogs_nas_abba_t *)pkbuf->data;
  615|       |
  616|    512|    abba->length = source->length;
  617|    512|    size = abba->length + sizeof(abba->length);
  618|       |
  619|    512|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (619:9): [True: 8, False: 504]
  ------------------
  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|    504|    if (sizeof(*abba) < size) return -1;
  ------------------
  |  Branch (624:9): [True: 0, False: 504]
  ------------------
  625|    504|    memcpy(abba, pkbuf->data - size, size);
  626|       |
  627|    504|    ogs_trace("  ABBA - ");
  ------------------
  |  |   40|    504|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    504|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    504|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    504|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    504|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    504|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  628|    504|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    504|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    504|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  629|       |
  630|    504|    return size;
  631|    504|}
ogs_nas_5gs_decode_s_nssai_location_validity_information:
  651|    287|{
  652|    287|    int size = 0;
  653|    287|    ogs_nas_s_nssai_location_validity_information_t *source = NULL;
  654|       |
  655|    287|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (655:9): [True: 3, False: 284]
  ------------------
  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|    284|    source = (ogs_nas_s_nssai_location_validity_information_t *)pkbuf->data;
  661|       |
  662|    284|    s_nssai_location_validity_information->length = be16toh(source->length);
  663|    284|    size = s_nssai_location_validity_information->length + sizeof(s_nssai_location_validity_information->length);
  664|       |
  665|    284|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (665:9): [True: 21, False: 263]
  ------------------
  666|     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__) 
  |  |  ------------------
  ------------------
  667|     21|       return -1;
  668|     21|    }
  669|       |
  670|    263|    s_nssai_location_validity_information->buffer = pkbuf->data - size + sizeof(s_nssai_location_validity_information->length);
  671|       |
  672|    263|    ogs_trace("  S_NSSAI_LOCATION_VALIDITY_INFORMATION - ");
  ------------------
  |  |   40|    263|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    263|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    263|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    263|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    263|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    263|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  673|    263|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)s_nssai_location_validity_information->buffer, s_nssai_location_validity_information->length);
  ------------------
  |  |   53|    263|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    263|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  674|       |
  675|    263|    return size;
  676|    284|}
ogs_nas_5gs_decode_s_nssai_time_validity_information:
  704|    456|{
  705|    456|    int size = 0;
  706|    456|    ogs_nas_s_nssai_time_validity_information_t *source = NULL;
  707|       |
  708|    456|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (708:9): [True: 4, False: 452]
  ------------------
  709|      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__) 
  |  |  ------------------
  ------------------
  710|      4|       return -1;
  711|      4|    }
  712|       |
  713|    452|    source = (ogs_nas_s_nssai_time_validity_information_t *)pkbuf->data;
  714|       |
  715|    452|    s_nssai_time_validity_information->length = source->length;
  716|    452|    size = s_nssai_time_validity_information->length + sizeof(s_nssai_time_validity_information->length);
  717|       |
  718|    452|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (718:9): [True: 4, False: 448]
  ------------------
  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|    448|    if (sizeof(*s_nssai_time_validity_information) < size) return -1;
  ------------------
  |  Branch (723:9): [True: 1, False: 447]
  ------------------
  724|    447|    memcpy(s_nssai_time_validity_information, pkbuf->data - size, size);
  725|       |
  726|    447|    ogs_trace("  S_NSSAI_TIME_VALIDITY_INFORMATION - ");
  ------------------
  |  |   40|    447|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    447|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    447|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    447|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    447|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    447|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  727|    447|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    447|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    447|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  728|       |
  729|    447|    return size;
  730|    448|}
ogs_nas_5gs_decode_non_3gpp_path_switching_information:
  750|    229|{
  751|    229|    int size = 0;
  752|    229|    ogs_nas_non_3gpp_path_switching_information_t *source = NULL;
  753|       |
  754|    229|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (754:9): [True: 2, False: 227]
  ------------------
  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|    227|    source = (ogs_nas_non_3gpp_path_switching_information_t *)pkbuf->data;
  760|       |
  761|    227|    non_3gpp_path_switching_information->length = source->length;
  762|    227|    size = non_3gpp_path_switching_information->length + sizeof(non_3gpp_path_switching_information->length);
  763|       |
  764|    227|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (764:9): [True: 4, False: 223]
  ------------------
  765|      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__) 
  |  |  ------------------
  ------------------
  766|      4|       return -1;
  767|      4|    }
  768|       |
  769|    223|    if (sizeof(*non_3gpp_path_switching_information) < size) return -1;
  ------------------
  |  Branch (769:9): [True: 2, False: 221]
  ------------------
  770|    221|    memcpy(non_3gpp_path_switching_information, pkbuf->data - size, size);
  771|       |
  772|    221|    ogs_trace("  NON_3GPP_PATH_SWITCHING_INFORMATION - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  773|    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
  |  |  ------------------
  ------------------
  774|       |
  775|    221|    return size;
  776|    223|}
ogs_nas_5gs_decode_partial_nssai:
  796|    638|{
  797|    638|    int size = 0;
  798|    638|    ogs_nas_partial_nssai_t *source = NULL;
  799|       |
  800|    638|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (800:9): [True: 5, False: 633]
  ------------------
  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|    633|    source = (ogs_nas_partial_nssai_t *)pkbuf->data;
  806|       |
  807|    633|    partial_nssai->length = be16toh(source->length);
  808|    633|    size = partial_nssai->length + sizeof(partial_nssai->length);
  809|       |
  810|    633|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (810:9): [True: 22, False: 611]
  ------------------
  811|     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__) 
  |  |  ------------------
  ------------------
  812|     22|       return -1;
  813|     22|    }
  814|       |
  815|    611|    partial_nssai->buffer = pkbuf->data - size + sizeof(partial_nssai->length);
  816|       |
  817|    611|    ogs_trace("  PARTIAL_NSSAI - ");
  ------------------
  |  |   40|    611|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    611|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    611|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    611|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    611|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    611|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  818|    611|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)partial_nssai->buffer, partial_nssai->length);
  ------------------
  |  |   53|    611|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    611|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  819|       |
  820|    611|    return size;
  821|    633|}
ogs_nas_5gs_decode_aun3_indication:
  849|    217|{
  850|    217|    int size = 0;
  851|    217|    ogs_nas_aun3_indication_t *source = NULL;
  852|       |
  853|    217|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (853:9): [True: 4, False: 213]
  ------------------
  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|    213|    source = (ogs_nas_aun3_indication_t *)pkbuf->data;
  859|       |
  860|    213|    aun3_indication->length = source->length;
  861|    213|    size = aun3_indication->length + sizeof(aun3_indication->length);
  862|       |
  863|    213|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (863:9): [True: 2, False: 211]
  ------------------
  864|      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__) 
  |  |  ------------------
  ------------------
  865|      2|       return -1;
  866|      2|    }
  867|       |
  868|    211|    if (sizeof(*aun3_indication) < size) return -1;
  ------------------
  |  Branch (868:9): [True: 1, False: 210]
  ------------------
  869|    210|    memcpy(aun3_indication, pkbuf->data - size, size);
  870|       |
  871|    210|    ogs_trace("  AUN3_INDICATION - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  872|    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
  |  |  ------------------
  ------------------
  873|       |
  874|    210|    return size;
  875|    211|}
ogs_nas_5gs_decode_feature_authorization_indication:
  895|    464|{
  896|    464|    int size = 0;
  897|    464|    ogs_nas_feature_authorization_indication_t *source = NULL;
  898|       |
  899|    464|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (899:9): [True: 4, False: 460]
  ------------------
  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|    460|    source = (ogs_nas_feature_authorization_indication_t *)pkbuf->data;
  905|       |
  906|    460|    feature_authorization_indication->length = source->length;
  907|    460|    size = feature_authorization_indication->length + sizeof(feature_authorization_indication->length);
  908|       |
  909|    460|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (909:9): [True: 6, False: 454]
  ------------------
  910|      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__) 
  |  |  ------------------
  ------------------
  911|      6|       return -1;
  912|      6|    }
  913|       |
  914|    454|    if (sizeof(*feature_authorization_indication) < size) return -1;
  ------------------
  |  Branch (914:9): [True: 4, False: 450]
  ------------------
  915|    450|    memcpy(feature_authorization_indication, pkbuf->data - size, size);
  916|       |
  917|    450|    ogs_trace("  FEATURE_AUTHORIZATION_INDICATION - ");
  ------------------
  |  |   40|    450|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    450|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    450|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    450|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    450|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    450|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  918|    450|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    450|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    450|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  919|       |
  920|    450|    return size;
  921|    454|}
ogs_nas_5gs_decode_payload_container_information:
  941|    573|{
  942|    573|    int size = sizeof(ogs_nas_payload_container_information_t);
  943|       |
  944|    573|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (944:9): [True: 0, False: 573]
  ------------------
  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|    573|    memcpy(payload_container_information, pkbuf->data - size, size);
  950|       |
  951|    573|    ogs_trace("  PAYLOAD_CONTAINER_INFORMATION - ");
  ------------------
  |  |   40|    573|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    573|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    573|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    573|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    573|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    573|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  952|    573|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    573|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    573|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  953|       |
  954|    573|    return size;
  955|    573|}
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: 6, False: 442]
  ------------------
  978|      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__) 
  |  |  ------------------
  ------------------
  979|      6|       return -1;
  980|      6|    }
  981|       |
  982|    442|    source = (ogs_nas_aun3_device_security_key_t *)pkbuf->data;
  983|       |
  984|    442|    aun3_device_security_key->length = source->length;
  985|    442|    size = aun3_device_security_key->length + sizeof(aun3_device_security_key->length);
  986|       |
  987|    442|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (987:9): [True: 1, False: 441]
  ------------------
  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|    441|    if (sizeof(*aun3_device_security_key) < size) return -1;
  ------------------
  |  Branch (992:9): [True: 1, 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|    441|}
ogs_nas_5gs_decode_on_demand_nssai:
 1019|    621|{
 1020|    621|    int size = 0;
 1021|    621|    ogs_nas_on_demand_nssai_t *source = NULL;
 1022|       |
 1023|    621|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1023:9): [True: 4, False: 617]
  ------------------
 1024|      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__) 
  |  |  ------------------
  ------------------
 1025|      4|       return -1;
 1026|      4|    }
 1027|       |
 1028|    617|    source = (ogs_nas_on_demand_nssai_t *)pkbuf->data;
 1029|       |
 1030|    617|    on_demand_nssai->length = source->length;
 1031|    617|    size = on_demand_nssai->length + sizeof(on_demand_nssai->length);
 1032|       |
 1033|    617|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1033:9): [True: 8, False: 609]
  ------------------
 1034|      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__) 
  |  |  ------------------
  ------------------
 1035|      8|       return -1;
 1036|      8|    }
 1037|       |
 1038|    609|    if (sizeof(*on_demand_nssai) < size) return -1;
  ------------------
  |  Branch (1038:9): [True: 6, False: 603]
  ------------------
 1039|    603|    memcpy(on_demand_nssai, pkbuf->data - size, size);
 1040|       |
 1041|    603|    ogs_trace("  ON_DEMAND_NSSAI - ");
  ------------------
  |  |   40|    603|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    603|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    603|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    603|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    603|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    603|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1042|    603|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    603|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    603|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1043|       |
 1044|    603|    return size;
 1045|    609|}
ogs_nas_5gs_decode_extended_5gmm_cause:
 1065|    204|{
 1066|    204|    int size = 0;
 1067|    204|    ogs_nas_extended_5gmm_cause_t *source = NULL;
 1068|       |
 1069|    204|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1069:9): [True: 4, False: 200]
  ------------------
 1070|      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__) 
  |  |  ------------------
  ------------------
 1071|      4|       return -1;
 1072|      4|    }
 1073|       |
 1074|    200|    source = (ogs_nas_extended_5gmm_cause_t *)pkbuf->data;
 1075|       |
 1076|    200|    extended_gmm_cause->length = source->length;
 1077|    200|    size = extended_gmm_cause->length + sizeof(extended_gmm_cause->length);
 1078|       |
 1079|    200|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1079:9): [True: 1, False: 199]
  ------------------
 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|    199|    if (sizeof(*extended_gmm_cause) < size) return -1;
  ------------------
  |  Branch (1084:9): [True: 1, False: 198]
  ------------------
 1085|    198|    memcpy(extended_gmm_cause, pkbuf->data - size, size);
 1086|       |
 1087|    198|    ogs_trace("  EXTENDED_5GMM_CAUSE - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1088|    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
  |  |  ------------------
  ------------------
 1089|       |
 1090|    198|    return size;
 1091|    199|}
ogs_nas_5gs_decode_access_technology_utilization_control:
 1111|  1.07k|{
 1112|  1.07k|    int size = 0;
 1113|  1.07k|    ogs_nas_access_technology_utilization_control_t *source = NULL;
 1114|       |
 1115|  1.07k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1115:9): [True: 7, False: 1.07k]
  ------------------
 1116|      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__) 
  |  |  ------------------
  ------------------
 1117|      7|       return -1;
 1118|      7|    }
 1119|       |
 1120|  1.07k|    source = (ogs_nas_access_technology_utilization_control_t *)pkbuf->data;
 1121|       |
 1122|  1.07k|    access_technology_utilization_control->length = source->length;
 1123|  1.07k|    size = access_technology_utilization_control->length + sizeof(access_technology_utilization_control->length);
 1124|       |
 1125|  1.07k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1125:9): [True: 7, False: 1.06k]
  ------------------
 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.06k|    if (sizeof(*access_technology_utilization_control) < size) return -1;
  ------------------
  |  Branch (1130:9): [True: 1, False: 1.06k]
  ------------------
 1131|  1.06k|    memcpy(access_technology_utilization_control, pkbuf->data - size, size);
 1132|       |
 1133|  1.06k|    ogs_trace("  ACCESS_TECHNOLOGY_UTILIZATION_CONTROL - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1134|  1.06k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.06k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.06k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1135|       |
 1136|  1.06k|    return size;
 1137|  1.06k|}
ogs_nas_5gs_decode_lp_wusps_assistance_information:
 1157|    646|{
 1158|    646|    int size = 0;
 1159|    646|    ogs_nas_lp_wusps_assistance_information_t *source = NULL;
 1160|       |
 1161|    646|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1161:9): [True: 3, False: 643]
  ------------------
 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|    643|    source = (ogs_nas_lp_wusps_assistance_information_t *)pkbuf->data;
 1167|       |
 1168|    643|    lp_wusps_assistance_information->length = source->length;
 1169|    643|    size = lp_wusps_assistance_information->length + sizeof(lp_wusps_assistance_information->length);
 1170|       |
 1171|    643|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1171:9): [True: 6, False: 637]
  ------------------
 1172|      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__) 
  |  |  ------------------
  ------------------
 1173|      6|       return -1;
 1174|      6|    }
 1175|       |
 1176|    637|    if (sizeof(*lp_wusps_assistance_information) < size) return -1;
  ------------------
  |  Branch (1176:9): [True: 1, False: 636]
  ------------------
 1177|    636|    memcpy(lp_wusps_assistance_information, pkbuf->data - size, size);
 1178|       |
 1179|    636|    ogs_trace("  LP_WUSPS_ASSISTANCE_INFORMATION - ");
  ------------------
  |  |   40|    636|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    636|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    636|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    636|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    636|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    636|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1180|    636|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    636|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    636|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1181|       |
 1182|    636|    return size;
 1183|    637|}
ogs_nas_5gs_decode_lp_wus_status:
 1203|  2.17k|{
 1204|  2.17k|    int size = sizeof(ogs_nas_lp_wus_status_t);
 1205|       |
 1206|  2.17k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1206:9): [True: 0, False: 2.17k]
  ------------------
 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.17k|    memcpy(lp_wus_status, pkbuf->data - size, size);
 1212|       |
 1213|  2.17k|    ogs_trace("  LP_WUS_STATUS - ");
  ------------------
  |  |   40|  2.17k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.17k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.17k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.17k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.17k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.17k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1214|  2.17k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  2.17k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  2.17k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1215|       |
 1216|  2.17k|    return size;
 1217|  2.17k|}
ogs_nas_5gs_decode_additional_5g_security_information:
 1235|    206|{
 1236|    206|    int size = 0;
 1237|    206|    ogs_nas_additional_5g_security_information_t *source = NULL;
 1238|       |
 1239|    206|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1239:9): [True: 1, False: 205]
  ------------------
 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|    205|    source = (ogs_nas_additional_5g_security_information_t *)pkbuf->data;
 1245|       |
 1246|    205|    additional_security_information->length = source->length;
 1247|    205|    size = additional_security_information->length + sizeof(additional_security_information->length);
 1248|       |
 1249|    205|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1249:9): [True: 2, False: 203]
  ------------------
 1250|      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__) 
  |  |  ------------------
  ------------------
 1251|      2|       return -1;
 1252|      2|    }
 1253|       |
 1254|    203|    if (sizeof(*additional_security_information) < size) return -1;
  ------------------
  |  Branch (1254:9): [True: 1, False: 202]
  ------------------
 1255|    202|    memcpy(additional_security_information, pkbuf->data - size, size);
 1256|       |
 1257|    202|    ogs_trace("  ADDITIONAL_5G_SECURITY_INFORMATION - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1258|    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
  |  |  ------------------
  ------------------
 1259|       |
 1260|    202|    return size;
 1261|    203|}
ogs_nas_5gs_decode_additional_information_requested:
 1281|    238|{
 1282|    238|    int size = 0;
 1283|    238|    ogs_nas_additional_information_requested_t *source = NULL;
 1284|       |
 1285|    238|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1285:9): [True: 3, False: 235]
  ------------------
 1286|      3|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      3|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      3|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      3|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      3|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      3|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      3|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1287|      3|       return -1;
 1288|      3|    }
 1289|       |
 1290|    235|    source = (ogs_nas_additional_information_requested_t *)pkbuf->data;
 1291|       |
 1292|    235|    additional_information_requested->length = source->length;
 1293|    235|    size = additional_information_requested->length + sizeof(additional_information_requested->length);
 1294|       |
 1295|    235|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1295:9): [True: 1, False: 234]
  ------------------
 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|    234|    if (sizeof(*additional_information_requested) < size) return -1;
  ------------------
  |  Branch (1300:9): [True: 1, False: 233]
  ------------------
 1301|    233|    memcpy(additional_information_requested, pkbuf->data - size, size);
 1302|       |
 1303|    233|    ogs_trace("  ADDITIONAL_INFORMATION_REQUESTED - ");
  ------------------
  |  |   40|    233|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    233|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    233|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    233|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    233|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    233|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1304|    233|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    233|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    233|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1305|       |
 1306|    233|    return size;
 1307|    234|}
ogs_nas_5gs_decode_allowed_pdu_session_status:
 1327|    562|{
 1328|    562|    int size = 0;
 1329|    562|    ogs_nas_allowed_pdu_session_status_t *source = NULL;
 1330|       |
 1331|    562|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1331:9): [True: 4, False: 558]
  ------------------
 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|    558|    source = (ogs_nas_allowed_pdu_session_status_t *)pkbuf->data;
 1337|       |
 1338|    558|    allowed_pdu_session_status->length = source->length;
 1339|    558|    size = allowed_pdu_session_status->length + sizeof(allowed_pdu_session_status->length);
 1340|       |
 1341|    558|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1341:9): [True: 1, False: 557]
  ------------------
 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|    557|    if (sizeof(*allowed_pdu_session_status) < size) return -1;
  ------------------
  |  Branch (1346:9): [True: 1, False: 556]
  ------------------
 1347|    556|    memcpy(allowed_pdu_session_status, pkbuf->data - size, size);
 1348|       |
 1349|    556|    allowed_pdu_session_status->psi = be16toh(allowed_pdu_session_status->psi);
 1350|       |
 1351|    556|    ogs_trace("  ALLOWED_PDU_SESSION_STATUS - ");
  ------------------
  |  |   40|    556|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    556|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    556|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    556|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    556|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    556|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1352|    556|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    556|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    556|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1353|       |
 1354|    556|    return size;
 1355|    557|}
ogs_nas_5gs_decode_authentication_failure_parameter:
 1377|    224|{
 1378|    224|    int size = 0;
 1379|    224|    ogs_nas_authentication_failure_parameter_t *source = NULL;
 1380|       |
 1381|    224|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1381:9): [True: 3, False: 221]
  ------------------
 1382|      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__) 
  |  |  ------------------
  ------------------
 1383|      3|       return -1;
 1384|      3|    }
 1385|       |
 1386|    221|    source = (ogs_nas_authentication_failure_parameter_t *)pkbuf->data;
 1387|       |
 1388|    221|    authentication_failure_parameter->length = source->length;
 1389|    221|    size = authentication_failure_parameter->length + sizeof(authentication_failure_parameter->length);
 1390|       |
 1391|    221|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1391:9): [True: 1, False: 220]
  ------------------
 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|    220|    if (sizeof(*authentication_failure_parameter) < size) return -1;
  ------------------
  |  Branch (1396:9): [True: 1, False: 219]
  ------------------
 1397|    219|    memcpy(authentication_failure_parameter, pkbuf->data - size, size);
 1398|       |
 1399|    219|    ogs_trace("  AUTHENTICATION_FAILURE_PARAMETER - ");
  ------------------
  |  |   40|    219|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    219|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    219|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    219|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    219|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    219|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1400|    219|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    219|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    219|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1401|       |
 1402|    219|    return size;
 1403|    220|}
ogs_nas_5gs_decode_authentication_parameter_autn:
 1423|    240|{
 1424|    240|    int size = 0;
 1425|    240|    ogs_nas_authentication_parameter_autn_t *source = NULL;
 1426|       |
 1427|    240|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1427:9): [True: 4, False: 236]
  ------------------
 1428|      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__) 
  |  |  ------------------
  ------------------
 1429|      4|       return -1;
 1430|      4|    }
 1431|       |
 1432|    236|    source = (ogs_nas_authentication_parameter_autn_t *)pkbuf->data;
 1433|       |
 1434|    236|    authentication_parameter_autn->length = source->length;
 1435|    236|    size = authentication_parameter_autn->length + sizeof(authentication_parameter_autn->length);
 1436|       |
 1437|    236|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1437:9): [True: 1, False: 235]
  ------------------
 1438|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1439|      1|       return -1;
 1440|      1|    }
 1441|       |
 1442|    235|    if (sizeof(*authentication_parameter_autn) < size) return -1;
  ------------------
  |  Branch (1442:9): [True: 3, False: 232]
  ------------------
 1443|    232|    memcpy(authentication_parameter_autn, pkbuf->data - size, size);
 1444|       |
 1445|    232|    ogs_trace("  AUTHENTICATION_PARAMETER_AUTN - ");
  ------------------
  |  |   40|    232|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    232|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    232|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    232|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    232|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    232|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1446|    232|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    232|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    232|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1447|       |
 1448|    232|    return size;
 1449|    235|}
ogs_nas_5gs_decode_authentication_parameter_rand:
 1469|    206|{
 1470|    206|    int size = sizeof(ogs_nas_authentication_parameter_rand_t);
 1471|       |
 1472|    206|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1472:9): [True: 13, False: 193]
  ------------------
 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|    193|    memcpy(authentication_parameter_rand, pkbuf->data - size, size);
 1478|       |
 1479|    193|    ogs_trace("  AUTHENTICATION_PARAMETER_RAND - ");
  ------------------
  |  |   40|    193|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    193|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    193|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    193|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    193|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    193|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1480|    193|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    193|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    193|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1481|       |
 1482|    193|    return size;
 1483|    206|}
ogs_nas_5gs_decode_authentication_response_parameter:
 1503|    230|{
 1504|    230|    int size = 0;
 1505|    230|    ogs_nas_authentication_response_parameter_t *source = NULL;
 1506|       |
 1507|    230|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1507:9): [True: 5, False: 225]
  ------------------
 1508|      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__) 
  |  |  ------------------
  ------------------
 1509|      5|       return -1;
 1510|      5|    }
 1511|       |
 1512|    225|    source = (ogs_nas_authentication_response_parameter_t *)pkbuf->data;
 1513|       |
 1514|    225|    authentication_response_parameter->length = source->length;
 1515|    225|    size = authentication_response_parameter->length + sizeof(authentication_response_parameter->length);
 1516|       |
 1517|    225|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1517:9): [True: 1, False: 224]
  ------------------
 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|    224|    if (sizeof(*authentication_response_parameter) < size) return -1;
  ------------------
  |  Branch (1522:9): [True: 1, False: 223]
  ------------------
 1523|    223|    memcpy(authentication_response_parameter, pkbuf->data - size, size);
 1524|       |
 1525|    223|    ogs_trace("  AUTHENTICATION_RESPONSE_PARAMETER - ");
  ------------------
  |  |   40|    223|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    223|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    223|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    223|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    223|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    223|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1526|    223|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    223|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    223|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1527|       |
 1528|    223|    return size;
 1529|    224|}
ogs_nas_5gs_decode_configuration_update_indication:
 1549|  1.58k|{
 1550|  1.58k|    int size = sizeof(ogs_nas_configuration_update_indication_t);
 1551|       |
 1552|  1.58k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1552:9): [True: 0, False: 1.58k]
  ------------------
 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.58k|    memcpy(configuration_update_indication, pkbuf->data - size, size);
 1558|       |
 1559|  1.58k|    ogs_trace("  CONFIGURATION_UPDATE_INDICATION - ");
  ------------------
  |  |   40|  1.58k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 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__) 
  |  |  ------------------
  ------------------
 1560|  1.58k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.58k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.58k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1561|       |
 1562|  1.58k|    return size;
 1563|  1.58k|}
ogs_nas_5gs_decode_cag_information_list:
 1581|  1.10k|{
 1582|  1.10k|    int size = 0;
 1583|  1.10k|    ogs_nas_cag_information_list_t *source = NULL;
 1584|       |
 1585|  1.10k|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (1585:9): [True: 9, False: 1.09k]
  ------------------
 1586|      9|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      9|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      9|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      9|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      9|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      9|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      9|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1587|      9|       return -1;
 1588|      9|    }
 1589|       |
 1590|  1.09k|    source = (ogs_nas_cag_information_list_t *)pkbuf->data;
 1591|       |
 1592|  1.09k|    cag_information_list->length = be16toh(source->length);
 1593|  1.09k|    size = cag_information_list->length + sizeof(cag_information_list->length);
 1594|       |
 1595|  1.09k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1595:9): [True: 25, False: 1.07k]
  ------------------
 1596|     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__) 
  |  |  ------------------
  ------------------
 1597|     25|       return -1;
 1598|     25|    }
 1599|       |
 1600|  1.07k|    cag_information_list->buffer = pkbuf->data - size + sizeof(cag_information_list->length);
 1601|       |
 1602|  1.07k|    ogs_trace("  CAG_INFORMATION_LIST - ");
  ------------------
  |  |   40|  1.07k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.07k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.07k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.07k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.07k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.07k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1603|  1.07k|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)cag_information_list->buffer, cag_information_list->length);
  ------------------
  |  |   53|  1.07k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.07k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1604|       |
 1605|  1.07k|    return size;
 1606|  1.09k|}
ogs_nas_5gs_decode_ciphering_key_data:
 1634|    284|{
 1635|    284|    int size = 0;
 1636|    284|    ogs_nas_ciphering_key_data_t *source = NULL;
 1637|       |
 1638|    284|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (1638:9): [True: 5, False: 279]
  ------------------
 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|    279|    source = (ogs_nas_ciphering_key_data_t *)pkbuf->data;
 1644|       |
 1645|    279|    ciphering_key_data->length = be16toh(source->length);
 1646|    279|    size = ciphering_key_data->length + sizeof(ciphering_key_data->length);
 1647|       |
 1648|    279|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1648:9): [True: 24, False: 255]
  ------------------
 1649|     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__) 
  |  |  ------------------
  ------------------
 1650|     24|       return -1;
 1651|     24|    }
 1652|       |
 1653|    255|    ciphering_key_data->buffer = pkbuf->data - size + sizeof(ciphering_key_data->length);
 1654|       |
 1655|    255|    ogs_trace("  CIPHERING_KEY_DATA - ");
  ------------------
  |  |   40|    255|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    255|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    255|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    255|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    255|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    255|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1656|    255|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)ciphering_key_data->buffer, ciphering_key_data->length);
  ------------------
  |  |   53|    255|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    255|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1657|       |
 1658|    255|    return size;
 1659|    279|}
ogs_nas_5gs_decode_daylight_saving_time:
 1687|    355|{
 1688|    355|    int size = 0;
 1689|    355|    ogs_nas_daylight_saving_time_t *source = NULL;
 1690|       |
 1691|    355|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1691:9): [True: 6, False: 349]
  ------------------
 1692|      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__) 
  |  |  ------------------
  ------------------
 1693|      6|       return -1;
 1694|      6|    }
 1695|       |
 1696|    349|    source = (ogs_nas_daylight_saving_time_t *)pkbuf->data;
 1697|       |
 1698|    349|    daylight_saving_time->length = source->length;
 1699|    349|    size = daylight_saving_time->length + sizeof(daylight_saving_time->length);
 1700|       |
 1701|    349|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1701:9): [True: 5, False: 344]
  ------------------
 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|    344|    if (sizeof(*daylight_saving_time) < size) return -1;
  ------------------
  |  Branch (1706:9): [True: 1, False: 343]
  ------------------
 1707|    343|    memcpy(daylight_saving_time, pkbuf->data - size, size);
 1708|       |
 1709|    343|    ogs_trace("  DAYLIGHT_SAVING_TIME - ");
  ------------------
  |  |   40|    343|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    343|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    343|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    343|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    343|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    343|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1710|    343|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    343|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    343|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1711|       |
 1712|    343|    return size;
 1713|    344|}
ogs_nas_5gs_decode_5gmm_cause:
 1733|    848|{
 1734|    848|    int size = sizeof(ogs_nas_5gmm_cause_t);
 1735|       |
 1736|    848|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1736:9): [True: 6, False: 842]
  ------------------
 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|    842|    memcpy(gmm_cause, pkbuf->data - size, size);
 1742|       |
 1743|    842|    ogs_trace("  5GMM_CAUSE - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1744|    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
  |  |  ------------------
  ------------------
 1745|       |
 1746|    842|    return size;
 1747|    848|}
ogs_nas_5gs_decode_de_registration_type:
 1767|    217|{
 1768|    217|    int size = sizeof(ogs_nas_de_registration_type_t);
 1769|       |
 1770|    217|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1770:9): [True: 0, False: 217]
  ------------------
 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|    217|    memcpy(de_registration_type, pkbuf->data - size, size);
 1776|       |
 1777|    217|    ogs_trace("  DE_REGISTRATION_TYPE - ");
  ------------------
  |  |   40|    217|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    217|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    217|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    217|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    217|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    217|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1778|    217|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    217|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    217|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1779|       |
 1780|    217|    return size;
 1781|    217|}
ogs_nas_5gs_decode_emergency_number_list:
 1801|    232|{
 1802|    232|    int size = 0;
 1803|    232|    ogs_nas_emergency_number_list_t *source = NULL;
 1804|       |
 1805|    232|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1805:9): [True: 3, False: 229]
  ------------------
 1806|      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__) 
  |  |  ------------------
  ------------------
 1807|      3|       return -1;
 1808|      3|    }
 1809|       |
 1810|    229|    source = (ogs_nas_emergency_number_list_t *)pkbuf->data;
 1811|       |
 1812|    229|    emergency_number_list->length = source->length;
 1813|    229|    size = emergency_number_list->length + sizeof(emergency_number_list->length);
 1814|       |
 1815|    229|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1815:9): [True: 2, False: 227]
  ------------------
 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|    227|    if (sizeof(*emergency_number_list) < size) return -1;
  ------------------
  |  Branch (1820:9): [True: 1, False: 226]
  ------------------
 1821|    226|    memcpy(emergency_number_list, pkbuf->data - size, size);
 1822|       |
 1823|    226|    ogs_trace("  EMERGENCY_NUMBER_LIST - ");
  ------------------
  |  |   40|    226|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    226|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    226|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    226|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    226|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    226|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1824|    226|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    226|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    226|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1825|       |
 1826|    226|    return size;
 1827|    227|}
ogs_nas_5gs_decode_eps_bearer_context_status:
 1847|    455|{
 1848|    455|    int size = 0;
 1849|    455|    ogs_nas_eps_bearer_context_status_t *source = NULL;
 1850|       |
 1851|    455|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (1851:9): [True: 7, False: 448]
  ------------------
 1852|      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__) 
  |  |  ------------------
  ------------------
 1853|      7|       return -1;
 1854|      7|    }
 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: 2, False: 446]
  ------------------
 1862|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1863|      2|       return -1;
 1864|      2|    }
 1865|       |
 1866|    446|    if (sizeof(*eps_bearer_context_status) < size) return -1;
  ------------------
  |  Branch (1866:9): [True: 2, False: 444]
  ------------------
 1867|    444|    memcpy(eps_bearer_context_status, pkbuf->data - size, size);
 1868|       |
 1869|    444|    ogs_trace("  EPS_BEARER_CONTEXT_STATUS - ");
  ------------------
  |  |   40|    444|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    444|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    444|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    444|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    444|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    444|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1870|    444|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    444|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    444|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1871|       |
 1872|    444|    return size;
 1873|    446|}
ogs_nas_5gs_decode_eps_nas_message_container:
 1893|    285|{
 1894|    285|    int size = 0;
 1895|    285|    ogs_nas_eps_nas_message_container_t *source = NULL;
 1896|       |
 1897|    285|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (1897:9): [True: 5, False: 280]
  ------------------
 1898|      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__) 
  |  |  ------------------
  ------------------
 1899|      5|       return -1;
 1900|      5|    }
 1901|       |
 1902|    280|    source = (ogs_nas_eps_nas_message_container_t *)pkbuf->data;
 1903|       |
 1904|    280|    eps_nas_message_container->length = be16toh(source->length);
 1905|    280|    size = eps_nas_message_container->length + sizeof(eps_nas_message_container->length);
 1906|       |
 1907|    280|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1907:9): [True: 24, False: 256]
  ------------------
 1908|     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__) 
  |  |  ------------------
  ------------------
 1909|     24|       return -1;
 1910|     24|    }
 1911|       |
 1912|    256|    eps_nas_message_container->buffer = pkbuf->data - size + sizeof(eps_nas_message_container->length);
 1913|       |
 1914|    256|    ogs_trace("  EPS_NAS_MESSAGE_CONTAINER - ");
  ------------------
  |  |   40|    256|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    256|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    256|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    256|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    256|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    256|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1915|    256|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)eps_nas_message_container->buffer, eps_nas_message_container->length);
  ------------------
  |  |   53|    256|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    256|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1916|       |
 1917|    256|    return size;
 1918|    280|}
ogs_nas_5gs_decode_eps_nas_security_algorithms:
 1946|    350|{
 1947|    350|    int size = sizeof(ogs_nas_eps_nas_security_algorithms_t);
 1948|       |
 1949|    350|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1949:9): [True: 3, False: 347]
  ------------------
 1950|      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__) 
  |  |  ------------------
  ------------------
 1951|      3|       return -1;
 1952|      3|    }
 1953|       |
 1954|    347|    memcpy(eps_nas_security_algorithms, pkbuf->data - size, size);
 1955|       |
 1956|    347|    ogs_trace("  EPS_NAS_SECURITY_ALGORITHMS - ");
  ------------------
  |  |   40|    347|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    347|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    347|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    347|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    347|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    347|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1957|    347|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    347|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    347|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 1958|       |
 1959|    347|    return size;
 1960|    350|}
ogs_nas_5gs_decode_extended_emergency_number_list:
 1980|    264|{
 1981|    264|    int size = 0;
 1982|    264|    ogs_nas_extended_emergency_number_list_t *source = NULL;
 1983|       |
 1984|    264|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (1984:9): [True: 5, False: 259]
  ------------------
 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|    259|    source = (ogs_nas_extended_emergency_number_list_t *)pkbuf->data;
 1990|       |
 1991|    259|    extended_emergency_number_list->length = be16toh(source->length);
 1992|    259|    size = extended_emergency_number_list->length + sizeof(extended_emergency_number_list->length);
 1993|       |
 1994|    259|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (1994:9): [True: 18, False: 241]
  ------------------
 1995|     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__) 
  |  |  ------------------
  ------------------
 1996|     18|       return -1;
 1997|     18|    }
 1998|       |
 1999|    241|    extended_emergency_number_list->buffer = pkbuf->data - size + sizeof(extended_emergency_number_list->length);
 2000|       |
 2001|    241|    ogs_trace("  EXTENDED_EMERGENCY_NUMBER_LIST - ");
  ------------------
  |  |   40|    241|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    241|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    241|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    241|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    241|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    241|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2002|    241|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)extended_emergency_number_list->buffer, extended_emergency_number_list->length);
  ------------------
  |  |   53|    241|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    241|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2003|       |
 2004|    241|    return size;
 2005|    259|}
ogs_nas_5gs_decode_extended_drx_parameters:
 2033|    433|{
 2034|    433|    int size = 0;
 2035|    433|    ogs_nas_extended_drx_parameters_t *source = NULL;
 2036|       |
 2037|    433|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (2037:9): [True: 5, False: 428]
  ------------------
 2038|      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__) 
  |  |  ------------------
  ------------------
 2039|      5|       return -1;
 2040|      5|    }
 2041|       |
 2042|    428|    source = (ogs_nas_extended_drx_parameters_t *)pkbuf->data;
 2043|       |
 2044|    428|    extended_drx_parameters->length = source->length;
 2045|    428|    size = extended_drx_parameters->length + sizeof(extended_drx_parameters->length);
 2046|       |
 2047|    428|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2047:9): [True: 2, False: 426]
  ------------------
 2048|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2049|      2|       return -1;
 2050|      2|    }
 2051|       |
 2052|    426|    if (sizeof(*extended_drx_parameters) < size) return -1;
  ------------------
  |  Branch (2052:9): [True: 1, False: 425]
  ------------------
 2053|    425|    memcpy(extended_drx_parameters, pkbuf->data - size, size);
 2054|       |
 2055|    425|    ogs_trace("  EXTENDED_DRX_PARAMETERS - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 2056|    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
  |  |  ------------------
  ------------------
 2057|       |
 2058|    425|    return size;
 2059|    426|}
ogs_nas_5gs_decode_imeisv_request:
 2079|    484|{
 2080|    484|    int size = sizeof(ogs_nas_imeisv_request_t);
 2081|       |
 2082|    484|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2082:9): [True: 0, False: 484]
  ------------------
 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|    484|    memcpy(imeisv_request, pkbuf->data - size, size);
 2088|       |
 2089|    484|    ogs_trace("  IMEISV_REQUEST - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 2090|    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
  |  |  ------------------
  ------------------
 2091|       |
 2092|    484|    return size;
 2093|    484|}
ogs_nas_5gs_decode_ladn_indication:
 2111|    213|{
 2112|    213|    int size = 0;
 2113|    213|    ogs_nas_ladn_indication_t *source = NULL;
 2114|       |
 2115|    213|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (2115:9): [True: 4, False: 209]
  ------------------
 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|    209|    source = (ogs_nas_ladn_indication_t *)pkbuf->data;
 2121|       |
 2122|    209|    ladn_indication->length = be16toh(source->length);
 2123|    209|    size = ladn_indication->length + sizeof(ladn_indication->length);
 2124|       |
 2125|    209|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2125:9): [True: 5, False: 204]
  ------------------
 2126|      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__) 
  |  |  ------------------
  ------------------
 2127|      5|       return -1;
 2128|      5|    }
 2129|       |
 2130|    204|    ladn_indication->buffer = pkbuf->data - size + sizeof(ladn_indication->length);
 2131|       |
 2132|    204|    ogs_trace("  LADN_INDICATION - ");
  ------------------
  |  |   40|    204|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    204|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    204|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    204|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    204|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    204|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2133|    204|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)ladn_indication->buffer, ladn_indication->length);
  ------------------
  |  |   53|    204|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    204|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2134|       |
 2135|    204|    return size;
 2136|    209|}
ogs_nas_5gs_decode_5gs_drx_parameters:
 2164|    448|{
 2165|    448|    int size = 0;
 2166|    448|    ogs_nas_5gs_drx_parameters_t *source = NULL;
 2167|       |
 2168|    448|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (2168:9): [True: 7, False: 441]
  ------------------
 2169|      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__) 
  |  |  ------------------
  ------------------
 2170|      7|       return -1;
 2171|      7|    }
 2172|       |
 2173|    441|    source = (ogs_nas_5gs_drx_parameters_t *)pkbuf->data;
 2174|       |
 2175|    441|    drx_parameters->length = source->length;
 2176|    441|    size = drx_parameters->length + sizeof(drx_parameters->length);
 2177|       |
 2178|    441|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2178:9): [True: 1, False: 440]
  ------------------
 2179|      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__) 
  |  |  ------------------
  ------------------
 2180|      1|       return -1;
 2181|      1|    }
 2182|       |
 2183|    440|    if (sizeof(*drx_parameters) < size) return -1;
  ------------------
  |  Branch (2183:9): [True: 3, False: 437]
  ------------------
 2184|    437|    memcpy(drx_parameters, pkbuf->data - size, size);
 2185|       |
 2186|    437|    ogs_trace("  5GS_DRX_PARAMETERS - ");
  ------------------
  |  |   40|    437|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    437|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    437|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    437|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    437|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    437|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2187|    437|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    437|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    437|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2188|       |
 2189|    437|    return size;
 2190|    440|}
ogs_nas_5gs_decode_5gs_identity_type:
 2210|      1|{
 2211|      1|    int size = sizeof(ogs_nas_5gs_identity_type_t);
 2212|       |
 2213|      1|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2213:9): [True: 0, False: 1]
  ------------------
 2214|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2215|      0|       return -1;
 2216|      0|    }
 2217|       |
 2218|      1|    memcpy(identity_type, pkbuf->data - size, size);
 2219|       |
 2220|      1|    ogs_trace("  5GS_IDENTITY_TYPE - ");
  ------------------
  |  |   40|      1|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2221|      1|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|      1|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2222|       |
 2223|      1|    return size;
 2224|      1|}
ogs_nas_5gs_decode_ladn_information:
 2244|    503|{
 2245|    503|    int size = 0;
 2246|    503|    ogs_nas_ladn_information_t *source = NULL;
 2247|       |
 2248|    503|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (2248:9): [True: 7, False: 496]
  ------------------
 2249|      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__) 
  |  |  ------------------
  ------------------
 2250|      7|       return -1;
 2251|      7|    }
 2252|       |
 2253|    496|    source = (ogs_nas_ladn_information_t *)pkbuf->data;
 2254|       |
 2255|    496|    ladn_information->length = be16toh(source->length);
 2256|    496|    size = ladn_information->length + sizeof(ladn_information->length);
 2257|       |
 2258|    496|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2258:9): [True: 25, False: 471]
  ------------------
 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|    471|    ladn_information->buffer = pkbuf->data - size + sizeof(ladn_information->length);
 2264|       |
 2265|    471|    ogs_trace("  LADN_INFORMATION - ");
  ------------------
  |  |   40|    471|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    471|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    471|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    471|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    471|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    471|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2266|    471|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)ladn_information->buffer, ladn_information->length);
  ------------------
  |  |   53|    471|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    471|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2267|       |
 2268|    471|    return size;
 2269|    496|}
ogs_nas_5gs_decode_mico_indication:
 2297|  2.42k|{
 2298|  2.42k|    int size = sizeof(ogs_nas_mico_indication_t);
 2299|       |
 2300|  2.42k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2300:9): [True: 0, False: 2.42k]
  ------------------
 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.42k|    memcpy(mico_indication, pkbuf->data - size, size);
 2306|       |
 2307|  2.42k|    ogs_trace("  MICO_INDICATION - ");
  ------------------
  |  |   40|  2.42k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.42k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.42k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.42k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.42k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.42k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2308|  2.42k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  2.42k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  2.42k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2309|       |
 2310|  2.42k|    return size;
 2311|  2.42k|}
ogs_nas_5gs_decode_ma_pdu_session_information:
 2329|    384|{
 2330|    384|    int size = sizeof(ogs_nas_ma_pdu_session_information_t);
 2331|       |
 2332|    384|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2332:9): [True: 0, False: 384]
  ------------------
 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|    384|    memcpy(ma_pdu_session_information, pkbuf->data - size, size);
 2338|       |
 2339|    384|    ogs_trace("  MA_PDU_SESSION_INFORMATION - ");
  ------------------
  |  |   40|    384|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    384|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    384|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    384|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    384|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    384|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2340|    384|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    384|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    384|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2341|       |
 2342|    384|    return size;
 2343|    384|}
ogs_nas_5gs_decode_mapped_nssai:
 2361|    203|{
 2362|    203|    int size = 0;
 2363|    203|    ogs_nas_mapped_nssai_t *source = NULL;
 2364|       |
 2365|    203|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (2365:9): [True: 1, False: 202]
  ------------------
 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|    202|    source = (ogs_nas_mapped_nssai_t *)pkbuf->data;
 2371|       |
 2372|    202|    mapped_nssai->length = source->length;
 2373|    202|    size = mapped_nssai->length + sizeof(mapped_nssai->length);
 2374|       |
 2375|    202|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2375:9): [True: 1, False: 201]
  ------------------
 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|    201|    if (sizeof(*mapped_nssai) < size) return -1;
  ------------------
  |  Branch (2380:9): [True: 1, False: 200]
  ------------------
 2381|    200|    memcpy(mapped_nssai, pkbuf->data - size, size);
 2382|       |
 2383|    200|    ogs_trace("  MAPPED_NSSAI - ");
  ------------------
  |  |   40|    200|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    200|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    200|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    200|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    200|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    200|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2384|    200|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    200|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    200|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2385|       |
 2386|    200|    return size;
 2387|    201|}
ogs_nas_5gs_decode_mobile_station_classmark_2:
 2407|    228|{
 2408|    228|    int size = 0;
 2409|    228|    ogs_nas_mobile_station_classmark_2_t *source = NULL;
 2410|       |
 2411|    228|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (2411:9): [True: 4, False: 224]
  ------------------
 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|    224|    source = (ogs_nas_mobile_station_classmark_2_t *)pkbuf->data;
 2417|       |
 2418|    224|    mobile_station_classmark_2->length = source->length;
 2419|    224|    size = mobile_station_classmark_2->length + sizeof(mobile_station_classmark_2->length);
 2420|       |
 2421|    224|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2421:9): [True: 1, False: 223]
  ------------------
 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|    223|    if (sizeof(*mobile_station_classmark_2) < size) return -1;
  ------------------
  |  Branch (2426:9): [True: 1, False: 222]
  ------------------
 2427|    222|    memcpy(mobile_station_classmark_2, pkbuf->data - size, size);
 2428|       |
 2429|    222|    ogs_trace("  MOBILE_STATION_CLASSMARK_2 - ");
  ------------------
  |  |   40|    222|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    222|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    222|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    222|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    222|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    222|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2430|    222|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    222|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    222|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2431|       |
 2432|    222|    return size;
 2433|    223|}
ogs_nas_5gs_decode_key_set_identifier:
 2453|    926|{
 2454|    926|    int size = sizeof(ogs_nas_key_set_identifier_t);
 2455|       |
 2456|    926|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2456:9): [True: 1, False: 925]
  ------------------
 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|    925|    memcpy(key_set_identifier, pkbuf->data - size, size);
 2462|       |
 2463|    925|    ogs_trace("  KEY_SET_IDENTIFIER - ");
  ------------------
  |  |   40|    925|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    925|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    925|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    925|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    925|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    925|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2464|    925|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    925|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    925|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2465|       |
 2466|    925|    return size;
 2467|    926|}
ogs_nas_5gs_decode_message_container:
 2485|    913|{
 2486|    913|    int size = 0;
 2487|    913|    ogs_nas_message_container_t *source = NULL;
 2488|       |
 2489|    913|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (2489:9): [True: 11, False: 902]
  ------------------
 2490|     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__) 
  |  |  ------------------
  ------------------
 2491|     11|       return -1;
 2492|     11|    }
 2493|       |
 2494|    902|    source = (ogs_nas_message_container_t *)pkbuf->data;
 2495|       |
 2496|    902|    message_container->length = be16toh(source->length);
 2497|    902|    size = message_container->length + sizeof(message_container->length);
 2498|       |
 2499|    902|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2499:9): [True: 22, False: 880]
  ------------------
 2500|     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__) 
  |  |  ------------------
  ------------------
 2501|     22|       return -1;
 2502|     22|    }
 2503|       |
 2504|    880|    message_container->buffer = pkbuf->data - size + sizeof(message_container->length);
 2505|       |
 2506|    880|    ogs_trace("  MESSAGE_CONTAINER - ");
  ------------------
  |  |   40|    880|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    880|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    880|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    880|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    880|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    880|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2507|    880|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)message_container->buffer, message_container->length);
  ------------------
  |  |   53|    880|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    880|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2508|       |
 2509|    880|    return size;
 2510|    902|}
ogs_nas_5gs_decode_security_algorithms:
 2538|    144|{
 2539|    144|    int size = sizeof(ogs_nas_security_algorithms_t);
 2540|       |
 2541|    144|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2541:9): [True: 0, False: 144]
  ------------------
 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|    144|    memcpy(security_algorithms, pkbuf->data - size, size);
 2547|       |
 2548|    144|    ogs_trace("  SECURITY_ALGORITHMS - ");
  ------------------
  |  |   40|    144|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    144|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    144|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    144|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    144|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    144|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2549|    144|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    144|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    144|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2550|       |
 2551|    144|    return size;
 2552|    144|}
ogs_nas_5gs_decode_network_name:
 2572|    468|{
 2573|    468|    int size = 0;
 2574|    468|    ogs_nas_network_name_t *source = NULL;
 2575|       |
 2576|    468|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (2576:9): [True: 3, False: 465]
  ------------------
 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|    465|    source = (ogs_nas_network_name_t *)pkbuf->data;
 2582|       |
 2583|    465|    network_name->length = source->length;
 2584|    465|    size = network_name->length + sizeof(network_name->length);
 2585|       |
 2586|    465|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2586:9): [True: 7, False: 458]
  ------------------
 2587|      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__) 
  |  |  ------------------
  ------------------
 2588|      7|       return -1;
 2589|      7|    }
 2590|       |
 2591|    458|    if (sizeof(*network_name) < size) return -1;
  ------------------
  |  Branch (2591:9): [True: 0, False: 458]
  ------------------
 2592|    458|    memcpy(network_name, pkbuf->data - size, size);
 2593|       |
 2594|    458|    ogs_trace("  NETWORK_NAME - ");
  ------------------
  |  |   40|    458|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    458|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    458|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    458|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    458|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    458|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2595|    458|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    458|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    458|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2596|       |
 2597|    458|    return size;
 2598|    458|}
ogs_nas_5gs_decode_network_slicing_indication:
 2618|  2.91k|{
 2619|  2.91k|    int size = sizeof(ogs_nas_network_slicing_indication_t);
 2620|       |
 2621|  2.91k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2621:9): [True: 0, False: 2.91k]
  ------------------
 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.91k|    memcpy(network_slicing_indication, pkbuf->data - size, size);
 2627|       |
 2628|  2.91k|    ogs_trace("  NETWORK_SLICING_INDICATION - ");
  ------------------
  |  |   40|  2.91k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  2.91k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  2.91k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  2.91k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  2.91k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  2.91k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2629|  2.91k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  2.91k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  2.91k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2630|       |
 2631|  2.91k|    return size;
 2632|  2.91k|}
ogs_nas_5gs_decode_non_3gpp_nw_provided_policies:
 2650|    382|{
 2651|    382|    int size = sizeof(ogs_nas_non_3gpp_nw_provided_policies_t);
 2652|       |
 2653|    382|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2653:9): [True: 4, False: 378]
  ------------------
 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|    378|    memcpy(non_3gpp_nw_provided_policies, pkbuf->data - size, size);
 2659|       |
 2660|    378|    ogs_trace("  NON_3GPP_NW_PROVIDED_POLICIES - ");
  ------------------
  |  |   40|    378|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    378|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    378|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    378|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    378|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    378|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2661|    378|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    378|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    378|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2662|       |
 2663|    378|    return size;
 2664|    382|}
ogs_nas_5gs_decode_nssai:
 2682|  1.47k|{
 2683|  1.47k|    int size = 0;
 2684|  1.47k|    ogs_nas_nssai_t *source = NULL;
 2685|       |
 2686|  1.47k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (2686:9): [True: 8, False: 1.46k]
  ------------------
 2687|      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__) 
  |  |  ------------------
  ------------------
 2688|      8|       return -1;
 2689|      8|    }
 2690|       |
 2691|  1.46k|    source = (ogs_nas_nssai_t *)pkbuf->data;
 2692|       |
 2693|  1.46k|    nssai->length = source->length;
 2694|  1.46k|    size = nssai->length + sizeof(nssai->length);
 2695|       |
 2696|  1.46k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2696:9): [True: 3, False: 1.46k]
  ------------------
 2697|      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__) 
  |  |  ------------------
  ------------------
 2698|      3|       return -1;
 2699|      3|    }
 2700|       |
 2701|  1.46k|    if (sizeof(*nssai) < size) return -1;
  ------------------
  |  Branch (2701:9): [True: 2, False: 1.45k]
  ------------------
 2702|  1.45k|    memcpy(nssai, pkbuf->data - size, size);
 2703|       |
 2704|  1.45k|    ogs_trace("  NSSAI - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 2705|  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
  |  |  ------------------
  ------------------
 2706|       |
 2707|  1.45k|    return size;
 2708|  1.46k|}
ogs_nas_5gs_decode_nssai_inclusion_mode:
 2728|    496|{
 2729|    496|    int size = sizeof(ogs_nas_nssai_inclusion_mode_t);
 2730|       |
 2731|    496|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2731:9): [True: 0, False: 496]
  ------------------
 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|    496|    memcpy(nssai_inclusion_mode, pkbuf->data - size, size);
 2737|       |
 2738|    496|    ogs_trace("  NSSAI_INCLUSION_MODE - ");
  ------------------
  |  |   40|    496|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    496|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    496|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    496|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    496|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    496|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2739|    496|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    496|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    496|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2740|       |
 2741|    496|    return size;
 2742|    496|}
ogs_nas_5gs_decode_operator_defined_access_category_definitions:
 2760|    465|{
 2761|    465|    int size = 0;
 2762|    465|    ogs_nas_operator_defined_access_category_definitions_t *source = NULL;
 2763|       |
 2764|    465|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (2764:9): [True: 6, False: 459]
  ------------------
 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|    459|    source = (ogs_nas_operator_defined_access_category_definitions_t *)pkbuf->data;
 2770|       |
 2771|    459|    operator_defined_access_category_definitions->length = be16toh(source->length);
 2772|    459|    size = operator_defined_access_category_definitions->length + sizeof(operator_defined_access_category_definitions->length);
 2773|       |
 2774|    459|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2774:9): [True: 21, False: 438]
  ------------------
 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|    438|    operator_defined_access_category_definitions->buffer = pkbuf->data - size + sizeof(operator_defined_access_category_definitions->length);
 2780|       |
 2781|    438|    ogs_trace("  OPERATOR_DEFINED_ACCESS_CATEGORY_DEFINITIONS - ");
  ------------------
  |  |   40|    438|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    438|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    438|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    438|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    438|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    438|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2782|    438|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)operator_defined_access_category_definitions->buffer, operator_defined_access_category_definitions->length);
  ------------------
  |  |   53|    438|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    438|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2783|       |
 2784|    438|    return size;
 2785|    459|}
ogs_nas_5gs_decode_payload_container:
 2813|    757|{
 2814|    757|    int size = 0;
 2815|    757|    ogs_nas_payload_container_t *source = NULL;
 2816|       |
 2817|    757|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (2817:9): [True: 5, False: 752]
  ------------------
 2818|      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__) 
  |  |  ------------------
  ------------------
 2819|      5|       return -1;
 2820|      5|    }
 2821|       |
 2822|    752|    source = (ogs_nas_payload_container_t *)pkbuf->data;
 2823|       |
 2824|    752|    payload_container->length = be16toh(source->length);
 2825|    752|    size = payload_container->length + sizeof(payload_container->length);
 2826|       |
 2827|    752|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2827:9): [True: 23, False: 729]
  ------------------
 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|    729|    payload_container->buffer = pkbuf->data - size + sizeof(payload_container->length);
 2833|       |
 2834|    729|    ogs_trace("  PAYLOAD_CONTAINER - ");
  ------------------
  |  |   40|    729|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    729|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    729|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    729|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    729|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    729|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2835|    729|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)payload_container->buffer, payload_container->length);
  ------------------
  |  |   53|    729|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    729|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2836|       |
 2837|    729|    return size;
 2838|    752|}
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: 14, False: 1.91k]
  ------------------
 2871|     14|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 2872|     14|       return -1;
 2873|     14|    }
 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: 22, False: 1.89k]
  ------------------
 2881|     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__) 
  |  |  ------------------
  ------------------
 2882|     22|       return -1;
 2883|     22|    }
 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.05k|{
 2920|  1.05k|    int size = sizeof(ogs_nas_payload_container_type_t);
 2921|       |
 2922|  1.05k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2922:9): [True: 0, False: 1.05k]
  ------------------
 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.05k|    memcpy(payload_container_type, pkbuf->data - size, size);
 2928|       |
 2929|  1.05k|    ogs_trace("  PAYLOAD_CONTAINER_TYPE - ");
  ------------------
  |  |   40|  1.05k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.05k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.05k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.05k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.05k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.05k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2930|  1.05k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.05k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.05k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2931|       |
 2932|  1.05k|    return size;
 2933|  1.05k|}
ogs_nas_5gs_decode_pdu_session_identity_2:
 2951|    760|{
 2952|    760|    int size = sizeof(ogs_nas_pdu_session_identity_2_t);
 2953|       |
 2954|    760|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2954:9): [True: 8, False: 752]
  ------------------
 2955|      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__) 
  |  |  ------------------
  ------------------
 2956|      8|       return -1;
 2957|      8|    }
 2958|       |
 2959|    752|    memcpy(pdu_session_identity_2, pkbuf->data - size, size);
 2960|       |
 2961|    752|    ogs_trace("  PDU_SESSION_IDENTITY_2 - ");
  ------------------
  |  |   40|    752|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    752|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    752|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    752|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    752|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    752|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2962|    752|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    752|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    752|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 2963|       |
 2964|    752|    return size;
 2965|    760|}
ogs_nas_5gs_decode_pdu_session_reactivation_result:
 2985|    485|{
 2986|    485|    int size = 0;
 2987|    485|    ogs_nas_pdu_session_reactivation_result_t *source = NULL;
 2988|       |
 2989|    485|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (2989:9): [True: 4, False: 481]
  ------------------
 2990|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 2991|      4|       return -1;
 2992|      4|    }
 2993|       |
 2994|    481|    source = (ogs_nas_pdu_session_reactivation_result_t *)pkbuf->data;
 2995|       |
 2996|    481|    pdu_session_reactivation_result->length = source->length;
 2997|    481|    size = pdu_session_reactivation_result->length + sizeof(pdu_session_reactivation_result->length);
 2998|       |
 2999|    481|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (2999:9): [True: 8, False: 473]
  ------------------
 3000|      8|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      8|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      8|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      8|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      8|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      8|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      8|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3001|      8|       return -1;
 3002|      8|    }
 3003|       |
 3004|    473|    if (sizeof(*pdu_session_reactivation_result) < size) return -1;
  ------------------
  |  Branch (3004:9): [True: 1, False: 472]
  ------------------
 3005|    472|    memcpy(pdu_session_reactivation_result, pkbuf->data - size, size);
 3006|       |
 3007|    472|    pdu_session_reactivation_result->psi = be16toh(pdu_session_reactivation_result->psi);
 3008|       |
 3009|    472|    ogs_trace("  PDU_SESSION_REACTIVATION_RESULT - ");
  ------------------
  |  |   40|    472|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    472|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    472|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    472|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    472|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    472|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3010|    472|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    472|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    472|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3011|       |
 3012|    472|    return size;
 3013|    473|}
ogs_nas_5gs_decode_pdu_session_reactivation_result_error_cause:
 3035|    461|{
 3036|    461|    int size = 0;
 3037|    461|    ogs_nas_pdu_session_reactivation_result_error_cause_t *source = NULL;
 3038|       |
 3039|    461|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (3039:9): [True: 5, False: 456]
  ------------------
 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|    456|    source = (ogs_nas_pdu_session_reactivation_result_error_cause_t *)pkbuf->data;
 3045|       |
 3046|    456|    pdu_session_reactivation_result_error_cause->length = be16toh(source->length);
 3047|    456|    size = pdu_session_reactivation_result_error_cause->length + sizeof(pdu_session_reactivation_result_error_cause->length);
 3048|       |
 3049|    456|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3049:9): [True: 25, False: 431]
  ------------------
 3050|     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__) 
  |  |  ------------------
  ------------------
 3051|     25|       return -1;
 3052|     25|    }
 3053|       |
 3054|    431|    pdu_session_reactivation_result_error_cause->buffer = pkbuf->data - size + sizeof(pdu_session_reactivation_result_error_cause->length);
 3055|       |
 3056|    431|    ogs_trace("  PDU_SESSION_REACTIVATION_RESULT_ERROR_CAUSE - ");
  ------------------
  |  |   40|    431|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    431|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    431|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    431|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    431|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    431|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3057|    431|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)pdu_session_reactivation_result_error_cause->buffer, pdu_session_reactivation_result_error_cause->length);
  ------------------
  |  |   53|    431|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    431|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3058|       |
 3059|    431|    return size;
 3060|    456|}
ogs_nas_5gs_decode_pdu_session_status:
 3088|  1.36k|{
 3089|  1.36k|    int size = 0;
 3090|  1.36k|    ogs_nas_pdu_session_status_t *source = NULL;
 3091|       |
 3092|  1.36k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3092:9): [True: 8, False: 1.35k]
  ------------------
 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.35k|    source = (ogs_nas_pdu_session_status_t *)pkbuf->data;
 3098|       |
 3099|  1.35k|    pdu_session_status->length = source->length;
 3100|  1.35k|    size = pdu_session_status->length + sizeof(pdu_session_status->length);
 3101|       |
 3102|  1.35k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3102:9): [True: 7, False: 1.34k]
  ------------------
 3103|      7|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      7|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      7|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      7|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      7|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      7|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      7|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3104|      7|       return -1;
 3105|      7|    }
 3106|       |
 3107|  1.34k|    if (sizeof(*pdu_session_status) < size) return -1;
  ------------------
  |  Branch (3107:9): [True: 1, False: 1.34k]
  ------------------
 3108|  1.34k|    memcpy(pdu_session_status, pkbuf->data - size, size);
 3109|       |
 3110|  1.34k|    pdu_session_status->psi = be16toh(pdu_session_status->psi);
 3111|       |
 3112|  1.34k|    ogs_trace("  PDU_SESSION_STATUS - ");
  ------------------
  |  |   40|  1.34k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.34k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.34k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.34k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.34k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.34k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3113|  1.34k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.34k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.34k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3114|       |
 3115|  1.34k|    return size;
 3116|  1.34k|}
ogs_nas_5gs_decode_plmn_list:
 3138|    223|{
 3139|    223|    int size = 0;
 3140|    223|    ogs_nas_plmn_list_t *source = NULL;
 3141|       |
 3142|    223|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3142:9): [True: 4, False: 219]
  ------------------
 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|    219|    source = (ogs_nas_plmn_list_t *)pkbuf->data;
 3148|       |
 3149|    219|    plmn_list->length = source->length;
 3150|    219|    size = plmn_list->length + sizeof(plmn_list->length);
 3151|       |
 3152|    219|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3152:9): [True: 2, False: 217]
  ------------------
 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|    217|    if (sizeof(*plmn_list) < size) return -1;
  ------------------
  |  Branch (3157:9): [True: 4, False: 213]
  ------------------
 3158|    213|    memcpy(plmn_list, pkbuf->data - size, size);
 3159|       |
 3160|    213|    ogs_trace("  PLMN_LIST - ");
  ------------------
  |  |   40|    213|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    213|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    213|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    213|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    213|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    213|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3161|    213|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    213|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    213|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3162|       |
 3163|    213|    return size;
 3164|    217|}
ogs_nas_5gs_decode_rejected_nssai:
 3184|    911|{
 3185|    911|    int size = 0;
 3186|    911|    ogs_nas_rejected_nssai_t *source = NULL;
 3187|       |
 3188|    911|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3188:9): [True: 6, False: 905]
  ------------------
 3189|      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__) 
  |  |  ------------------
  ------------------
 3190|      6|       return -1;
 3191|      6|    }
 3192|       |
 3193|    905|    source = (ogs_nas_rejected_nssai_t *)pkbuf->data;
 3194|       |
 3195|    905|    rejected_nssai->length = source->length;
 3196|    905|    size = rejected_nssai->length + sizeof(rejected_nssai->length);
 3197|       |
 3198|    905|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3198:9): [True: 2, False: 903]
  ------------------
 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|    903|    if (sizeof(*rejected_nssai) < size) return -1;
  ------------------
  |  Branch (3203:9): [True: 1, False: 902]
  ------------------
 3204|    902|    memcpy(rejected_nssai, pkbuf->data - size, size);
 3205|       |
 3206|    902|    ogs_trace("  REJECTED_NSSAI - ");
  ------------------
  |  |   40|    902|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    902|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    902|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    902|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    902|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    902|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3207|    902|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    902|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    902|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3208|       |
 3209|    902|    return size;
 3210|    903|}
ogs_nas_5gs_decode_release_assistance_indication:
 3230|  1.56k|{
 3231|  1.56k|    int size = sizeof(ogs_nas_release_assistance_indication_t);
 3232|       |
 3233|  1.56k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3233:9): [True: 0, False: 1.56k]
  ------------------
 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|  1.56k|    memcpy(release_assistance_indication, pkbuf->data - size, size);
 3239|       |
 3240|  1.56k|    ogs_trace("  RELEASE_ASSISTANCE_INDICATION - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 3241|  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
  |  |  ------------------
  ------------------
 3242|       |
 3243|  1.56k|    return size;
 3244|  1.56k|}
ogs_nas_5gs_decode_request_type:
 3262|    370|{
 3263|    370|    int size = sizeof(ogs_nas_request_type_t);
 3264|       |
 3265|    370|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3265:9): [True: 0, False: 370]
  ------------------
 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|    370|    memcpy(request_type, pkbuf->data - size, size);
 3271|       |
 3272|    370|    ogs_trace("  REQUEST_TYPE - ");
  ------------------
  |  |   40|    370|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    370|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    370|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    370|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    370|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    370|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3273|    370|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    370|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    370|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3274|       |
 3275|    370|    return size;
 3276|    370|}
ogs_nas_5gs_decode_s1_ue_network_capability:
 3294|    226|{
 3295|    226|    int size = 0;
 3296|    226|    ogs_nas_s1_ue_network_capability_t *source = NULL;
 3297|       |
 3298|    226|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3298:9): [True: 2, False: 224]
  ------------------
 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|    224|    source = (ogs_nas_s1_ue_network_capability_t *)pkbuf->data;
 3304|       |
 3305|    224|    s1_ue_network_capability->length = source->length;
 3306|    224|    size = s1_ue_network_capability->length + sizeof(s1_ue_network_capability->length);
 3307|       |
 3308|    224|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3308:9): [True: 1, False: 223]
  ------------------
 3309|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3310|      1|       return -1;
 3311|      1|    }
 3312|       |
 3313|    223|    if (sizeof(*s1_ue_network_capability) < size) return -1;
  ------------------
  |  Branch (3313:9): [True: 2, False: 221]
  ------------------
 3314|    221|    memcpy(s1_ue_network_capability, pkbuf->data - size, size);
 3315|       |
 3316|    221|    ogs_trace("  S1_UE_NETWORK_CAPABILITY - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 3317|    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
  |  |  ------------------
  ------------------
 3318|       |
 3319|    221|    return size;
 3320|    223|}
ogs_nas_5gs_decode_s1_ue_security_capability:
 3340|    209|{
 3341|    209|    int size = 0;
 3342|    209|    ogs_nas_s1_ue_security_capability_t *source = NULL;
 3343|       |
 3344|    209|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3344:9): [True: 4, False: 205]
  ------------------
 3345|      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__) 
  |  |  ------------------
  ------------------
 3346|      4|       return -1;
 3347|      4|    }
 3348|       |
 3349|    205|    source = (ogs_nas_s1_ue_security_capability_t *)pkbuf->data;
 3350|       |
 3351|    205|    s1_ue_security_capability->length = source->length;
 3352|    205|    size = s1_ue_security_capability->length + sizeof(s1_ue_security_capability->length);
 3353|       |
 3354|    205|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3354:9): [True: 1, False: 204]
  ------------------
 3355|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3356|      1|       return -1;
 3357|      1|    }
 3358|       |
 3359|    204|    if (sizeof(*s1_ue_security_capability) < size) return -1;
  ------------------
  |  Branch (3359:9): [True: 1, False: 203]
  ------------------
 3360|    203|    memcpy(s1_ue_security_capability, pkbuf->data - size, size);
 3361|       |
 3362|    203|    ogs_trace("  S1_UE_SECURITY_CAPABILITY - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 3363|    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
  |  |  ------------------
  ------------------
 3364|       |
 3365|    203|    return size;
 3366|    204|}
ogs_nas_5gs_decode_service_area_list:
 3386|    602|{
 3387|    602|    int size = 0;
 3388|    602|    ogs_nas_service_area_list_t *source = NULL;
 3389|       |
 3390|    602|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3390:9): [True: 3, False: 599]
  ------------------
 3391|      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__) 
  |  |  ------------------
  ------------------
 3392|      3|       return -1;
 3393|      3|    }
 3394|       |
 3395|    599|    source = (ogs_nas_service_area_list_t *)pkbuf->data;
 3396|       |
 3397|    599|    service_area_list->length = source->length;
 3398|    599|    size = service_area_list->length + sizeof(service_area_list->length);
 3399|       |
 3400|    599|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3400:9): [True: 1, False: 598]
  ------------------
 3401|      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__) 
  |  |  ------------------
  ------------------
 3402|      1|       return -1;
 3403|      1|    }
 3404|       |
 3405|    598|    if (sizeof(*service_area_list) < size) return -1;
  ------------------
  |  Branch (3405:9): [True: 1, False: 597]
  ------------------
 3406|    597|    memcpy(service_area_list, pkbuf->data - size, size);
 3407|       |
 3408|    597|    ogs_trace("  SERVICE_AREA_LIST - ");
  ------------------
  |  |   40|    597|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    597|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    597|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    597|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    597|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    597|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3409|    597|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    597|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    597|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3410|       |
 3411|    597|    return size;
 3412|    598|}
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: 4, False: 212]
  ------------------
 3437|      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__) 
  |  |  ------------------
  ------------------
 3438|      4|       return -1;
 3439|      4|    }
 3440|       |
 3441|    212|    source = (ogs_nas_5gs_network_feature_support_t *)pkbuf->data;
 3442|       |
 3443|    212|    network_feature_support->length = source->length;
 3444|    212|    size = network_feature_support->length + sizeof(network_feature_support->length);
 3445|       |
 3446|    212|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3446:9): [True: 1, False: 211]
  ------------------
 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|    211|    if (sizeof(*network_feature_support) < size) return -1;
  ------------------
  |  Branch (3451:9): [True: 1, False: 210]
  ------------------
 3452|    210|    memcpy(network_feature_support, pkbuf->data - size, size);
 3453|       |
 3454|    210|    ogs_trace("  5GS_NETWORK_FEATURE_SUPPORT - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 3455|    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
  |  |  ------------------
  ------------------
 3456|       |
 3457|    210|    return size;
 3458|    211|}
ogs_nas_5gs_decode_sms_indication:
 3478|  6.09k|{
 3479|  6.09k|    int size = sizeof(ogs_nas_sms_indication_t);
 3480|       |
 3481|  6.09k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3481:9): [True: 0, False: 6.09k]
  ------------------
 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|  6.09k|    memcpy(sms_indication, pkbuf->data - size, size);
 3487|       |
 3488|  6.09k|    ogs_trace("  SMS_INDICATION - ");
  ------------------
  |  |   40|  6.09k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  6.09k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  6.09k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  6.09k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  6.09k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  6.09k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3489|  6.09k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  6.09k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  6.09k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3490|       |
 3491|  6.09k|    return size;
 3492|  6.09k|}
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|    227|{
 3564|    227|    int size = 0;
 3565|    227|    ogs_nas_supported_codec_list_t *source = NULL;
 3566|       |
 3567|    227|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3567:9): [True: 1, False: 226]
  ------------------
 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|    226|    source = (ogs_nas_supported_codec_list_t *)pkbuf->data;
 3573|       |
 3574|    226|    supported_codec_list->length = source->length;
 3575|    226|    size = supported_codec_list->length + sizeof(supported_codec_list->length);
 3576|       |
 3577|    226|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3577:9): [True: 1, False: 225]
  ------------------
 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|    225|    if (sizeof(*supported_codec_list) < size) return -1;
  ------------------
  |  Branch (3582:9): [True: 1, False: 224]
  ------------------
 3583|    224|    memcpy(supported_codec_list, pkbuf->data - size, size);
 3584|       |
 3585|    224|    ogs_trace("  SUPPORTED_CODEC_LIST - ");
  ------------------
  |  |   40|    224|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    224|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    224|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    224|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    224|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    224|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3586|    224|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    224|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    224|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3587|       |
 3588|    224|    return size;
 3589|    225|}
ogs_nas_5gs_decode_time_zone:
 3609|    275|{
 3610|    275|    int size = sizeof(ogs_nas_time_zone_t);
 3611|       |
 3612|    275|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3612:9): [True: 6, False: 269]
  ------------------
 3613|      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__) 
  |  |  ------------------
  ------------------
 3614|      6|       return -1;
 3615|      6|    }
 3616|       |
 3617|    269|    memcpy(time_zone, pkbuf->data - size, size);
 3618|       |
 3619|    269|    ogs_trace("  TIME_ZONE - ");
  ------------------
  |  |   40|    269|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    269|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    269|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    269|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    269|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    269|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3620|    269|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    269|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    269|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3621|       |
 3622|    269|    return size;
 3623|    275|}
ogs_nas_5gs_decode_time_zone_and_time:
 3643|    310|{
 3644|    310|    int size = sizeof(ogs_nas_time_zone_and_time_t);
 3645|       |
 3646|    310|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3646:9): [True: 11, False: 299]
  ------------------
 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|    299|    memcpy(time_zone_and_time, pkbuf->data - size, size);
 3652|       |
 3653|    299|    ogs_trace("  TIME_ZONE_AND_TIME - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 3654|    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
  |  |  ------------------
  ------------------
 3655|       |
 3656|    299|    return size;
 3657|    310|}
ogs_nas_5gs_decode_ue_security_capability:
 3677|    355|{
 3678|    355|    int size = 0;
 3679|    355|    ogs_nas_ue_security_capability_t *source = NULL;
 3680|       |
 3681|    355|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3681:9): [True: 4, False: 351]
  ------------------
 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|    351|    source = (ogs_nas_ue_security_capability_t *)pkbuf->data;
 3687|       |
 3688|    351|    ue_security_capability->length = source->length;
 3689|    351|    size = ue_security_capability->length + sizeof(ue_security_capability->length);
 3690|       |
 3691|    351|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3691:9): [True: 7, False: 344]
  ------------------
 3692|      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__) 
  |  |  ------------------
  ------------------
 3693|      7|       return -1;
 3694|      7|    }
 3695|       |
 3696|    344|    if (sizeof(*ue_security_capability) < size) return -1;
  ------------------
  |  Branch (3696:9): [True: 1, False: 343]
  ------------------
 3697|    343|    memcpy(ue_security_capability, pkbuf->data - size, size);
 3698|       |
 3699|    343|    ogs_trace("  UE_SECURITY_CAPABILITY - ");
  ------------------
  |  |   40|    343|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    343|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    343|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    343|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    343|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    343|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3700|    343|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    343|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    343|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3701|       |
 3702|    343|    return size;
 3703|    344|}
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: 1, False: 207]
  ------------------
 3738|      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__) 
  |  |  ------------------
  ------------------
 3739|      1|       return -1;
 3740|      1|    }
 3741|       |
 3742|    207|    if (sizeof(*ue_usage_setting) < size) return -1;
  ------------------
  |  Branch (3742:9): [True: 1, False: 206]
  ------------------
 3743|    206|    memcpy(ue_usage_setting, pkbuf->data - size, size);
 3744|       |
 3745|    206|    ogs_trace("  UE_USAGE_SETTING - ");
  ------------------
  |  |   40|    206|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    206|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    206|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    206|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    206|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    206|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3746|    206|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    206|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    206|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3747|       |
 3748|    206|    return size;
 3749|    207|}
ogs_nas_5gs_decode_ue_status:
 3769|    214|{
 3770|    214|    int size = 0;
 3771|    214|    ogs_nas_ue_status_t *source = NULL;
 3772|       |
 3773|    214|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3773:9): [True: 4, False: 210]
  ------------------
 3774|      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__) 
  |  |  ------------------
  ------------------
 3775|      4|       return -1;
 3776|      4|    }
 3777|       |
 3778|    210|    source = (ogs_nas_ue_status_t *)pkbuf->data;
 3779|       |
 3780|    210|    ue_status->length = source->length;
 3781|    210|    size = ue_status->length + sizeof(ue_status->length);
 3782|       |
 3783|    210|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3783:9): [True: 1, False: 209]
  ------------------
 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|    209|    if (sizeof(*ue_status) < size) return -1;
  ------------------
  |  Branch (3788:9): [True: 1, False: 208]
  ------------------
 3789|    208|    memcpy(ue_status, pkbuf->data - size, size);
 3790|       |
 3791|    208|    ogs_trace("  UE_STATUS - ");
  ------------------
  |  |   40|    208|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    208|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    208|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    208|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    208|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    208|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3792|    208|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    208|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    208|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3793|       |
 3794|    208|    return size;
 3795|    209|}
ogs_nas_5gs_decode_uplink_data_status:
 3815|    450|{
 3816|    450|    int size = 0;
 3817|    450|    ogs_nas_uplink_data_status_t *source = NULL;
 3818|       |
 3819|    450|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3819:9): [True: 2, False: 448]
  ------------------
 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|    448|    source = (ogs_nas_uplink_data_status_t *)pkbuf->data;
 3825|       |
 3826|    448|    uplink_data_status->length = source->length;
 3827|    448|    size = uplink_data_status->length + sizeof(uplink_data_status->length);
 3828|       |
 3829|    448|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3829:9): [True: 1, False: 447]
  ------------------
 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|    447|    if (sizeof(*uplink_data_status) < size) return -1;
  ------------------
  |  Branch (3834:9): [True: 3, False: 444]
  ------------------
 3835|    444|    memcpy(uplink_data_status, pkbuf->data - size, size);
 3836|       |
 3837|    444|    uplink_data_status->psi = be16toh(uplink_data_status->psi);
 3838|       |
 3839|    444|    ogs_trace("  UPLINK_DATA_STATUS - ");
  ------------------
  |  |   40|    444|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    444|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    444|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    444|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    444|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    444|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3840|    444|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    444|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    444|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3841|       |
 3842|    444|    return size;
 3843|    447|}
ogs_nas_5gs_decode_5gs_registration_result:
 3865|  1.17k|{
 3866|  1.17k|    int size = 0;
 3867|  1.17k|    ogs_nas_5gs_registration_result_t *source = NULL;
 3868|       |
 3869|  1.17k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3869:9): [True: 1, False: 1.17k]
  ------------------
 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.17k|    source = (ogs_nas_5gs_registration_result_t *)pkbuf->data;
 3875|       |
 3876|  1.17k|    registration_result->length = source->length;
 3877|  1.17k|    size = registration_result->length + sizeof(registration_result->length);
 3878|       |
 3879|  1.17k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3879:9): [True: 8, False: 1.16k]
  ------------------
 3880|      8|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      8|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      8|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      8|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      8|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      8|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      8|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3881|      8|       return -1;
 3882|      8|    }
 3883|       |
 3884|  1.16k|    if (sizeof(*registration_result) < size) return -1;
  ------------------
  |  Branch (3884:9): [True: 1, False: 1.16k]
  ------------------
 3885|  1.16k|    memcpy(registration_result, pkbuf->data - size, size);
 3886|       |
 3887|  1.16k|    ogs_trace("  5GS_REGISTRATION_RESULT - ");
  ------------------
  |  |   40|  1.16k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.16k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.16k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.16k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.16k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.16k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3888|  1.16k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.16k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.16k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3889|       |
 3890|  1.16k|    return size;
 3891|  1.16k|}
ogs_nas_5gs_decode_ue_radio_capability_id:
 3911|    646|{
 3912|    646|    int size = 0;
 3913|    646|    ogs_nas_ue_radio_capability_id_t *source = NULL;
 3914|       |
 3915|    646|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (3915:9): [True: 6, False: 640]
  ------------------
 3916|      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__) 
  |  |  ------------------
  ------------------
 3917|      6|       return -1;
 3918|      6|    }
 3919|       |
 3920|    640|    source = (ogs_nas_ue_radio_capability_id_t *)pkbuf->data;
 3921|       |
 3922|    640|    ue_radio_capability_id->length = source->length;
 3923|    640|    size = ue_radio_capability_id->length + sizeof(ue_radio_capability_id->length);
 3924|       |
 3925|    640|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3925:9): [True: 4, False: 636]
  ------------------
 3926|      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__) 
  |  |  ------------------
  ------------------
 3927|      4|       return -1;
 3928|      4|    }
 3929|       |
 3930|    636|    if (sizeof(*ue_radio_capability_id) < size) return -1;
  ------------------
  |  Branch (3930:9): [True: 0, False: 636]
  ------------------
 3931|    636|    memcpy(ue_radio_capability_id, pkbuf->data - size, size);
 3932|       |
 3933|    636|    ogs_trace("  UE_RADIO_CAPABILITY_ID - ");
  ------------------
  |  |   40|    636|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    636|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    636|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    636|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    636|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    636|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3934|    636|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    636|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    636|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3935|       |
 3936|    636|    return size;
 3937|    636|}
ogs_nas_5gs_decode_ue_radio_capability_id_deletion_indication:
 3957|  1.28k|{
 3958|  1.28k|    int size = sizeof(ogs_nas_ue_radio_capability_id_deletion_indication_t);
 3959|       |
 3960|  1.28k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3960:9): [True: 0, False: 1.28k]
  ------------------
 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.28k|    memcpy(ue_radio_capability_id_deletion_indication, pkbuf->data - size, size);
 3966|       |
 3967|  1.28k|    ogs_trace("  UE_RADIO_CAPABILITY_ID_DELETION_INDICATION - ");
  ------------------
  |  |   40|  1.28k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.28k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.28k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.28k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.28k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.28k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 3968|  1.28k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.28k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.28k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 3969|       |
 3970|  1.28k|    return size;
 3971|  1.28k|}
ogs_nas_5gs_decode_5gs_registration_type:
 3989|    648|{
 3990|    648|    int size = sizeof(ogs_nas_5gs_registration_type_t);
 3991|       |
 3992|    648|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (3992:9): [True: 0, False: 648]
  ------------------
 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|    648|    memcpy(registration_type, pkbuf->data - size, size);
 3998|       |
 3999|    648|    ogs_trace("  5GS_REGISTRATION_TYPE - ");
  ------------------
  |  |   40|    648|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    648|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    648|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    648|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    648|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    648|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4000|    648|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    648|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    648|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4001|       |
 4002|    648|    return size;
 4003|    648|}
ogs_nas_5gs_decode_truncated_5g_s_tmsi_configuration:
 4023|    469|{
 4024|    469|    int size = 0;
 4025|    469|    ogs_nas_truncated_5g_s_tmsi_configuration_t *source = NULL;
 4026|       |
 4027|    469|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4027:9): [True: 2, False: 467]
  ------------------
 4028|      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__) 
  |  |  ------------------
  ------------------
 4029|      2|       return -1;
 4030|      2|    }
 4031|       |
 4032|    467|    source = (ogs_nas_truncated_5g_s_tmsi_configuration_t *)pkbuf->data;
 4033|       |
 4034|    467|    truncated_s_tmsi_configuration->length = source->length;
 4035|    467|    size = truncated_s_tmsi_configuration->length + sizeof(truncated_s_tmsi_configuration->length);
 4036|       |
 4037|    467|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4037:9): [True: 6, False: 461]
  ------------------
 4038|      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__) 
  |  |  ------------------
  ------------------
 4039|      6|       return -1;
 4040|      6|    }
 4041|       |
 4042|    461|    if (sizeof(*truncated_s_tmsi_configuration) < size) return -1;
  ------------------
  |  Branch (4042:9): [True: 1, False: 460]
  ------------------
 4043|    460|    memcpy(truncated_s_tmsi_configuration, pkbuf->data - size, size);
 4044|       |
 4045|    460|    ogs_trace("  TRUNCATED_5G_S_TMSI_CONFIGURATION - ");
  ------------------
  |  |   40|    460|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    460|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    460|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    460|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    460|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    460|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4046|    460|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    460|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    460|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4047|       |
 4048|    460|    return size;
 4049|    461|}
ogs_nas_5gs_decode_wus_assistance_information:
 4069|    452|{
 4070|    452|    int size = 0;
 4071|    452|    ogs_nas_wus_assistance_information_t *source = NULL;
 4072|       |
 4073|    452|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4073:9): [True: 5, False: 447]
  ------------------
 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|    447|    source = (ogs_nas_wus_assistance_information_t *)pkbuf->data;
 4079|       |
 4080|    447|    wus_assistance_information->length = source->length;
 4081|    447|    size = wus_assistance_information->length + sizeof(wus_assistance_information->length);
 4082|       |
 4083|    447|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4083:9): [True: 1, False: 446]
  ------------------
 4084|      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__) 
  |  |  ------------------
  ------------------
 4085|      1|       return -1;
 4086|      1|    }
 4087|       |
 4088|    446|    if (sizeof(*wus_assistance_information) < size) return -1;
  ------------------
  |  Branch (4088:9): [True: 0, False: 446]
  ------------------
 4089|    446|    memcpy(wus_assistance_information, pkbuf->data - size, size);
 4090|       |
 4091|    446|    ogs_trace("  WUS_ASSISTANCE_INFORMATION - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 4092|    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
  |  |  ------------------
  ------------------
 4093|       |
 4094|    446|    return size;
 4095|    446|}
ogs_nas_5gs_decode_n5gc_indication:
 4115|    505|{
 4116|    505|    int size = sizeof(ogs_nas_n5gc_indication_t);
 4117|       |
 4118|    505|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4118:9): [True: 0, False: 505]
  ------------------
 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|    505|    memcpy(n5gc_indication, pkbuf->data - size, size);
 4124|       |
 4125|    505|    ogs_trace("  N5GC_INDICATION - ");
  ------------------
  |  |   40|    505|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    505|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    505|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    505|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    505|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    505|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4126|    505|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    505|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    505|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4127|       |
 4128|    505|    return size;
 4129|    505|}
ogs_nas_5gs_decode_nb_n1_mode_drx_parameters:
 4147|    421|{
 4148|    421|    int size = 0;
 4149|    421|    ogs_nas_nb_n1_mode_drx_parameters_t *source = NULL;
 4150|       |
 4151|    421|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4151:9): [True: 4, False: 417]
  ------------------
 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|    417|    source = (ogs_nas_nb_n1_mode_drx_parameters_t *)pkbuf->data;
 4157|       |
 4158|    417|    nb_n1_mode_drx_parameters->length = source->length;
 4159|    417|    size = nb_n1_mode_drx_parameters->length + sizeof(nb_n1_mode_drx_parameters->length);
 4160|       |
 4161|    417|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4161:9): [True: 1, False: 416]
  ------------------
 4162|      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__) 
  |  |  ------------------
  ------------------
 4163|      1|       return -1;
 4164|      1|    }
 4165|       |
 4166|    416|    if (sizeof(*nb_n1_mode_drx_parameters) < size) return -1;
  ------------------
  |  Branch (4166:9): [True: 2, False: 414]
  ------------------
 4167|    414|    memcpy(nb_n1_mode_drx_parameters, pkbuf->data - size, size);
 4168|       |
 4169|    414|    ogs_trace("  NB_N1_MODE_DRX_PARAMETERS - ");
  ------------------
  |  |   40|    414|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    414|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    414|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    414|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    414|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    414|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4170|    414|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    414|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    414|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4171|       |
 4172|    414|    return size;
 4173|    416|}
ogs_nas_5gs_decode_additional_configuration_indication:
 4193|  1.78k|{
 4194|  1.78k|    int size = sizeof(ogs_nas_additional_configuration_indication_t);
 4195|       |
 4196|  1.78k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4196:9): [True: 0, False: 1.78k]
  ------------------
 4197|      0|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      0|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      0|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      0|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      0|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      0|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      0|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4198|      0|       return -1;
 4199|      0|    }
 4200|       |
 4201|  1.78k|    memcpy(additional_configuration_indication, pkbuf->data - size, size);
 4202|       |
 4203|  1.78k|    ogs_trace("  ADDITIONAL_CONFIGURATION_INDICATION - ");
  ------------------
  |  |   40|  1.78k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.78k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.78k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.78k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.78k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.78k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4204|  1.78k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.78k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.78k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4205|       |
 4206|  1.78k|    return size;
 4207|  1.78k|}
ogs_nas_5gs_decode_extended_rejected_nssai:
 4225|    989|{
 4226|    989|    int size = 0;
 4227|    989|    ogs_nas_extended_rejected_nssai_t *source = NULL;
 4228|       |
 4229|    989|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4229:9): [True: 1, False: 988]
  ------------------
 4230|      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__) 
  |  |  ------------------
  ------------------
 4231|      1|       return -1;
 4232|      1|    }
 4233|       |
 4234|    988|    source = (ogs_nas_extended_rejected_nssai_t *)pkbuf->data;
 4235|       |
 4236|    988|    extended_rejected_nssai->length = source->length;
 4237|    988|    size = extended_rejected_nssai->length + sizeof(extended_rejected_nssai->length);
 4238|       |
 4239|    988|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4239:9): [True: 8, False: 980]
  ------------------
 4240|      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__) 
  |  |  ------------------
  ------------------
 4241|      8|       return -1;
 4242|      8|    }
 4243|       |
 4244|    980|    if (sizeof(*extended_rejected_nssai) < size) return -1;
  ------------------
  |  Branch (4244:9): [True: 1, False: 979]
  ------------------
 4245|    979|    memcpy(extended_rejected_nssai, pkbuf->data - size, size);
 4246|       |
 4247|    979|    ogs_trace("  EXTENDED_REJECTED_NSSAI - ");
  ------------------
  |  |   40|    979|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    979|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    979|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    979|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    979|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    979|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4248|    979|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    979|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    979|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4249|       |
 4250|    979|    return size;
 4251|    980|}
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: 6, False: 416]
  ------------------
 4276|      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__) 
  |  |  ------------------
  ------------------
 4277|      6|       return -1;
 4278|      6|    }
 4279|       |
 4280|    416|    source = (ogs_nas_ue_request_type_t *)pkbuf->data;
 4281|       |
 4282|    416|    ue_request_type->length = source->length;
 4283|    416|    size = ue_request_type->length + sizeof(ue_request_type->length);
 4284|       |
 4285|    416|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4285:9): [True: 2, False: 414]
  ------------------
 4286|      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__) 
  |  |  ------------------
  ------------------
 4287|      2|       return -1;
 4288|      2|    }
 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|    475|{
 4318|    475|    int size = 0;
 4319|    475|    ogs_nas_paging_restriction_t *source = NULL;
 4320|       |
 4321|    475|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4321:9): [True: 6, False: 469]
  ------------------
 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|    469|    source = (ogs_nas_paging_restriction_t *)pkbuf->data;
 4327|       |
 4328|    469|    paging_restriction->length = source->length;
 4329|    469|    size = paging_restriction->length + sizeof(paging_restriction->length);
 4330|       |
 4331|    469|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4331:9): [True: 3, False: 466]
  ------------------
 4332|      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__) 
  |  |  ------------------
  ------------------
 4333|      3|       return -1;
 4334|      3|    }
 4335|       |
 4336|    466|    if (sizeof(*paging_restriction) < size) return -1;
  ------------------
  |  Branch (4336:9): [True: 3, False: 463]
  ------------------
 4337|    463|    memcpy(paging_restriction, pkbuf->data - size, size);
 4338|       |
 4339|    463|    ogs_trace("  PAGING_RESTRICTION - ");
  ------------------
  |  |   40|    463|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    463|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    463|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    463|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    463|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    463|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4340|    463|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    463|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    463|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4341|       |
 4342|    463|    return size;
 4343|    466|}
ogs_nas_5gs_decode_nid:
 4363|    544|{
 4364|    544|    int size = 0;
 4365|    544|    ogs_nas_nid_t *source = NULL;
 4366|       |
 4367|    544|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4367:9): [True: 3, False: 541]
  ------------------
 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|    541|    source = (ogs_nas_nid_t *)pkbuf->data;
 4373|       |
 4374|    541|    nid->length = source->length;
 4375|    541|    size = nid->length + sizeof(nid->length);
 4376|       |
 4377|    541|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4377:9): [True: 7, False: 534]
  ------------------
 4378|      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__) 
  |  |  ------------------
  ------------------
 4379|      7|       return -1;
 4380|      7|    }
 4381|       |
 4382|    534|    if (sizeof(*nid) < size) return -1;
  ------------------
  |  Branch (4382:9): [True: 1, False: 533]
  ------------------
 4383|    533|    memcpy(nid, pkbuf->data - size, size);
 4384|       |
 4385|    533|    ogs_trace("  NID - ");
  ------------------
  |  |   40|    533|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    533|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    533|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    533|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    533|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    533|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4386|    533|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    533|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    533|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4387|       |
 4388|    533|    return size;
 4389|    534|}
ogs_nas_5gs_decode_5gs_tracking_area_identity:
 4409|    313|{
 4410|    313|    int size = sizeof(ogs_nas_5gs_tracking_area_identity_t);
 4411|       |
 4412|    313|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4412:9): [True: 8, False: 305]
  ------------------
 4413|      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__) 
  |  |  ------------------
  ------------------
 4414|      8|       return -1;
 4415|      8|    }
 4416|       |
 4417|    305|    memcpy(tracking_area_identity, pkbuf->data - size, size);
 4418|       |
 4419|    305|    tracking_area_identity->tac = ogs_be24toh(tracking_area_identity->tac);
 4420|       |
 4421|    305|    ogs_trace("  5GS_TRACKING_AREA_IDENTITY - ");
  ------------------
  |  |   40|    305|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    305|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    305|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    305|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    305|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    305|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4422|    305|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    305|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    305|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4423|       |
 4424|    305|    return size;
 4425|    313|}
ogs_nas_5gs_decode_peips_assistance_information:
 4447|    676|{
 4448|    676|    int size = 0;
 4449|    676|    ogs_nas_peips_assistance_information_t *source = NULL;
 4450|       |
 4451|    676|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4451:9): [True: 5, False: 671]
  ------------------
 4452|      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__) 
  |  |  ------------------
  ------------------
 4453|      5|       return -1;
 4454|      5|    }
 4455|       |
 4456|    671|    source = (ogs_nas_peips_assistance_information_t *)pkbuf->data;
 4457|       |
 4458|    671|    peips_assistance_information->length = source->length;
 4459|    671|    size = peips_assistance_information->length + sizeof(peips_assistance_information->length);
 4460|       |
 4461|    671|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4461:9): [True: 2, False: 669]
  ------------------
 4462|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4463|      2|       return -1;
 4464|      2|    }
 4465|       |
 4466|    669|    if (sizeof(*peips_assistance_information) < size) return -1;
  ------------------
  |  Branch (4466:9): [True: 0, False: 669]
  ------------------
 4467|    669|    memcpy(peips_assistance_information, pkbuf->data - size, size);
 4468|       |
 4469|    669|    ogs_trace("  PEIPS_ASSISTANCE_INFORMATION - ");
  ------------------
  |  |   40|    669|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    669|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    669|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    669|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    669|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    669|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4470|    669|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    669|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    669|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4471|       |
 4472|    669|    return size;
 4473|    669|}
ogs_nas_5gs_decode_5gs_additional_request_result:
 4493|    443|{
 4494|    443|    int size = 0;
 4495|    443|    ogs_nas_5gs_additional_request_result_t *source = NULL;
 4496|       |
 4497|    443|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4497:9): [True: 5, False: 438]
  ------------------
 4498|      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__) 
  |  |  ------------------
  ------------------
 4499|      5|       return -1;
 4500|      5|    }
 4501|       |
 4502|    438|    source = (ogs_nas_5gs_additional_request_result_t *)pkbuf->data;
 4503|       |
 4504|    438|    additional_request_result->length = source->length;
 4505|    438|    size = additional_request_result->length + sizeof(additional_request_result->length);
 4506|       |
 4507|    438|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4507:9): [True: 1, False: 437]
  ------------------
 4508|      1|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4509|      1|       return -1;
 4510|      1|    }
 4511|       |
 4512|    437|    if (sizeof(*additional_request_result) < size) return -1;
  ------------------
  |  Branch (4512:9): [True: 2, False: 435]
  ------------------
 4513|    435|    memcpy(additional_request_result, pkbuf->data - size, size);
 4514|       |
 4515|    435|    ogs_trace("  5GS_ADDITIONAL_REQUEST_RESULT - ");
  ------------------
  |  |   40|    435|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    435|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    435|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    435|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    435|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    435|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4516|    435|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    435|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    435|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4517|       |
 4518|    435|    return size;
 4519|    437|}
ogs_nas_5gs_decode_nssrg_information:
 4539|    635|{
 4540|    635|    int size = 0;
 4541|    635|    ogs_nas_nssrg_information_t *source = NULL;
 4542|       |
 4543|    635|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (4543:9): [True: 3, False: 632]
  ------------------
 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|    632|    source = (ogs_nas_nssrg_information_t *)pkbuf->data;
 4549|       |
 4550|    632|    nssrg_information->length = be16toh(source->length);
 4551|    632|    size = nssrg_information->length + sizeof(nssrg_information->length);
 4552|       |
 4553|    632|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4553:9): [True: 8, False: 624]
  ------------------
 4554|      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__) 
  |  |  ------------------
  ------------------
 4555|      8|       return -1;
 4556|      8|    }
 4557|       |
 4558|    624|    nssrg_information->buffer = pkbuf->data - size + sizeof(nssrg_information->length);
 4559|       |
 4560|    624|    ogs_trace("  NSSRG_INFORMATION - ");
  ------------------
  |  |   40|    624|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    624|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    624|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    624|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    624|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    624|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4561|    624|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)nssrg_information->buffer, nssrg_information->length);
  ------------------
  |  |   53|    624|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    624|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4562|       |
 4563|    624|    return size;
 4564|    632|}
ogs_nas_5gs_decode_list_of_plmns_to_be_used_in_disaster_condition:
 4592|    661|{
 4593|    661|    int size = 0;
 4594|    661|    ogs_nas_list_of_plmns_to_be_used_in_disaster_condition_t *source = NULL;
 4595|       |
 4596|    661|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4596:9): [True: 2, False: 659]
  ------------------
 4597|      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__) 
  |  |  ------------------
  ------------------
 4598|      2|       return -1;
 4599|      2|    }
 4600|       |
 4601|    659|    source = (ogs_nas_list_of_plmns_to_be_used_in_disaster_condition_t *)pkbuf->data;
 4602|       |
 4603|    659|    list_of_plmns_to_be_used_in_disaster_condition->length = source->length;
 4604|    659|    size = list_of_plmns_to_be_used_in_disaster_condition->length + sizeof(list_of_plmns_to_be_used_in_disaster_condition->length);
 4605|       |
 4606|    659|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4606:9): [True: 1, False: 658]
  ------------------
 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|    658|    if (sizeof(*list_of_plmns_to_be_used_in_disaster_condition) < size) return -1;
  ------------------
  |  Branch (4611:9): [True: 2, False: 656]
  ------------------
 4612|    656|    memcpy(list_of_plmns_to_be_used_in_disaster_condition, pkbuf->data - size, size);
 4613|       |
 4614|    656|    ogs_trace("  LIST_OF_PLMNS_TO_BE_USED_IN_DISASTER_CONDITION - ");
  ------------------
  |  |   40|    656|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    656|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    656|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    656|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    656|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    656|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4615|    656|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    656|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    656|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4616|       |
 4617|    656|    return size;
 4618|    658|}
ogs_nas_5gs_decode_registration_wait_range:
 4638|  1.57k|{
 4639|  1.57k|    int size = 0;
 4640|  1.57k|    ogs_nas_registration_wait_range_t *source = NULL;
 4641|       |
 4642|  1.57k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4642:9): [True: 10, False: 1.56k]
  ------------------
 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.56k|    source = (ogs_nas_registration_wait_range_t *)pkbuf->data;
 4648|       |
 4649|  1.56k|    registration_wait_range->length = source->length;
 4650|  1.56k|    size = registration_wait_range->length + sizeof(registration_wait_range->length);
 4651|       |
 4652|  1.56k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4652:9): [True: 7, False: 1.55k]
  ------------------
 4653|      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__) 
  |  |  ------------------
  ------------------
 4654|      7|       return -1;
 4655|      7|    }
 4656|       |
 4657|  1.55k|    if (sizeof(*registration_wait_range) < size) return -1;
  ------------------
  |  Branch (4657:9): [True: 3, False: 1.55k]
  ------------------
 4658|  1.55k|    memcpy(registration_wait_range, pkbuf->data - size, size);
 4659|       |
 4660|  1.55k|    ogs_trace("  REGISTRATION_WAIT_RANGE - ");
  ------------------
  |  |   40|  1.55k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 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__) 
  |  |  ------------------
  ------------------
 4661|  1.55k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.55k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.55k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4662|       |
 4663|  1.55k|    return size;
 4664|  1.55k|}
ogs_nas_5gs_decode_plmn_identity:
 4684|    227|{
 4685|    227|    int size = 0;
 4686|    227|    ogs_nas_plmn_identity_t *source = NULL;
 4687|       |
 4688|    227|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4688:9): [True: 2, False: 225]
  ------------------
 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|    225|    source = (ogs_nas_plmn_identity_t *)pkbuf->data;
 4694|       |
 4695|    225|    plmn_identity->length = source->length;
 4696|    225|    size = plmn_identity->length + sizeof(plmn_identity->length);
 4697|       |
 4698|    225|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4698:9): [True: 3, False: 222]
  ------------------
 4699|      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__) 
  |  |  ------------------
  ------------------
 4700|      3|       return -1;
 4701|      3|    }
 4702|       |
 4703|    222|    if (sizeof(*plmn_identity) < size) return -1;
  ------------------
  |  Branch (4703:9): [True: 1, False: 221]
  ------------------
 4704|    221|    memcpy(plmn_identity, pkbuf->data - size, size);
 4705|       |
 4706|    221|    ogs_trace("  PLMN_IDENTITY - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 4707|    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
  |  |  ------------------
  ------------------
 4708|       |
 4709|    221|    return size;
 4710|    222|}
ogs_nas_5gs_decode_extended_cag_information_list:
 4730|  1.03k|{
 4731|  1.03k|    int size = 0;
 4732|  1.03k|    ogs_nas_extended_cag_information_list_t *source = NULL;
 4733|       |
 4734|  1.03k|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (4734:9): [True: 8, False: 1.02k]
  ------------------
 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.02k|    source = (ogs_nas_extended_cag_information_list_t *)pkbuf->data;
 4740|       |
 4741|  1.02k|    extended_cag_information_list->length = be16toh(source->length);
 4742|  1.02k|    size = extended_cag_information_list->length + sizeof(extended_cag_information_list->length);
 4743|       |
 4744|  1.02k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4744:9): [True: 24, False: 1.00k]
  ------------------
 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.00k|    extended_cag_information_list->buffer = pkbuf->data - size + sizeof(extended_cag_information_list->length);
 4750|       |
 4751|  1.00k|    ogs_trace("  EXTENDED_CAG_INFORMATION_LIST - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 4752|  1.00k|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)extended_cag_information_list->buffer, extended_cag_information_list->length);
  ------------------
  |  |   53|  1.00k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.00k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4753|       |
 4754|  1.00k|    return size;
 4755|  1.02k|}
ogs_nas_5gs_decode_nsag_information:
 4783|    474|{
 4784|    474|    int size = 0;
 4785|    474|    ogs_nas_nsag_information_t *source = NULL;
 4786|       |
 4787|    474|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (4787:9): [True: 5, False: 469]
  ------------------
 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|    469|    source = (ogs_nas_nsag_information_t *)pkbuf->data;
 4793|       |
 4794|    469|    nsag_information->length = be16toh(source->length);
 4795|    469|    size = nsag_information->length + sizeof(nsag_information->length);
 4796|       |
 4797|    469|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4797:9): [True: 29, False: 440]
  ------------------
 4798|     29|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 4799|     29|       return -1;
 4800|     29|    }
 4801|       |
 4802|    440|    nsag_information->buffer = pkbuf->data - size + sizeof(nsag_information->length);
 4803|       |
 4804|    440|    ogs_trace("  NSAG_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__) 
  |  |  ------------------
  ------------------
 4805|    440|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)nsag_information->buffer, nsag_information->length);
  ------------------
  |  |   53|    440|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    440|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4806|       |
 4807|    440|    return size;
 4808|    469|}
ogs_nas_5gs_decode_5gs_tracking_area_identity_list:
 4836|  2.68k|{
 4837|  2.68k|    int size = 0;
 4838|  2.68k|    ogs_nas_5gs_tracking_area_identity_list_t *source = NULL;
 4839|       |
 4840|  2.68k|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4840:9): [True: 14, False: 2.67k]
  ------------------
 4841|     14|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 4842|     14|       return -1;
 4843|     14|    }
 4844|       |
 4845|  2.67k|    source = (ogs_nas_5gs_tracking_area_identity_list_t *)pkbuf->data;
 4846|       |
 4847|  2.67k|    tracking_area_identity_list->length = source->length;
 4848|  2.67k|    size = tracking_area_identity_list->length + sizeof(tracking_area_identity_list->length);
 4849|       |
 4850|  2.67k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4850:9): [True: 4, False: 2.66k]
  ------------------
 4851|      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__) 
  |  |  ------------------
  ------------------
 4852|      4|       return -1;
 4853|      4|    }
 4854|       |
 4855|  2.66k|    if (sizeof(*tracking_area_identity_list) < size) return -1;
  ------------------
  |  Branch (4855:9): [True: 1, False: 2.66k]
  ------------------
 4856|  2.66k|    memcpy(tracking_area_identity_list, pkbuf->data - size, size);
 4857|       |
 4858|  2.66k|    ogs_trace("  5GS_TRACKING_AREA_IDENTITY_LIST - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 4859|  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
  |  |  ------------------
  ------------------
 4860|       |
 4861|  2.66k|    return size;
 4862|  2.66k|}
ogs_nas_5gs_decode_priority_indicator:
 4882|  1.58k|{
 4883|  1.58k|    int size = sizeof(ogs_nas_priority_indicator_t);
 4884|       |
 4885|  1.58k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4885:9): [True: 0, False: 1.58k]
  ------------------
 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.58k|    memcpy(priority_indicator, pkbuf->data - size, size);
 4891|       |
 4892|  1.58k|    ogs_trace("  PRIORITY_INDICATOR - ");
  ------------------
  |  |   40|  1.58k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 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__) 
  |  |  ------------------
  ------------------
 4893|  1.58k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.58k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.58k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4894|       |
 4895|  1.58k|    return size;
 4896|  1.58k|}
ogs_nas_5gs_decode_snpn_list:
 4914|    214|{
 4915|    214|    int size = 0;
 4916|    214|    ogs_nas_snpn_list_t *source = NULL;
 4917|       |
 4918|    214|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4918:9): [True: 4, False: 210]
  ------------------
 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|    210|    source = (ogs_nas_snpn_list_t *)pkbuf->data;
 4924|       |
 4925|    210|    snpn_list->length = source->length;
 4926|    210|    size = snpn_list->length + sizeof(snpn_list->length);
 4927|       |
 4928|    210|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4928:9): [True: 2, False: 208]
  ------------------
 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|    208|    if (sizeof(*snpn_list) < size) return -1;
  ------------------
  |  Branch (4933:9): [True: 1, False: 207]
  ------------------
 4934|    207|    memcpy(snpn_list, pkbuf->data - size, size);
 4935|       |
 4936|    207|    ogs_trace("  SNPN_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__) 
  |  |  ------------------
  ------------------
 4937|    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
  |  |  ------------------
  ------------------
 4938|       |
 4939|    207|    return size;
 4940|    208|}
ogs_nas_5gs_decode_n3iwf_identifier:
 4960|    230|{
 4961|    230|    int size = 0;
 4962|    230|    ogs_nas_n3iwf_identifier_t *source = NULL;
 4963|       |
 4964|    230|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (4964:9): [True: 5, False: 225]
  ------------------
 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|    225|    source = (ogs_nas_n3iwf_identifier_t *)pkbuf->data;
 4970|       |
 4971|    225|    n3iwf_identifier->length = source->length;
 4972|    225|    size = n3iwf_identifier->length + sizeof(n3iwf_identifier->length);
 4973|       |
 4974|    225|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (4974:9): [True: 1, False: 224]
  ------------------
 4975|      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__) 
  |  |  ------------------
  ------------------
 4976|      1|       return -1;
 4977|      1|    }
 4978|       |
 4979|    224|    if (sizeof(*n3iwf_identifier) < size) return -1;
  ------------------
  |  Branch (4979:9): [True: 1, False: 223]
  ------------------
 4980|    223|    memcpy(n3iwf_identifier, pkbuf->data - size, size);
 4981|       |
 4982|    223|    ogs_trace("  N3IWF_IDENTIFIER - ");
  ------------------
  |  |   40|    223|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    223|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    223|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    223|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    223|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    223|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 4983|    223|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    223|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    223|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 4984|       |
 4985|    223|    return size;
 4986|    224|}
ogs_nas_5gs_decode_tnan_information:
 5006|    219|{
 5007|    219|    int size = 0;
 5008|    219|    ogs_nas_tnan_information_t *source = NULL;
 5009|       |
 5010|    219|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5010:9): [True: 4, False: 215]
  ------------------
 5011|      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__) 
  |  |  ------------------
  ------------------
 5012|      4|       return -1;
 5013|      4|    }
 5014|       |
 5015|    215|    source = (ogs_nas_tnan_information_t *)pkbuf->data;
 5016|       |
 5017|    215|    tnan_information->length = source->length;
 5018|    215|    size = tnan_information->length + sizeof(tnan_information->length);
 5019|       |
 5020|    215|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5020:9): [True: 1, False: 214]
  ------------------
 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|    214|    if (sizeof(*tnan_information) < size) return -1;
  ------------------
  |  Branch (5025:9): [True: 3, False: 211]
  ------------------
 5026|    211|    memcpy(tnan_information, pkbuf->data - size, size);
 5027|       |
 5028|    211|    ogs_trace("  TNAN_INFORMATION - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 5029|    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
  |  |  ------------------
  ------------------
 5030|       |
 5031|    211|    return size;
 5032|    214|}
ogs_nas_5gs_decode_ran_timing_synchronization:
 5052|    418|{
 5053|    418|    int size = 0;
 5054|    418|    ogs_nas_ran_timing_synchronization_t *source = NULL;
 5055|       |
 5056|    418|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5056:9): [True: 2, False: 416]
  ------------------
 5057|      2|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5058|      2|       return -1;
 5059|      2|    }
 5060|       |
 5061|    416|    source = (ogs_nas_ran_timing_synchronization_t *)pkbuf->data;
 5062|       |
 5063|    416|    ran_timing_synchronization->length = source->length;
 5064|    416|    size = ran_timing_synchronization->length + sizeof(ran_timing_synchronization->length);
 5065|       |
 5066|    416|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5066:9): [True: 3, False: 413]
  ------------------
 5067|      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__) 
  |  |  ------------------
  ------------------
 5068|      3|       return -1;
 5069|      3|    }
 5070|       |
 5071|    413|    if (sizeof(*ran_timing_synchronization) < size) return -1;
  ------------------
  |  Branch (5071:9): [True: 2, False: 411]
  ------------------
 5072|    411|    memcpy(ran_timing_synchronization, pkbuf->data - size, size);
 5073|       |
 5074|    411|    ogs_trace("  RAN_TIMING_SYNCHRONIZATION - ");
  ------------------
  |  |   40|    411|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    411|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    411|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    411|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    411|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    411|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5075|    411|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    411|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    411|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5076|       |
 5077|    411|    return size;
 5078|    413|}
ogs_nas_5gs_decode_extended_ladn_information:
 5098|    271|{
 5099|    271|    int size = 0;
 5100|    271|    ogs_nas_extended_ladn_information_t *source = NULL;
 5101|       |
 5102|    271|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (5102:9): [True: 4, False: 267]
  ------------------
 5103|      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__) 
  |  |  ------------------
  ------------------
 5104|      4|       return -1;
 5105|      4|    }
 5106|       |
 5107|    267|    source = (ogs_nas_extended_ladn_information_t *)pkbuf->data;
 5108|       |
 5109|    267|    extended_ladn_information->length = be16toh(source->length);
 5110|    267|    size = extended_ladn_information->length + sizeof(extended_ladn_information->length);
 5111|       |
 5112|    267|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5112:9): [True: 13, False: 254]
  ------------------
 5113|     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__) 
  |  |  ------------------
  ------------------
 5114|     13|       return -1;
 5115|     13|    }
 5116|       |
 5117|    254|    extended_ladn_information->buffer = pkbuf->data - size + sizeof(extended_ladn_information->length);
 5118|       |
 5119|    254|    ogs_trace("  EXTENDED_LADN_INFORMATION - ");
  ------------------
  |  |   40|    254|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    254|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    254|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    254|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    254|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    254|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5120|    254|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)extended_ladn_information->buffer, extended_ladn_information->length);
  ------------------
  |  |   53|    254|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    254|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5121|       |
 5122|    254|    return size;
 5123|    267|}
ogs_nas_5gs_decode_alternative_nssai:
 5151|    555|{
 5152|    555|    int size = 0;
 5153|    555|    ogs_nas_alternative_nssai_t *source = NULL;
 5154|       |
 5155|    555|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5155:9): [True: 5, False: 550]
  ------------------
 5156|      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__) 
  |  |  ------------------
  ------------------
 5157|      5|       return -1;
 5158|      5|    }
 5159|       |
 5160|    550|    source = (ogs_nas_alternative_nssai_t *)pkbuf->data;
 5161|       |
 5162|    550|    alternative_nssai->length = source->length;
 5163|    550|    size = alternative_nssai->length + sizeof(alternative_nssai->length);
 5164|       |
 5165|    550|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5165:9): [True: 2, False: 548]
  ------------------
 5166|      2|       ogs_error("ogs_pkbuf_pull() failed [size:%d]", (int)size);
  ------------------
  |  |   36|      2|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      2|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      2|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      2|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      2|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      2|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5167|      2|       return -1;
 5168|      2|    }
 5169|       |
 5170|    548|    if (sizeof(*alternative_nssai) < size) return -1;
  ------------------
  |  Branch (5170:9): [True: 2, False: 546]
  ------------------
 5171|    546|    memcpy(alternative_nssai, pkbuf->data - size, size);
 5172|       |
 5173|    546|    ogs_trace("  ALTERNATIVE_NSSAI - ");
  ------------------
  |  |   40|    546|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    546|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    546|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    546|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    546|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    546|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5174|    546|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    546|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    546|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5175|       |
 5176|    546|    return size;
 5177|    548|}
ogs_nas_5gs_decode_type_6_ie_container:
 5197|    337|{
 5198|    337|    int size = 0;
 5199|    337|    ogs_nas_type_6_ie_container_t *source = NULL;
 5200|       |
 5201|    337|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (5201:9): [True: 5, False: 332]
  ------------------
 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|    332|    source = (ogs_nas_type_6_ie_container_t *)pkbuf->data;
 5207|       |
 5208|    332|    type_6_ie_container->length = be16toh(source->length);
 5209|    332|    size = type_6_ie_container->length + sizeof(type_6_ie_container->length);
 5210|       |
 5211|    332|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5211:9): [True: 23, False: 309]
  ------------------
 5212|     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__) 
  |  |  ------------------
  ------------------
 5213|     23|       return -1;
 5214|     23|    }
 5215|       |
 5216|    309|    type_6_ie_container->buffer = pkbuf->data - size + sizeof(type_6_ie_container->length);
 5217|       |
 5218|    309|    ogs_trace("  TYPE_6_IE_CONTAINER - ");
  ------------------
  |  |   40|    309|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    309|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    309|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    309|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    309|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    309|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5219|    309|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)type_6_ie_container->buffer, type_6_ie_container->length);
  ------------------
  |  |   53|    309|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    309|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5220|       |
 5221|    309|    return size;
 5222|    332|}
ogs_nas_5gs_decode_non_3gpp_access_path_switching_indication:
 5250|    223|{
 5251|    223|    int size = 0;
 5252|    223|    ogs_nas_non_3gpp_access_path_switching_indication_t *source = NULL;
 5253|       |
 5254|    223|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5254:9): [True: 2, False: 221]
  ------------------
 5255|      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__) 
  |  |  ------------------
  ------------------
 5256|      2|       return -1;
 5257|      2|    }
 5258|       |
 5259|    221|    source = (ogs_nas_non_3gpp_access_path_switching_indication_t *)pkbuf->data;
 5260|       |
 5261|    221|    non_3gpp_access_path_switching_indication->length = source->length;
 5262|    221|    size = non_3gpp_access_path_switching_indication->length + sizeof(non_3gpp_access_path_switching_indication->length);
 5263|       |
 5264|    221|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5264:9): [True: 2, False: 219]
  ------------------
 5265|      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__) 
  |  |  ------------------
  ------------------
 5266|      2|       return -1;
 5267|      2|    }
 5268|       |
 5269|    219|    if (sizeof(*non_3gpp_access_path_switching_indication) < size) return -1;
  ------------------
  |  Branch (5269:9): [True: 2, False: 217]
  ------------------
 5270|    217|    memcpy(non_3gpp_access_path_switching_indication, pkbuf->data - size, size);
 5271|       |
 5272|    217|    ogs_trace("  NON_3GPP_ACCESS_PATH_SWITCHING_INDICATION - ");
  ------------------
  |  |   40|    217|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    217|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    217|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    217|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    217|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    217|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5273|    217|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    217|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    217|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5274|       |
 5275|    217|    return size;
 5276|    219|}
ogs_nas_5gs_decode_5gs_update_type:
 5296|    208|{
 5297|    208|    int size = 0;
 5298|    208|    ogs_nas_5gs_update_type_t *source = NULL;
 5299|       |
 5300|    208|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5300:9): [True: 2, False: 206]
  ------------------
 5301|      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__) 
  |  |  ------------------
  ------------------
 5302|      2|       return -1;
 5303|      2|    }
 5304|       |
 5305|    206|    source = (ogs_nas_5gs_update_type_t *)pkbuf->data;
 5306|       |
 5307|    206|    update_type->length = source->length;
 5308|    206|    size = update_type->length + sizeof(update_type->length);
 5309|       |
 5310|    206|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5310:9): [True: 1, False: 205]
  ------------------
 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|    205|    if (sizeof(*update_type) < size) return -1;
  ------------------
  |  Branch (5315:9): [True: 1, False: 204]
  ------------------
 5316|    204|    memcpy(update_type, pkbuf->data - size, size);
 5317|       |
 5318|    204|    ogs_trace("  5GS_UPDATE_TYPE - ");
  ------------------
  |  |   40|    204|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    204|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    204|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    204|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    204|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    204|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5319|    204|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    204|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    204|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5320|       |
 5321|    204|    return size;
 5322|    205|}
ogs_nas_5gs_decode_5gsm_capability:
 5342|    401|{
 5343|    401|    int size = 0;
 5344|    401|    ogs_nas_5gsm_capability_t *source = NULL;
 5345|       |
 5346|    401|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5346:9): [True: 4, False: 397]
  ------------------
 5347|      4|       ogs_error("Not enough pkbuf [len:%d]", pkbuf->len);
  ------------------
  |  |   36|      4|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      4|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      4|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      4|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      4|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      4|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5348|      4|       return -1;
 5349|      4|    }
 5350|       |
 5351|    397|    source = (ogs_nas_5gsm_capability_t *)pkbuf->data;
 5352|       |
 5353|    397|    gsm_capability->length = source->length;
 5354|    397|    size = gsm_capability->length + sizeof(gsm_capability->length);
 5355|       |
 5356|    397|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5356:9): [True: 1, False: 396]
  ------------------
 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|    396|    if (sizeof(*gsm_capability) < size) return -1;
  ------------------
  |  Branch (5361:9): [True: 1, False: 395]
  ------------------
 5362|    395|    memcpy(gsm_capability, pkbuf->data - size, size);
 5363|       |
 5364|    395|    ogs_trace("  5GSM_CAPABILITY - ");
  ------------------
  |  |   40|    395|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    395|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    395|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    395|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    395|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    395|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5365|    395|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    395|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    395|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5366|       |
 5367|    395|    return size;
 5368|    396|}
ogs_nas_5gs_decode_pdu_address:
 5388|    431|{
 5389|    431|    int size = 0;
 5390|    431|    ogs_nas_pdu_address_t *source = NULL;
 5391|       |
 5392|    431|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5392:9): [True: 4, False: 427]
  ------------------
 5393|      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__) 
  |  |  ------------------
  ------------------
 5394|      4|       return -1;
 5395|      4|    }
 5396|       |
 5397|    427|    source = (ogs_nas_pdu_address_t *)pkbuf->data;
 5398|       |
 5399|    427|    pdu_address->length = source->length;
 5400|    427|    size = pdu_address->length + sizeof(pdu_address->length);
 5401|       |
 5402|    427|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5402:9): [True: 2, False: 425]
  ------------------
 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|    425|    if (sizeof(*pdu_address) < size) return -1;
  ------------------
  |  Branch (5407:9): [True: 2, False: 423]
  ------------------
 5408|    423|    memcpy(pdu_address, pkbuf->data - size, size);
 5409|       |
 5410|    423|    ogs_trace("  PDU_ADDRESS - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 5411|    423|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    423|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    423|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5412|       |
 5413|    423|    return size;
 5414|    425|}
ogs_nas_5gs_decode_pdu_session_type:
 5434|    707|{
 5435|    707|    int size = sizeof(ogs_nas_pdu_session_type_t);
 5436|       |
 5437|    707|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5437:9): [True: 1, False: 706]
  ------------------
 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|    706|    memcpy(pdu_session_type, pkbuf->data - size, size);
 5443|       |
 5444|    706|    ogs_trace("  PDU_SESSION_TYPE - ");
  ------------------
  |  |   40|    706|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    706|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    706|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    706|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    706|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    706|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5445|    706|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    706|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    706|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5446|       |
 5447|    706|    return size;
 5448|    707|}
ogs_nas_5gs_decode_qos_flow_descriptions:
 5466|    742|{
 5467|    742|    int size = 0;
 5468|    742|    ogs_nas_qos_flow_descriptions_t *source = NULL;
 5469|       |
 5470|    742|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (5470:9): [True: 6, False: 736]
  ------------------
 5471|      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__) 
  |  |  ------------------
  ------------------
 5472|      6|       return -1;
 5473|      6|    }
 5474|       |
 5475|    736|    source = (ogs_nas_qos_flow_descriptions_t *)pkbuf->data;
 5476|       |
 5477|    736|    qos_flow_descriptions->length = be16toh(source->length);
 5478|    736|    size = qos_flow_descriptions->length + sizeof(qos_flow_descriptions->length);
 5479|       |
 5480|    736|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5480:9): [True: 23, False: 713]
  ------------------
 5481|     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__) 
  |  |  ------------------
  ------------------
 5482|     23|       return -1;
 5483|     23|    }
 5484|       |
 5485|    713|    qos_flow_descriptions->buffer = pkbuf->data - size + sizeof(qos_flow_descriptions->length);
 5486|       |
 5487|    713|    ogs_trace("  QOS_FLOW_DESCRIPTIONS - ");
  ------------------
  |  |   40|    713|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    713|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    713|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    713|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    713|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    713|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5488|    713|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)qos_flow_descriptions->buffer, qos_flow_descriptions->length);
  ------------------
  |  |   53|    713|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    713|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5489|       |
 5490|    713|    return size;
 5491|    736|}
ogs_nas_5gs_decode_qos_rules:
 5519|  1.03k|{
 5520|  1.03k|    int size = 0;
 5521|  1.03k|    ogs_nas_qos_rules_t *source = NULL;
 5522|       |
 5523|  1.03k|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (5523:9): [True: 8, False: 1.02k]
  ------------------
 5524|      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__) 
  |  |  ------------------
  ------------------
 5525|      8|       return -1;
 5526|      8|    }
 5527|       |
 5528|  1.02k|    source = (ogs_nas_qos_rules_t *)pkbuf->data;
 5529|       |
 5530|  1.02k|    qos_rules->length = be16toh(source->length);
 5531|  1.02k|    size = qos_rules->length + sizeof(qos_rules->length);
 5532|       |
 5533|  1.02k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5533:9): [True: 22, False: 1.00k]
  ------------------
 5534|     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__) 
  |  |  ------------------
  ------------------
 5535|     22|       return -1;
 5536|     22|    }
 5537|       |
 5538|  1.00k|    qos_rules->buffer = pkbuf->data - size + sizeof(qos_rules->length);
 5539|       |
 5540|  1.00k|    ogs_trace("  QOS_RULES - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 5541|  1.00k|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)qos_rules->buffer, qos_rules->length);
  ------------------
  |  |   53|  1.00k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.00k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5542|       |
 5543|  1.00k|    return size;
 5544|  1.02k|}
ogs_nas_5gs_decode_session_ambr:
 5572|    405|{
 5573|    405|    int size = 0;
 5574|    405|    ogs_nas_session_ambr_t *source = NULL;
 5575|       |
 5576|    405|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5576:9): [True: 2, False: 403]
  ------------------
 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|    403|    source = (ogs_nas_session_ambr_t *)pkbuf->data;
 5582|       |
 5583|    403|    session_ambr->length = source->length;
 5584|    403|    size = session_ambr->length + sizeof(session_ambr->length);
 5585|       |
 5586|    403|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5586:9): [True: 3, False: 400]
  ------------------
 5587|      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__) 
  |  |  ------------------
  ------------------
 5588|      3|       return -1;
 5589|      3|    }
 5590|       |
 5591|    400|    if (sizeof(*session_ambr) < size) return -1;
  ------------------
  |  Branch (5591:9): [True: 6, False: 394]
  ------------------
 5592|    394|    memcpy(session_ambr, pkbuf->data - size, size);
 5593|       |
 5594|    394|    if (size != (int)sizeof(*session_ambr)) {
  ------------------
  |  Branch (5594:9): [True: 24, False: 370]
  ------------------
 5595|     24|        ogs_error("Invalid Session-AMBR length [%d]",
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 5596|     24|                session_ambr->length);
 5597|     24|        return -1;
 5598|     24|    }
 5599|       |
 5600|    370|    session_ambr->downlink.value = be16toh(session_ambr->downlink.value);
 5601|    370|    session_ambr->uplink.value = be16toh(session_ambr->uplink.value);
 5602|       |
 5603|    370|    ogs_trace("  SESSION_AMBR - ");
  ------------------
  |  |   40|    370|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    370|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    370|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    370|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    370|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    370|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5604|    370|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    370|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    370|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5605|       |
 5606|    370|    return size;
 5607|    394|}
ogs_nas_5gs_decode_sm_pdu_dn_request_container:
 5630|    320|{
 5631|    320|    int size = 0;
 5632|    320|    ogs_nas_sm_pdu_dn_request_container_t *source = NULL;
 5633|       |
 5634|    320|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5634:9): [True: 3, False: 317]
  ------------------
 5635|      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__) 
  |  |  ------------------
  ------------------
 5636|      3|       return -1;
 5637|      3|    }
 5638|       |
 5639|    317|    source = (ogs_nas_sm_pdu_dn_request_container_t *)pkbuf->data;
 5640|       |
 5641|    317|    sm_pdu_dn_request_container->length = source->length;
 5642|    317|    size = sm_pdu_dn_request_container->length + sizeof(sm_pdu_dn_request_container->length);
 5643|       |
 5644|    317|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5644:9): [True: 1, False: 316]
  ------------------
 5645|      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__) 
  |  |  ------------------
  ------------------
 5646|      1|       return -1;
 5647|      1|    }
 5648|       |
 5649|    316|    if (sizeof(*sm_pdu_dn_request_container) < size) return -1;
  ------------------
  |  Branch (5649:9): [True: 0, False: 316]
  ------------------
 5650|    316|    memcpy(sm_pdu_dn_request_container, pkbuf->data - size, size);
 5651|       |
 5652|    316|    ogs_trace("  SM_PDU_DN_REQUEST_CONTAINER - ");
  ------------------
  |  |   40|    316|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    316|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    316|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    316|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    316|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    316|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5653|    316|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    316|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    316|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5654|       |
 5655|    316|    return size;
 5656|    316|}
ogs_nas_5gs_decode_ssc_mode:
 5676|    360|{
 5677|    360|    int size = sizeof(ogs_nas_ssc_mode_t);
 5678|       |
 5679|    360|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5679:9): [True: 0, False: 360]
  ------------------
 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|    360|    memcpy(ssc_mode, pkbuf->data - size, size);
 5685|       |
 5686|    360|    ogs_trace("  SSC_MODE - ");
  ------------------
  |  |   40|    360|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    360|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    360|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    360|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    360|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    360|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5687|    360|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    360|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    360|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5688|       |
 5689|    360|    return size;
 5690|    360|}
ogs_nas_5gs_decode_re_attempt_indicator:
 5708|    418|{
 5709|    418|    int size = 0;
 5710|    418|    ogs_nas_re_attempt_indicator_t *source = NULL;
 5711|       |
 5712|    418|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5712:9): [True: 5, False: 413]
  ------------------
 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|    413|    source = (ogs_nas_re_attempt_indicator_t *)pkbuf->data;
 5718|       |
 5719|    413|    re_attempt_indicator->length = source->length;
 5720|    413|    size = re_attempt_indicator->length + sizeof(re_attempt_indicator->length);
 5721|       |
 5722|    413|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5722:9): [True: 2, False: 411]
  ------------------
 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|    411|    if (sizeof(*re_attempt_indicator) < size) return -1;
  ------------------
  |  Branch (5727:9): [True: 1, False: 410]
  ------------------
 5728|    410|    memcpy(re_attempt_indicator, pkbuf->data - size, size);
 5729|       |
 5730|    410|    ogs_trace("  RE_ATTEMPT_INDICATOR - ");
  ------------------
  |  |   40|    410|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    410|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    410|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    410|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    410|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    410|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5731|    410|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    410|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    410|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5732|       |
 5733|    410|    return size;
 5734|    411|}
ogs_nas_5gs_decode_5gsm_network_feature_support:
 5754|    212|{
 5755|    212|    int size = 0;
 5756|    212|    ogs_nas_5gsm_network_feature_support_t *source = NULL;
 5757|       |
 5758|    212|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5758:9): [True: 3, False: 209]
  ------------------
 5759|      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__) 
  |  |  ------------------
  ------------------
 5760|      3|       return -1;
 5761|      3|    }
 5762|       |
 5763|    209|    source = (ogs_nas_5gsm_network_feature_support_t *)pkbuf->data;
 5764|       |
 5765|    209|    gsm_network_feature_support->length = source->length;
 5766|    209|    size = gsm_network_feature_support->length + sizeof(gsm_network_feature_support->length);
 5767|       |
 5768|    209|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5768:9): [True: 1, False: 208]
  ------------------
 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|    208|    if (sizeof(*gsm_network_feature_support) < size) return -1;
  ------------------
  |  Branch (5773:9): [True: 1, False: 207]
  ------------------
 5774|    207|    memcpy(gsm_network_feature_support, pkbuf->data - size, size);
 5775|       |
 5776|    207|    ogs_trace("  5GSM_NETWORK_FEATURE_SUPPORT - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 5777|    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
  |  |  ------------------
  ------------------
 5778|       |
 5779|    207|    return size;
 5780|    208|}
ogs_nas_5gs_decode_5gsm_cause:
 5800|  1.51k|{
 5801|  1.51k|    int size = sizeof(ogs_nas_5gsm_cause_t);
 5802|       |
 5803|  1.51k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5803:9): [True: 16, False: 1.49k]
  ------------------
 5804|     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__) 
  |  |  ------------------
  ------------------
 5805|     16|       return -1;
 5806|     16|    }
 5807|       |
 5808|  1.49k|    memcpy(gsm_cause, pkbuf->data - size, size);
 5809|       |
 5810|  1.49k|    ogs_trace("  5GSM_CAUSE - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 5811|  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
  |  |  ------------------
  ------------------
 5812|       |
 5813|  1.49k|    return size;
 5814|  1.51k|}
ogs_nas_5gs_decode_serving_plmn_rate_control:
 5834|    401|{
 5835|    401|    int size = 0;
 5836|    401|    ogs_nas_serving_plmn_rate_control_t *source = NULL;
 5837|       |
 5838|    401|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5838:9): [True: 4, False: 397]
  ------------------
 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|    397|    source = (ogs_nas_serving_plmn_rate_control_t *)pkbuf->data;
 5844|       |
 5845|    397|    serving_plmn_rate_control->length = source->length;
 5846|    397|    size = serving_plmn_rate_control->length + sizeof(serving_plmn_rate_control->length);
 5847|       |
 5848|    397|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5848:9): [True: 1, False: 396]
  ------------------
 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|    396|    if (sizeof(*serving_plmn_rate_control) < size) return -1;
  ------------------
  |  Branch (5853:9): [True: 1, False: 395]
  ------------------
 5854|    395|    memcpy(serving_plmn_rate_control, pkbuf->data - size, size);
 5855|       |
 5856|    395|    ogs_trace("  SERVING_PLMN_RATE_CONTROL - ");
  ------------------
  |  |   40|    395|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    395|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    395|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    395|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    395|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    395|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5857|    395|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    395|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    395|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5858|       |
 5859|    395|    return size;
 5860|    396|}
ogs_nas_5gs_decode_5gsm_congestion_re_attempt_indicator:
 5880|    642|{
 5881|    642|    int size = 0;
 5882|    642|    ogs_nas_5gsm_congestion_re_attempt_indicator_t *source = NULL;
 5883|       |
 5884|    642|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (5884:9): [True: 5, False: 637]
  ------------------
 5885|      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__) 
  |  |  ------------------
  ------------------
 5886|      5|       return -1;
 5887|      5|    }
 5888|       |
 5889|    637|    source = (ogs_nas_5gsm_congestion_re_attempt_indicator_t *)pkbuf->data;
 5890|       |
 5891|    637|    gsm_congestion_re_attempt_indicator->length = source->length;
 5892|    637|    size = gsm_congestion_re_attempt_indicator->length + sizeof(gsm_congestion_re_attempt_indicator->length);
 5893|       |
 5894|    637|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5894:9): [True: 1, False: 636]
  ------------------
 5895|      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__) 
  |  |  ------------------
  ------------------
 5896|      1|       return -1;
 5897|      1|    }
 5898|       |
 5899|    636|    if (sizeof(*gsm_congestion_re_attempt_indicator) < size) return -1;
  ------------------
  |  Branch (5899:9): [True: 1, False: 635]
  ------------------
 5900|    635|    memcpy(gsm_congestion_re_attempt_indicator, pkbuf->data - size, size);
 5901|       |
 5902|    635|    ogs_trace("  5GSM_CONGESTION_RE_ATTEMPT_INDICATOR - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 5903|    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
  |  |  ------------------
  ------------------
 5904|       |
 5905|    635|    return size;
 5906|    636|}
ogs_nas_5gs_decode_atsss_container:
 5926|    760|{
 5927|    760|    int size = 0;
 5928|    760|    ogs_nas_atsss_container_t *source = NULL;
 5929|       |
 5930|    760|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (5930:9): [True: 7, False: 753]
  ------------------
 5931|      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__) 
  |  |  ------------------
  ------------------
 5932|      7|       return -1;
 5933|      7|    }
 5934|       |
 5935|    753|    source = (ogs_nas_atsss_container_t *)pkbuf->data;
 5936|       |
 5937|    753|    atsss_container->length = be16toh(source->length);
 5938|    753|    size = atsss_container->length + sizeof(atsss_container->length);
 5939|       |
 5940|    753|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5940:9): [True: 24, False: 729]
  ------------------
 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|    729|    atsss_container->buffer = pkbuf->data - size + sizeof(atsss_container->length);
 5946|       |
 5947|    729|    ogs_trace("  ATSSS_CONTAINER - ");
  ------------------
  |  |   40|    729|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    729|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    729|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    729|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    729|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    729|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5948|    729|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)atsss_container->buffer, atsss_container->length);
  ------------------
  |  |   53|    729|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    729|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5949|       |
 5950|    729|    return size;
 5951|    753|}
ogs_nas_5gs_decode_control_plane_only_indication:
 5979|    261|{
 5980|    261|    int size = sizeof(ogs_nas_control_plane_only_indication_t);
 5981|       |
 5982|    261|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (5982:9): [True: 0, False: 261]
  ------------------
 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|    261|    memcpy(control_plane_only_indication, pkbuf->data - size, size);
 5988|       |
 5989|    261|    ogs_trace("  CONTROL_PLANE_ONLY_INDICATION - ");
  ------------------
  |  |   40|    261|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    261|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    261|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    261|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    261|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    261|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 5990|    261|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    261|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    261|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 5991|       |
 5992|    261|    return size;
 5993|    261|}
ogs_nas_5gs_decode_ip_header_compression_configuration:
 6011|    647|{
 6012|    647|    int size = 0;
 6013|    647|    ogs_nas_ip_header_compression_configuration_t *source = NULL;
 6014|       |
 6015|    647|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6015:9): [True: 6, False: 641]
  ------------------
 6016|      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__) 
  |  |  ------------------
  ------------------
 6017|      6|       return -1;
 6018|      6|    }
 6019|       |
 6020|    641|    source = (ogs_nas_ip_header_compression_configuration_t *)pkbuf->data;
 6021|       |
 6022|    641|    ip_header_compression_configuration->length = source->length;
 6023|    641|    size = ip_header_compression_configuration->length + sizeof(ip_header_compression_configuration->length);
 6024|       |
 6025|    641|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6025:9): [True: 1, False: 640]
  ------------------
 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|    640|    if (sizeof(*ip_header_compression_configuration) < size) return -1;
  ------------------
  |  Branch (6030:9): [True: 0, False: 640]
  ------------------
 6031|    640|    memcpy(ip_header_compression_configuration, pkbuf->data - size, size);
 6032|       |
 6033|    640|    ogs_trace("  IP_HEADER_COMPRESSION_CONFIGURATION - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 6034|    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
  |  |  ------------------
  ------------------
 6035|       |
 6036|    640|    return size;
 6037|    640|}
ogs_nas_5gs_decode_header_compression_configuration:
 6057|    248|{
 6058|    248|    int size = 0;
 6059|    248|    ogs_nas_header_compression_configuration_t *source = NULL;
 6060|       |
 6061|    248|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6061:9): [True: 5, False: 243]
  ------------------
 6062|      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__) 
  |  |  ------------------
  ------------------
 6063|      5|       return -1;
 6064|      5|    }
 6065|       |
 6066|    243|    source = (ogs_nas_header_compression_configuration_t *)pkbuf->data;
 6067|       |
 6068|    243|    header_compression_configuration->length = source->length;
 6069|    243|    size = header_compression_configuration->length + sizeof(header_compression_configuration->length);
 6070|       |
 6071|    243|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6071:9): [True: 7, False: 236]
  ------------------
 6072|      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__) 
  |  |  ------------------
  ------------------
 6073|      7|       return -1;
 6074|      7|    }
 6075|       |
 6076|    236|    if (sizeof(*header_compression_configuration) < size) return -1;
  ------------------
  |  Branch (6076:9): [True: 0, False: 236]
  ------------------
 6077|    236|    memcpy(header_compression_configuration, pkbuf->data - size, size);
 6078|       |
 6079|    236|    header_compression_configuration->max_cid = be16toh(header_compression_configuration->max_cid);
 6080|       |
 6081|    236|    ogs_trace("  HEADER_COMPRESSION_CONFIGURATION - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 6082|    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
  |  |  ------------------
  ------------------
 6083|       |
 6084|    236|    return size;
 6085|    236|}
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|    218|{
 6154|    218|    int size = 0;
 6155|    218|    ogs_nas_ue_ds_tt_residence_time_t *source = NULL;
 6156|       |
 6157|    218|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6157:9): [True: 4, False: 214]
  ------------------
 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|    214|    source = (ogs_nas_ue_ds_tt_residence_time_t *)pkbuf->data;
 6163|       |
 6164|    214|    ue_ds_tt_residence_time->length = source->length;
 6165|    214|    size = ue_ds_tt_residence_time->length + sizeof(ue_ds_tt_residence_time->length);
 6166|       |
 6167|    214|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6167:9): [True: 4, False: 210]
  ------------------
 6168|      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__) 
  |  |  ------------------
  ------------------
 6169|      4|       return -1;
 6170|      4|    }
 6171|       |
 6172|    210|    if (sizeof(*ue_ds_tt_residence_time) < size) return -1;
  ------------------
  |  Branch (6172:9): [True: 1, False: 209]
  ------------------
 6173|    209|    memcpy(ue_ds_tt_residence_time, pkbuf->data - size, size);
 6174|       |
 6175|    209|    ogs_trace("  UE_DS_TT_RESIDENCE_TIME - ");
  ------------------
  |  |   40|    209|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    209|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    209|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    209|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    209|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    209|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6176|    209|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    209|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    209|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6177|       |
 6178|    209|    return size;
 6179|    210|}
ogs_nas_5gs_decode_port_management_information_container:
 6199|    846|{
 6200|    846|    int size = 0;
 6201|    846|    ogs_nas_port_management_information_container_t *source = NULL;
 6202|       |
 6203|    846|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6203:9): [True: 8, False: 838]
  ------------------
 6204|      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__) 
  |  |  ------------------
  ------------------
 6205|      8|       return -1;
 6206|      8|    }
 6207|       |
 6208|    838|    source = (ogs_nas_port_management_information_container_t *)pkbuf->data;
 6209|       |
 6210|    838|    port_management_information_container->length = be16toh(source->length);
 6211|    838|    size = port_management_information_container->length + sizeof(port_management_information_container->length);
 6212|       |
 6213|    838|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6213:9): [True: 22, False: 816]
  ------------------
 6214|     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__) 
  |  |  ------------------
  ------------------
 6215|     22|       return -1;
 6216|     22|    }
 6217|       |
 6218|    816|    port_management_information_container->buffer = pkbuf->data - size + sizeof(port_management_information_container->length);
 6219|       |
 6220|    816|    ogs_trace("  PORT_MANAGEMENT_INFORMATION_CONTAINER - ");
  ------------------
  |  |   40|    816|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    816|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    816|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    816|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    816|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    816|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6221|    816|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)port_management_information_container->buffer, port_management_information_container->length);
  ------------------
  |  |   53|    816|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    816|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6222|       |
 6223|    816|    return size;
 6224|    838|}
ogs_nas_5gs_decode_ethernet_header_compression_configuration:
 6252|    864|{
 6253|    864|    int size = 0;
 6254|    864|    ogs_nas_ethernet_header_compression_configuration_t *source = NULL;
 6255|       |
 6256|    864|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6256:9): [True: 7, False: 857]
  ------------------
 6257|      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__) 
  |  |  ------------------
  ------------------
 6258|      7|       return -1;
 6259|      7|    }
 6260|       |
 6261|    857|    source = (ogs_nas_ethernet_header_compression_configuration_t *)pkbuf->data;
 6262|       |
 6263|    857|    ethernet_header_compression_configuration->length = source->length;
 6264|    857|    size = ethernet_header_compression_configuration->length + sizeof(ethernet_header_compression_configuration->length);
 6265|       |
 6266|    857|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6266:9): [True: 1, False: 856]
  ------------------
 6267|      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__) 
  |  |  ------------------
  ------------------
 6268|      1|       return -1;
 6269|      1|    }
 6270|       |
 6271|    856|    if (sizeof(*ethernet_header_compression_configuration) < size) return -1;
  ------------------
  |  Branch (6271:9): [True: 2, False: 854]
  ------------------
 6272|    854|    memcpy(ethernet_header_compression_configuration, pkbuf->data - size, size);
 6273|       |
 6274|    854|    ogs_trace("  ETHERNET_HEADER_COMPRESSION_CONFIGURATION - ");
  ------------------
  |  |   40|    854|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    854|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    854|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    854|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    854|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    854|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6275|    854|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    854|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    854|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6276|       |
 6277|    854|    return size;
 6278|    856|}
ogs_nas_5gs_decode_always_on_pdu_session_indication:
 6298|    742|{
 6299|    742|    int size = sizeof(ogs_nas_always_on_pdu_session_indication_t);
 6300|       |
 6301|    742|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6301:9): [True: 0, False: 742]
  ------------------
 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|    742|    memcpy(always_on_pdu_session_indication, pkbuf->data - size, size);
 6307|       |
 6308|    742|    ogs_trace("  ALWAYS_ON_PDU_SESSION_INDICATION - ");
  ------------------
  |  |   40|    742|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    742|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    742|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    742|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    742|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    742|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6309|    742|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    742|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    742|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6310|       |
 6311|    742|    return size;
 6312|    742|}
ogs_nas_5gs_decode_requested_mbs_container:
 6330|    474|{
 6331|    474|    int size = 0;
 6332|    474|    ogs_nas_requested_mbs_container_t *source = NULL;
 6333|       |
 6334|    474|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6334:9): [True: 5, False: 469]
  ------------------
 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|    469|    source = (ogs_nas_requested_mbs_container_t *)pkbuf->data;
 6340|       |
 6341|    469|    requested_mbs_container->length = be16toh(source->length);
 6342|    469|    size = requested_mbs_container->length + sizeof(requested_mbs_container->length);
 6343|       |
 6344|    469|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6344:9): [True: 26, False: 443]
  ------------------
 6345|     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__) 
  |  |  ------------------
  ------------------
 6346|     26|       return -1;
 6347|     26|    }
 6348|       |
 6349|    443|    requested_mbs_container->buffer = pkbuf->data - size + sizeof(requested_mbs_container->length);
 6350|       |
 6351|    443|    ogs_trace("  REQUESTED_MBS_CONTAINER - ");
  ------------------
  |  |   40|    443|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    443|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    443|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    443|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    443|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    443|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6352|    443|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)requested_mbs_container->buffer, requested_mbs_container->length);
  ------------------
  |  |   53|    443|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    443|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6353|       |
 6354|    443|    return size;
 6355|    469|}
ogs_nas_5gs_decode_received_mbs_container:
 6383|    421|{
 6384|    421|    int size = 0;
 6385|    421|    ogs_nas_received_mbs_container_t *source = NULL;
 6386|       |
 6387|    421|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6387:9): [True: 5, False: 416]
  ------------------
 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|    416|    source = (ogs_nas_received_mbs_container_t *)pkbuf->data;
 6393|       |
 6394|    416|    received_mbs_container->length = be16toh(source->length);
 6395|    416|    size = received_mbs_container->length + sizeof(received_mbs_container->length);
 6396|       |
 6397|    416|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6397:9): [True: 4, False: 412]
  ------------------
 6398|      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__) 
  |  |  ------------------
  ------------------
 6399|      4|       return -1;
 6400|      4|    }
 6401|       |
 6402|    412|    received_mbs_container->buffer = pkbuf->data - size + sizeof(received_mbs_container->length);
 6403|       |
 6404|    412|    ogs_trace("  RECEIVED_MBS_CONTAINER - ");
  ------------------
  |  |   40|    412|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    412|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    412|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    412|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    412|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    412|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6405|    412|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)received_mbs_container->buffer, received_mbs_container->length);
  ------------------
  |  |   53|    412|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    412|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6406|       |
 6407|    412|    return size;
 6408|    416|}
ogs_nas_5gs_decode_pdu_session_pair_id:
 6436|    198|{
 6437|    198|    int size = 0;
 6438|    198|    ogs_nas_pdu_session_pair_id_t *source = NULL;
 6439|       |
 6440|    198|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6440:9): [True: 1, False: 197]
  ------------------
 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|    197|    source = (ogs_nas_pdu_session_pair_id_t *)pkbuf->data;
 6446|       |
 6447|    197|    pdu_session_pair_id->length = source->length;
 6448|    197|    size = pdu_session_pair_id->length + sizeof(pdu_session_pair_id->length);
 6449|       |
 6450|    197|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6450:9): [True: 1, False: 196]
  ------------------
 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|    196|    if (sizeof(*pdu_session_pair_id) < size) return -1;
  ------------------
  |  Branch (6455:9): [True: 1, False: 195]
  ------------------
 6456|    195|    memcpy(pdu_session_pair_id, pkbuf->data - size, size);
 6457|       |
 6458|    195|    ogs_trace("  PDU_SESSION_PAIR_ID - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 6459|    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
  |  |  ------------------
  ------------------
 6460|       |
 6461|    195|    return size;
 6462|    196|}
ogs_nas_5gs_decode_rsn:
 6482|    210|{
 6483|    210|    int size = 0;
 6484|    210|    ogs_nas_rsn_t *source = NULL;
 6485|       |
 6486|    210|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6486:9): [True: 1, False: 209]
  ------------------
 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|    209|    source = (ogs_nas_rsn_t *)pkbuf->data;
 6492|       |
 6493|    209|    rsn->length = source->length;
 6494|    209|    size = rsn->length + sizeof(rsn->length);
 6495|       |
 6496|    209|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6496:9): [True: 1, False: 208]
  ------------------
 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|    208|    if (sizeof(*rsn) < size) return -1;
  ------------------
  |  Branch (6501:9): [True: 2, False: 206]
  ------------------
 6502|    206|    memcpy(rsn, pkbuf->data - size, size);
 6503|       |
 6504|    206|    ogs_trace("  RSN - ");
  ------------------
  |  |   40|    206|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    206|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    206|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    206|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    206|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    206|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6505|    206|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    206|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    206|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6506|       |
 6507|    206|    return size;
 6508|    208|}
ogs_nas_5gs_decode_n3qai:
 6528|    494|{
 6529|    494|    int size = 0;
 6530|    494|    ogs_nas_n3qai_t *source = NULL;
 6531|       |
 6532|    494|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6532:9): [True: 6, False: 488]
  ------------------
 6533|      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__) 
  |  |  ------------------
  ------------------
 6534|      6|       return -1;
 6535|      6|    }
 6536|       |
 6537|    488|    source = (ogs_nas_n3qai_t *)pkbuf->data;
 6538|       |
 6539|    488|    n3qai->length = be16toh(source->length);
 6540|    488|    size = n3qai->length + sizeof(n3qai->length);
 6541|       |
 6542|    488|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6542:9): [True: 23, False: 465]
  ------------------
 6543|     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__) 
  |  |  ------------------
  ------------------
 6544|     23|       return -1;
 6545|     23|    }
 6546|       |
 6547|    465|    n3qai->buffer = pkbuf->data - size + sizeof(n3qai->length);
 6548|       |
 6549|    465|    ogs_trace("  N3QAI - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 6550|    465|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)n3qai->buffer, n3qai->length);
  ------------------
  |  |   53|    465|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    465|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6551|       |
 6552|    465|    return size;
 6553|    488|}
ogs_nas_5gs_decode_non_3gpp_delay_budget:
 6581|    247|{
 6582|    247|    int size = 0;
 6583|    247|    ogs_nas_non_3gpp_delay_budget_t *source = NULL;
 6584|       |
 6585|    247|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6585:9): [True: 5, False: 242]
  ------------------
 6586|      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__) 
  |  |  ------------------
  ------------------
 6587|      5|       return -1;
 6588|      5|    }
 6589|       |
 6590|    242|    source = (ogs_nas_non_3gpp_delay_budget_t *)pkbuf->data;
 6591|       |
 6592|    242|    non_3gpp_delay_budget->length = be16toh(source->length);
 6593|    242|    size = non_3gpp_delay_budget->length + sizeof(non_3gpp_delay_budget->length);
 6594|       |
 6595|    242|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6595:9): [True: 24, False: 218]
  ------------------
 6596|     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__) 
  |  |  ------------------
  ------------------
 6597|     24|       return -1;
 6598|     24|    }
 6599|       |
 6600|    218|    non_3gpp_delay_budget->buffer = pkbuf->data - size + sizeof(non_3gpp_delay_budget->length);
 6601|       |
 6602|    218|    ogs_trace("  NON_3GPP_DELAY_BUDGET - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 6603|    218|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)non_3gpp_delay_budget->buffer, non_3gpp_delay_budget->length);
  ------------------
  |  |   53|    218|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    218|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6604|       |
 6605|    218|    return size;
 6606|    242|}
ogs_nas_5gs_decode_ursp_rule_enforcement_reports:
 6634|    433|{
 6635|    433|    int size = 0;
 6636|    433|    ogs_nas_ursp_rule_enforcement_reports_t *source = NULL;
 6637|       |
 6638|    433|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6638:9): [True: 5, False: 428]
  ------------------
 6639|      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__) 
  |  |  ------------------
  ------------------
 6640|      5|       return -1;
 6641|      5|    }
 6642|       |
 6643|    428|    source = (ogs_nas_ursp_rule_enforcement_reports_t *)pkbuf->data;
 6644|       |
 6645|    428|    ursp_rule_enforcement_reports->length = source->length;
 6646|    428|    size = ursp_rule_enforcement_reports->length + sizeof(ursp_rule_enforcement_reports->length);
 6647|       |
 6648|    428|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6648:9): [True: 1, False: 427]
  ------------------
 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|    427|    if (sizeof(*ursp_rule_enforcement_reports) < size) return -1;
  ------------------
  |  Branch (6653:9): [True: 1, False: 426]
  ------------------
 6654|    426|    memcpy(ursp_rule_enforcement_reports, pkbuf->data - size, size);
 6655|       |
 6656|    426|    ogs_trace("  URSP_RULE_ENFORCEMENT_REPORTS - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 6657|    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
  |  |  ------------------
  ------------------
 6658|       |
 6659|    426|    return size;
 6660|    427|}
ogs_nas_5gs_decode_protocol_description:
 6680|    447|{
 6681|    447|    int size = 0;
 6682|    447|    ogs_nas_protocol_description_t *source = NULL;
 6683|       |
 6684|    447|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6684:9): [True: 6, False: 441]
  ------------------
 6685|      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__) 
  |  |  ------------------
  ------------------
 6686|      6|       return -1;
 6687|      6|    }
 6688|       |
 6689|    441|    source = (ogs_nas_protocol_description_t *)pkbuf->data;
 6690|       |
 6691|    441|    protocol_description->length = be16toh(source->length);
 6692|    441|    size = protocol_description->length + sizeof(protocol_description->length);
 6693|       |
 6694|    441|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6694:9): [True: 23, False: 418]
  ------------------
 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|    418|    protocol_description->buffer = pkbuf->data - size + sizeof(protocol_description->length);
 6700|       |
 6701|    418|    ogs_trace("  PROTOCOL_DESCRIPTION - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 6702|    418|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)protocol_description->buffer, protocol_description->length);
  ------------------
  |  |   53|    418|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    418|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6703|       |
 6704|    418|    return size;
 6705|    441|}
ogs_nas_5gs_decode_always_on_pdu_session_requested:
 6733|  1.73k|{
 6734|  1.73k|    int size = sizeof(ogs_nas_always_on_pdu_session_requested_t);
 6735|       |
 6736|  1.73k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6736:9): [True: 0, False: 1.73k]
  ------------------
 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.73k|    memcpy(always_on_pdu_session_requested, pkbuf->data - size, size);
 6742|       |
 6743|  1.73k|    ogs_trace("  ALWAYS_ON_PDU_SESSION_REQUESTED - ");
  ------------------
  |  |   40|  1.73k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.73k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.73k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.73k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.73k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.73k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6744|  1.73k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.73k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.73k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6745|       |
 6746|  1.73k|    return size;
 6747|  1.73k|}
ogs_nas_5gs_decode_ecn_marking_for_l4s_indication:
 6765|    410|{
 6766|    410|    int size = 0;
 6767|    410|    ogs_nas_ecn_marking_for_l4s_indication_t *source = NULL;
 6768|       |
 6769|    410|    if (pkbuf->len < 1) {
  ------------------
  |  Branch (6769:9): [True: 4, False: 406]
  ------------------
 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|    406|    source = (ogs_nas_ecn_marking_for_l4s_indication_t *)pkbuf->data;
 6775|       |
 6776|    406|    ecn_marking_for_l4s_indication->length = source->length;
 6777|    406|    size = ecn_marking_for_l4s_indication->length + sizeof(ecn_marking_for_l4s_indication->length);
 6778|       |
 6779|    406|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6779:9): [True: 1, False: 405]
  ------------------
 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|    405|    if (sizeof(*ecn_marking_for_l4s_indication) < size) return -1;
  ------------------
  |  Branch (6784:9): [True: 1, False: 404]
  ------------------
 6785|    404|    memcpy(ecn_marking_for_l4s_indication, pkbuf->data - size, size);
 6786|       |
 6787|    404|    ogs_trace("  ECN_MARKING_FOR_L4S_INDICATION - ");
  ------------------
  |  |   40|    404|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    404|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    404|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    404|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    404|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    404|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6788|    404|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    404|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    404|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6789|       |
 6790|    404|    return size;
 6791|    405|}
ogs_nas_5gs_decode_non_3gpp_device_information:
 6811|    264|{
 6812|    264|    int size = 0;
 6813|    264|    ogs_nas_non_3gpp_device_information_t *source = NULL;
 6814|       |
 6815|    264|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6815:9): [True: 6, False: 258]
  ------------------
 6816|      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__) 
  |  |  ------------------
  ------------------
 6817|      6|       return -1;
 6818|      6|    }
 6819|       |
 6820|    258|    source = (ogs_nas_non_3gpp_device_information_t *)pkbuf->data;
 6821|       |
 6822|    258|    non_3gpp_device_information->length = be16toh(source->length);
 6823|    258|    size = non_3gpp_device_information->length + sizeof(non_3gpp_device_information->length);
 6824|       |
 6825|    258|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6825:9): [True: 22, False: 236]
  ------------------
 6826|     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__) 
  |  |  ------------------
  ------------------
 6827|     22|       return -1;
 6828|     22|    }
 6829|       |
 6830|    236|    non_3gpp_device_information->buffer = pkbuf->data - size + sizeof(non_3gpp_device_information->length);
 6831|       |
 6832|    236|    ogs_trace("  NON_3GPP_DEVICE_INFORMATION - ");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 6833|    236|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)non_3gpp_device_information->buffer, non_3gpp_device_information->length);
  ------------------
  |  |   53|    236|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    236|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6834|       |
 6835|    236|    return size;
 6836|    258|}
ogs_nas_5gs_decode_allowed_ssc_mode:
 6864|  1.35k|{
 6865|  1.35k|    int size = sizeof(ogs_nas_allowed_ssc_mode_t);
 6866|       |
 6867|  1.35k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6867:9): [True: 0, False: 1.35k]
  ------------------
 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|  1.35k|    memcpy(allowed_ssc_mode, pkbuf->data - size, size);
 6873|       |
 6874|  1.35k|    ogs_trace("  ALLOWED_SSC_MODE - ");
  ------------------
  |  |   40|  1.35k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  1.35k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  1.35k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  1.35k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  1.35k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  1.35k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6875|  1.35k|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|  1.35k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  1.35k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6876|       |
 6877|  1.35k|    return size;
 6878|  1.35k|}
ogs_nas_5gs_decode_extended_protocol_configuration_options:
 6896|  3.40k|{
 6897|  3.40k|    int size = 0;
 6898|  3.40k|    ogs_nas_extended_protocol_configuration_options_t *source = NULL;
 6899|       |
 6900|  3.40k|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6900:9): [True: 20, False: 3.38k]
  ------------------
 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.38k|    source = (ogs_nas_extended_protocol_configuration_options_t *)pkbuf->data;
 6906|       |
 6907|  3.38k|    extended_protocol_configuration_options->length = be16toh(source->length);
 6908|  3.38k|    size = extended_protocol_configuration_options->length + sizeof(extended_protocol_configuration_options->length);
 6909|       |
 6910|  3.38k|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6910:9): [True: 23, False: 3.35k]
  ------------------
 6911|     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__) 
  |  |  ------------------
  ------------------
 6912|     23|       return -1;
 6913|     23|    }
 6914|       |
 6915|  3.35k|    extended_protocol_configuration_options->buffer = pkbuf->data - size + sizeof(extended_protocol_configuration_options->length);
 6916|       |
 6917|  3.35k|    ogs_trace("  EXTENDED_PROTOCOL_CONFIGURATION_OPTIONS - ");
  ------------------
  |  |   40|  3.35k|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|  3.35k|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|  3.35k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|  3.35k|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|  3.35k|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|  3.35k|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6918|  3.35k|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)extended_protocol_configuration_options->buffer, extended_protocol_configuration_options->length);
  ------------------
  |  |   53|  3.35k|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|  3.35k|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6919|       |
 6920|  3.35k|    return size;
 6921|  3.38k|}
ogs_nas_5gs_decode_integrity_protection_maximum_data_rate:
 6949|    514|{
 6950|    514|    int size = sizeof(ogs_nas_integrity_protection_maximum_data_rate_t);
 6951|       |
 6952|    514|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6952:9): [True: 7, False: 507]
  ------------------
 6953|      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__) 
  |  |  ------------------
  ------------------
 6954|      7|       return -1;
 6955|      7|    }
 6956|       |
 6957|    507|    memcpy(integrity_protection_maximum_data_rate, pkbuf->data - size, size);
 6958|       |
 6959|    507|    ogs_trace("  INTEGRITY_PROTECTION_MAXIMUM_DATA_RATE - ");
  ------------------
  |  |   40|    507|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    507|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    507|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    507|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    507|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    507|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 6960|    507|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    507|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    507|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 6961|       |
 6962|    507|    return size;
 6963|    514|}
ogs_nas_5gs_decode_mapped_eps_bearer_contexts:
 6983|    715|{
 6984|    715|    int size = 0;
 6985|    715|    ogs_nas_mapped_eps_bearer_contexts_t *source = NULL;
 6986|       |
 6987|    715|    if (pkbuf->len < 2) {
  ------------------
  |  Branch (6987:9): [True: 8, False: 707]
  ------------------
 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|    707|    source = (ogs_nas_mapped_eps_bearer_contexts_t *)pkbuf->data;
 6993|       |
 6994|    707|    mapped_eps_bearer_contexts->length = be16toh(source->length);
 6995|    707|    size = mapped_eps_bearer_contexts->length + sizeof(mapped_eps_bearer_contexts->length);
 6996|       |
 6997|    707|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (6997:9): [True: 22, False: 685]
  ------------------
 6998|     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__) 
  |  |  ------------------
  ------------------
 6999|     22|       return -1;
 7000|     22|    }
 7001|       |
 7002|    685|    mapped_eps_bearer_contexts->buffer = pkbuf->data - size + sizeof(mapped_eps_bearer_contexts->length);
 7003|       |
 7004|    685|    ogs_trace("  MAPPED_EPS_BEARER_CONTEXTS - ");
  ------------------
  |  |   40|    685|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    685|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    685|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    685|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    685|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    685|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 7005|    685|    ogs_log_hexdump(OGS_LOG_TRACE, (void*)mapped_eps_bearer_contexts->buffer, mapped_eps_bearer_contexts->length);
  ------------------
  |  |   53|    685|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    685|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 7006|       |
 7007|    685|    return size;
 7008|    707|}
ogs_nas_5gs_decode_maximum_number_of_supported_packet_filters:
 7036|    462|{
 7037|    462|    int size = sizeof(ogs_nas_maximum_number_of_supported_packet_filters_t);
 7038|       |
 7039|    462|    if (ogs_pkbuf_pull(pkbuf, size) == NULL) {
  ------------------
  |  Branch (7039:9): [True: 8, False: 454]
  ------------------
 7040|      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__) 
  |  |  ------------------
  ------------------
 7041|      8|       return -1;
 7042|      8|    }
 7043|       |
 7044|    454|    memcpy(maximum_number_of_supported_packet_filters, pkbuf->data - size, size);
 7045|       |
 7046|    454|    ogs_trace("  MAXIMUM_NUMBER_OF_SUPPORTED_PACKET_FILTERS - ");
  ------------------
  |  |   40|    454|#define ogs_trace(...) ogs_log_message(OGS_LOG_TRACE, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    454|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    454|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    454|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    454|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    454|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 7047|    454|    ogs_log_hexdump(OGS_LOG_TRACE, pkbuf->data - size, size);
  ------------------
  |  |   53|    454|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    454|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
 7048|       |
 7049|    454|    return size;
 7050|    462|}

ogs_nas_parse_s_nssai:
  190|    658|{
  191|    658|    ogs_uint24_t v;
  192|    658|    int pos = 0;
  193|    658|    bool sst, sd, mapped_hplmn_sst, mapped_hplmn_sd;
  194|       |
  195|    658|    ogs_assert(nas_s_nssai);
  ------------------
  |  |  113|    658|    do { \
  |  |  114|    658|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    658|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 658, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    658|        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|    658|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 658]
  |  |  ------------------
  ------------------
  196|    658|    ogs_assert(nas_s_nssai_ie);
  ------------------
  |  |  113|    658|    do { \
  |  |  114|    658|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    658|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 658, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    658|        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|    658|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 658]
  |  |  ------------------
  ------------------
  197|       |
  198|    658|    memset(nas_s_nssai_ie, 0, sizeof(*nas_s_nssai_ie));
  199|    658|    nas_s_nssai_ie->sd.v = OGS_S_NSSAI_NO_SD_VALUE;
  ------------------
  |  |  365|    658|#define OGS_S_NSSAI_NO_SD_VALUE     0xffffff
  ------------------
  200|    658|    nas_s_nssai_ie->mapped_hplmn_sd.v = OGS_S_NSSAI_NO_SD_VALUE;
  ------------------
  |  |  365|    658|#define OGS_S_NSSAI_NO_SD_VALUE     0xffffff
  ------------------
  201|       |
  202|    658|    if (nas_s_nssai->length == OGS_NAS_S_NSSAI_SST_LEN) {
  ------------------
  |  |   55|    658|#define OGS_NAS_S_NSSAI_SST_LEN 1
  ------------------
  |  Branch (202:9): [True: 60, False: 598]
  ------------------
  203|     60|        sst = true;
  204|     60|        sd = false;
  205|     60|        mapped_hplmn_sst = false;
  206|     60|        mapped_hplmn_sd = false;
  207|    598|    } else if (nas_s_nssai->length ==
  ------------------
  |  Branch (207:16): [True: 29, False: 569]
  ------------------
  208|    598|            OGS_NAS_S_NSSAI_SST_AND_MAPPED_HPLMN_SST_LEN) {
  ------------------
  |  |   56|    598|#define OGS_NAS_S_NSSAI_SST_AND_MAPPED_HPLMN_SST_LEN 2
  ------------------
  209|     29|        sst = true;
  210|     29|        sd = false;
  211|     29|        mapped_hplmn_sst = true;
  212|     29|        mapped_hplmn_sd = false;
  213|    569|    } else if (nas_s_nssai->length == OGS_NAS_S_NSSAI_SST_AND_SD) {
  ------------------
  |  |   57|    569|#define OGS_NAS_S_NSSAI_SST_AND_SD 4
  ------------------
  |  Branch (213:16): [True: 24, False: 545]
  ------------------
  214|     24|        sst = true;
  215|     24|        sd = true;
  216|     24|        mapped_hplmn_sst = false;
  217|     24|        mapped_hplmn_sd = false;
  218|    545|    } else if (nas_s_nssai->length ==
  ------------------
  |  Branch (218:16): [True: 22, False: 523]
  ------------------
  219|    545|            OGS_NAS_S_NSSAI_SST_SD_AND_MAPPED_HPLMN_SST_LEN) {
  ------------------
  |  |   58|    545|#define OGS_NAS_S_NSSAI_SST_SD_AND_MAPPED_HPLMN_SST_LEN 5
  ------------------
  220|     22|        sst = true;
  221|     22|        sd = true;
  222|     22|        mapped_hplmn_sst = true;
  223|     22|        mapped_hplmn_sd = false;
  224|    523|    } else if (nas_s_nssai->length ==
  ------------------
  |  Branch (224:16): [True: 29, False: 494]
  ------------------
  225|    523|            OGS_NAS_S_NSSAI_SST_SD_AND_MAPPED_HPLMN_SST_SD_LEN) {
  ------------------
  |  |   59|    523|#define OGS_NAS_S_NSSAI_SST_SD_AND_MAPPED_HPLMN_SST_SD_LEN 8
  ------------------
  226|     29|        sst = true;
  227|     29|        sd = true;
  228|     29|        mapped_hplmn_sst = true;
  229|     29|        mapped_hplmn_sd = true;
  230|    494|    } else {
  231|    494|        ogs_error("Cannot parse S-NSSAI [%d]", nas_s_nssai->length);
  ------------------
  |  |   36|    494|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    494|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    494|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    494|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    494|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    494|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  232|    494|        ogs_log_hexdump(OGS_ERROR, nas_s_nssai->buffer, nas_s_nssai->length);
  ------------------
  |  |   53|    494|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    494|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  233|    494|        return 0;
  234|    494|    }
  235|       |
  236|    164|    pos = 0;
  237|       |
  238|    164|    if (sst)
  ------------------
  |  Branch (238:9): [True: 164, False: 0]
  ------------------
  239|    164|        nas_s_nssai_ie->sst = nas_s_nssai->buffer[pos++];
  240|       |
  241|    164|    if (sd) {
  ------------------
  |  Branch (241:9): [True: 75, False: 89]
  ------------------
  242|     75|        memcpy(&v, nas_s_nssai->buffer+pos, 3);
  243|     75|        nas_s_nssai_ie->sd = ogs_htobe24(v);
  244|     75|        pos += 3;
  245|     75|    }
  246|       |
  247|    164|    if (mapped_hplmn_sst) {
  ------------------
  |  Branch (247:9): [True: 80, False: 84]
  ------------------
  248|     80|        nas_s_nssai_ie->mapped_hplmn_sst = nas_s_nssai->buffer[pos++];
  249|     80|        nas_s_nssai_ie->mapped_hplmn_sst_presence = true;
  250|     80|    }
  251|       |
  252|    164|    if (mapped_hplmn_sd) {
  ------------------
  |  Branch (252:9): [True: 29, False: 135]
  ------------------
  253|     29|        memcpy(&v, nas_s_nssai->buffer+pos, 3);
  254|     29|        nas_s_nssai_ie->mapped_hplmn_sd = ogs_htobe24(v);
  255|     29|        pos += 3;
  256|     29|    }
  257|       |
  258|    164|    return nas_s_nssai->length + 1;
  259|    658|}
ogs_nas_parse_nssai:
  284|    100|{
  285|    100|    int num_of_nas_s_nssai_ie = 0;
  286|    100|    int pos = 0, len;
  287|       |
  288|    100|    ogs_assert(nas_nssai);
  ------------------
  |  |  113|    100|    do { \
  |  |  114|    100|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    100|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 100, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    100|        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|    100|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 100]
  |  |  ------------------
  ------------------
  289|    100|    ogs_assert(nas_s_nssai_ie);
  ------------------
  |  |  113|    100|    do { \
  |  |  114|    100|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    100|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 100, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    100|        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|    100|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 100]
  |  |  ------------------
  ------------------
  290|       |
  291|    100|    if (!nas_nssai->length) {
  ------------------
  |  Branch (291:9): [True: 0, False: 100]
  ------------------
  292|      0|        ogs_error("No NSSAI [%p:%d]", nas_nssai->buffer, nas_nssai->length);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  293|      0|        return 0;
  294|      0|    }
  295|       |
  296|    758|    while (pos < nas_nssai->length &&
  ------------------
  |  Branch (296:12): [True: 729, False: 29]
  ------------------
  297|    729|            num_of_nas_s_nssai_ie < OGS_MAX_NUM_OF_SLICE) {
  ------------------
  |  |  138|    729|#define OGS_MAX_NUM_OF_SLICE            8
  ------------------
  |  Branch (297:13): [True: 658, False: 71]
  ------------------
  298|       |
  299|    658|        len = ogs_nas_parse_s_nssai(nas_s_nssai_ie + num_of_nas_s_nssai_ie,
  300|    658|                (ogs_nas_s_nssai_t *)(nas_nssai->buffer + pos));
  301|    658|        if (len == 0) {
  ------------------
  |  Branch (301:13): [True: 494, False: 164]
  ------------------
  302|    494|            ogs_error("Cannot parse NSSAI [%d]", nas_nssai->length);
  ------------------
  |  |   36|    494|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    494|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|    494|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|    494|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    494|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    494|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  303|    494|            ogs_log_hexdump(OGS_ERROR, nas_nssai->buffer, nas_nssai->length);
  ------------------
  |  |   53|    494|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   40|    494|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  ------------------
  ------------------
  304|    494|        }
  305|       |
  306|    658|        pos += len;
  307|       |
  308|    658|        num_of_nas_s_nssai_ie++;
  309|    658|    }
  310|       |
  311|    100|    return num_of_nas_s_nssai_ie;
  312|    100|}
ogs_nas_parse_rejected_nssai:
  355|     18|{
  356|     18|    int i, pos;
  357|       |
  358|     18|    ogs_assert(rejected_nssai);
  ------------------
  |  |  113|     18|    do { \
  |  |  114|     18|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|     18|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 18, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|     18|        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|     18|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 18]
  |  |  ------------------
  ------------------
  359|     18|    ogs_assert(rejected_s_nssai);
  ------------------
  |  |  113|     18|    do { \
  |  |  114|     18|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|     18|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 18, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|     18|        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|     18|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 18]
  |  |  ------------------
  ------------------
  360|       |
  361|     18|    if (!rejected_nssai->length) {
  ------------------
  |  Branch (361:9): [True: 0, False: 18]
  ------------------
  362|      0|        ogs_error("No NSSAI [%p:%d]",
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  363|      0|                rejected_nssai->buffer, rejected_nssai->length);
  364|      0|        return 0;
  365|      0|    }
  366|       |
  367|     18|    i = 0;
  368|     18|    pos = 0;
  369|    102|    while (pos < rejected_nssai->length && i < OGS_MAX_NUM_OF_SLICE) {
  ------------------
  |  |  138|     87|#define OGS_MAX_NUM_OF_SLICE            8
  ------------------
  |  Branch (369:12): [True: 87, False: 15]
  |  Branch (369:44): [True: 84, False: 3]
  ------------------
  370|       |
  371|     84|        ogs_assert((pos + 1) <= rejected_nssai->length);
  ------------------
  |  |  113|     84|    do { \
  |  |  114|     84|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|     84|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 84, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|     84|        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|     84|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 84]
  |  |  ------------------
  ------------------
  372|     84|        memcpy(rejected_s_nssai + i, rejected_nssai->buffer + pos, 1);
  373|     84|        pos += 1;
  374|       |
  375|     84|        ogs_assert(
  ------------------
  |  |  113|     84|    do { \
  |  |  114|     84|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    115|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 84, False: 0]
  |  |  |  |  |  Branch (54:44): [True: 53, False: 31]
  |  |  |  |  |  Branch (54:44): [True: 31, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|     84|        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|     84|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 84]
  |  |  ------------------
  ------------------
  376|     84|            rejected_s_nssai[i].length_of_rejected_s_nssai == 1 ||
  377|     84|            rejected_s_nssai[i].length_of_rejected_s_nssai == 4);
  378|       |
  379|     84|        if (rejected_s_nssai[i].length_of_rejected_s_nssai == 1 ||
  ------------------
  |  Branch (379:13): [True: 53, False: 31]
  ------------------
  380|     84|            rejected_s_nssai[i].length_of_rejected_s_nssai == 4) {
  ------------------
  |  Branch (380:13): [True: 31, False: 0]
  ------------------
  381|     84|            ogs_assert((pos + 1) <= rejected_nssai->length);
  ------------------
  |  |  113|     84|    do { \
  |  |  114|     84|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|     84|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 84, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|     84|        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|     84|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 84]
  |  |  ------------------
  ------------------
  382|     84|            rejected_s_nssai[i].sst = rejected_nssai->buffer[pos];
  383|     84|            pos += 1;
  384|     84|        }
  385|       |
  386|     84|        if (rejected_s_nssai[i].length_of_rejected_s_nssai == 4) {
  ------------------
  |  Branch (386:13): [True: 31, False: 53]
  ------------------
  387|     31|            ogs_uint24_t v;
  388|       |
  389|     31|            ogs_assert((pos + 3) <= rejected_nssai->length);
  ------------------
  |  |  113|     31|    do { \
  |  |  114|     31|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|     31|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 31, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|     31|        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|     31|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 31]
  |  |  ------------------
  ------------------
  390|     31|            memcpy(&v, rejected_nssai->buffer + pos, 3);
  391|     31|            rejected_s_nssai[i].sd = ogs_be24toh(v);
  392|     31|            pos += 3;
  393|     31|        }
  394|       |
  395|     84|        i++;
  396|     84|    }
  397|       |
  398|     18|    return i;
  399|     18|}
ogs_nas_parse_qos_flow_descriptions:
  483|    104|{
  484|    104|    ogs_nas_qos_flow_description_t *first = description;
  485|       |
  486|    104|    char *buffer;
  487|    104|    uint16_t length, size = 0;
  488|    104|    int i;
  489|       |
  490|    104|    ogs_assert(description);
  ------------------
  |  |  113|    104|    do { \
  |  |  114|    104|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    104|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 104, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    104|        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|    104|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 104]
  |  |  ------------------
  ------------------
  491|    104|    ogs_assert(descriptions);
  ------------------
  |  |  113|    104|    do { \
  |  |  114|    104|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    104|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 104, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    104|        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|    104|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 104]
  |  |  ------------------
  ------------------
  492|       |
  493|    104|    if (descriptions->length == 0) {
  ------------------
  |  Branch (493:9): [True: 0, False: 104]
  ------------------
  494|      0|        ogs_error("Length is 0");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  495|      0|        goto cleanup;
  496|      0|    }
  497|    104|    if (descriptions->buffer == NULL) {
  ------------------
  |  Branch (497:9): [True: 0, False: 104]
  ------------------
  498|      0|        ogs_error("Buffer is NULL");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  499|      0|        goto cleanup;
  500|      0|    }
  501|       |
  502|    104|    length = descriptions->length;
  503|    104|    buffer = descriptions->buffer;
  504|       |
  505|    104|    size = 0;
  506|    270|    while (size < length) {
  ------------------
  |  Branch (506:12): [True: 264, False: 6]
  ------------------
  507|    264|        if ((description - first) >=
  ------------------
  |  Branch (507:13): [True: 4, False: 260]
  ------------------
  508|    264|                OGS_NAS_MAX_NUM_OF_QOS_FLOW_DESCRIPTION) {
  ------------------
  |  | 1097|    264|#define OGS_NAS_MAX_NUM_OF_QOS_FLOW_DESCRIPTION 8
  ------------------
  509|      4|            ogs_error("Too many QoS flow descriptions");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  510|      4|            goto cleanup;
  511|      4|        }
  512|       |
  513|    260|        memset(description, 0, sizeof(*description));
  514|       |
  515|    260|        if (size+3 > length) {
  ------------------
  |  Branch (515:13): [True: 9, False: 251]
  ------------------
  516|      9|            ogs_error("Overflow : size[%d] length[%d]", size, length);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  517|      9|            goto cleanup;
  518|      9|        }
  519|    251|        memcpy(description, buffer+size, 3);
  520|    251|        size += 3;
  521|       |
  522|    251|        if (description->num_of_parameter >
  ------------------
  |  Branch (522:13): [True: 19, False: 232]
  ------------------
  523|    251|                OGS_NAS_MAX_NUM_OF_QOS_FLOW_PARAMETER) {
  ------------------
  |  | 1098|    251|#define OGS_NAS_MAX_NUM_OF_QOS_FLOW_PARAMETER 8
  ------------------
  524|     19|            ogs_error("Too many QoS flow parameters [%d]",
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  525|     19|                    description->num_of_parameter);
  526|     19|            goto cleanup;
  527|     19|        }
  528|       |
  529|    511|        for (i = 0; i < description->num_of_parameter; i++) {
  ------------------
  |  Branch (529:21): [True: 345, False: 166]
  ------------------
  530|    345|            if (size+sizeof(description->param[i].identifier) > length) {
  ------------------
  |  Branch (530:17): [True: 8, False: 337]
  ------------------
  531|      8|                ogs_error("Overflow : size[%d] length[%d]", size, length);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  532|      8|                goto cleanup;
  533|      8|            }
  534|    337|            memcpy(&description->param[i].identifier, buffer+size,
  535|    337|                    sizeof(description->param[i].identifier));
  536|    337|            size += sizeof(description->param[i].identifier);
  537|       |
  538|    337|            if (size+sizeof(description->param[i].len) > length) {
  ------------------
  |  Branch (538:17): [True: 3, False: 334]
  ------------------
  539|      3|                ogs_error("Overflow : size[%d] length[%d]", size, length);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  540|      3|                goto cleanup;
  541|      3|            }
  542|    334|            memcpy(&description->param[i].len, buffer+size,
  543|    334|                    sizeof(description->param[i].len));
  544|    334|            size += sizeof(description->param[i].len);
  545|       |
  546|    334|            switch(description->param[i].identifier) {
  547|    121|            case OGS_NAX_QOS_FLOW_PARAMETER_ID_5QI:
  ------------------
  |  | 1082|    121|#define OGS_NAX_QOS_FLOW_PARAMETER_ID_5QI                   1
  ------------------
  |  Branch (547:13): [True: 121, False: 213]
  ------------------
  548|    121|                if (description->param[i].len != 1) {
  ------------------
  |  Branch (548:21): [True: 5, False: 116]
  ------------------
  549|      5|                    ogs_error("Invalid len[%d]", description->param[i].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__) 
  |  |  ------------------
  ------------------
  550|      5|                    goto cleanup;
  551|      5|                }
  552|    116|                if (size+description->param[i].len > length) {
  ------------------
  |  Branch (552:21): [True: 3, False: 113]
  ------------------
  553|      3|                    ogs_error("Overflow: len[%d] length[%d]",
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  554|      3|                            description->param[i].len, length);
  555|      3|                    goto cleanup;
  556|      3|                }
  557|    113|                memcpy(&description->param[i].qos_index,
  558|    113|                        buffer+size, description->param[i].len);
  559|    113|                size += description->param[i].len;
  560|    113|                break;
  561|       |
  562|     22|            case OGS_NAX_QOS_FLOW_PARAMETER_ID_GFBR_UPLINK:
  ------------------
  |  | 1083|     22|#define OGS_NAX_QOS_FLOW_PARAMETER_ID_GFBR_UPLINK           2
  ------------------
  |  Branch (562:13): [True: 22, False: 312]
  ------------------
  563|    167|            case OGS_NAX_QOS_FLOW_PARAMETER_ID_GFBR_DOWNLINK:
  ------------------
  |  | 1084|    167|#define OGS_NAX_QOS_FLOW_PARAMETER_ID_GFBR_DOWNLINK         3
  ------------------
  |  Branch (563:13): [True: 145, False: 189]
  ------------------
  564|    179|            case OGS_NAX_QOS_FLOW_PARAMETER_ID_MFBR_UPLINK:
  ------------------
  |  | 1085|    179|#define OGS_NAX_QOS_FLOW_PARAMETER_ID_MFBR_UPLINK           4
  ------------------
  |  Branch (564:13): [True: 12, False: 322]
  ------------------
  565|    201|            case OGS_NAX_QOS_FLOW_PARAMETER_ID_MFBR_DOWNLINK:
  ------------------
  |  | 1086|    201|#define OGS_NAX_QOS_FLOW_PARAMETER_ID_MFBR_DOWNLINK         5
  ------------------
  |  Branch (565:13): [True: 22, False: 312]
  ------------------
  566|    201|                if (description->param[i].len != 3) {
  ------------------
  |  Branch (566:21): [True: 19, False: 182]
  ------------------
  567|     19|                    ogs_error("Invalid len[%d]", description->param[i].len);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  568|     19|                    goto cleanup;
  569|     19|                }
  570|    182|                if (size+description->param[i].len > length) {
  ------------------
  |  Branch (570:21): [True: 3, False: 179]
  ------------------
  571|      3|                    ogs_error("Overflow: len[%d] length[%d]",
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  572|      3|                            description->param[i].len, length);
  573|      3|                    goto cleanup;
  574|      3|                }
  575|    179|                memcpy(&description->param[i].br,
  576|    179|                        buffer+size, description->param[i].len);
  577|    179|                description->param[i].br.value =
  578|    179|                    be16toh(description->param[i].br.value);
  579|    179|                if (!ogs_nas_bitrate_unit_is_valid(
  ------------------
  |  Branch (579:21): [True: 13, False: 166]
  ------------------
  580|    179|                        &description->param[i].br)) {
  581|     13|                    ogs_error("Invalid QoS flow bitrate unit [%d]",
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  582|     13|                            description->param[i].br.unit);
  583|     13|                    goto cleanup;
  584|     13|                }
  585|    166|                size += description->param[i].len;
  586|    166|                break;
  587|     12|            default:
  ------------------
  |  Branch (587:13): [True: 12, False: 322]
  ------------------
  588|     12|                ogs_error("Unknown qos_flow parameter identifier [%d]",
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  589|     12|                        description->param[i].identifier);
  590|     12|                goto cleanup;
  591|    334|            }
  592|    334|        }
  593|       |
  594|    166|        description++;
  595|    166|    }
  596|       |
  597|      6|    return (int)(description-first);
  598|       |
  599|     98|cleanup:
  600|     98|    return 0;
  601|    104|}
ogs_nas_parse_qos_rules:
 1019|    282|{
 1020|    282|    ogs_nas_qos_rule_t *first = rule;
 1021|       |
 1022|    282|    uint8_t *buffer;
 1023|    282|    uint16_t length, size;
 1024|    282|    int rc;
 1025|       |
 1026|    282|    ogs_assert(rule);
  ------------------
  |  |  113|    282|    do { \
  |  |  114|    282|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    282|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 282, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    282|        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|    282|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 282]
  |  |  ------------------
  ------------------
 1027|    282|    ogs_assert(rules);
  ------------------
  |  |  113|    282|    do { \
  |  |  114|    282|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    282|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 282, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    282|        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|    282|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 282]
  |  |  ------------------
  ------------------
 1028|       |
 1029|    282|    if (rules->length == 0) {
  ------------------
  |  Branch (1029:9): [True: 0, False: 282]
  ------------------
 1030|      0|        ogs_error("Length is 0");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1031|      0|        goto cleanup;
 1032|      0|    }
 1033|    282|    if (rules->buffer == NULL) {
  ------------------
  |  Branch (1033:9): [True: 0, False: 282]
  ------------------
 1034|      0|        ogs_error("Buffer is NULL");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1035|      0|        goto cleanup;
 1036|      0|    }
 1037|       |
 1038|    282|    length = rules->length;
 1039|    282|    buffer = rules->buffer;
 1040|    282|    size = 0;
 1041|       |
 1042|    411|    while (size < length) {
  ------------------
  |  Branch (1042:12): [True: 398, False: 13]
  ------------------
 1043|    398|        bool have_octet_m1, have_octet_m2;
 1044|       |
 1045|    398|        if ((rule - first) >= OGS_NAS_MAX_NUM_OF_QOS_RULE) {
  ------------------
  |  | 1145|    398|#define OGS_NAS_MAX_NUM_OF_QOS_RULE 8
  ------------------
  |  Branch (1045:13): [True: 5, False: 393]
  ------------------
 1046|      5|            ogs_error("Too many QoS rules");
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1047|      5|            goto cleanup;
 1048|      5|        }
 1049|       |
 1050|    393|        memset(rule, 0, sizeof(*rule));
 1051|       |
 1052|    393|        if (size+sizeof(rule->identifier) > length) {
  ------------------
  |  Branch (1052:13): [True: 0, False: 393]
  ------------------
 1053|      0|            ogs_error("Overflow : size[%d] length[%d]", size, length);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1054|      0|            goto cleanup;
 1055|      0|        }
 1056|    393|        memcpy(&rule->identifier, buffer+size, sizeof(rule->identifier));
 1057|    393|        size += sizeof(rule->identifier);
 1058|       |
 1059|    393|        if (size+sizeof(rule->length) > length) {
  ------------------
  |  Branch (1059:13): [True: 7, False: 386]
  ------------------
 1060|      7|            ogs_error("RuleId[%u] Overflow: size[%d] length[%d]", rule->identifier, size, length);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1061|      7|            goto cleanup;
 1062|      7|        }
 1063|    386|        memcpy(&rule->length, buffer+size, sizeof(rule->length));
 1064|    386|        rule->length = be16toh(rule->length);
 1065|    386|        size += sizeof(rule->length);
 1066|       |
 1067|    386|        if (rule->length == 0) {
  ------------------
  |  Branch (1067:13): [True: 3, False: 383]
  ------------------
 1068|      3|            ogs_error("RuleId[%u] Wrong 'Length of QoS rule' (0)", rule->identifier);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1069|      3|            goto cleanup;
 1070|      3|        }
 1071|       |
 1072|       |        /* 'Length of QoS rule' is attacker-controlled and is used below as the
 1073|       |         * parsing bound for the packet filter list. Without this check a rule
 1074|       |         * declaring a length larger than the remaining buffer makes
 1075|       |         * parse_qos_rules_packet_filter_list() read past the received message.
 1076|       |         *
 1077|       |         * The length counts every octet after the length field itself, i.e.
 1078|       |         * the flags octet, the packet filter list, and the optional
 1079|       |         * precedence / QFI octets. */
 1080|    383|        if (size + rule->length > length) {
  ------------------
  |  Branch (1080:13): [True: 38, False: 345]
  ------------------
 1081|     38|            ogs_error("RuleId[%u] 'Length of QoS rule' (%u) exceeds buffer: "
  ------------------
  |  |   36|     38|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     38|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     38|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     38|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     38|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     38|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1082|     38|                    "size[%d] length[%d]",
 1083|     38|                    rule->identifier, rule->length, size, length);
 1084|     38|            goto cleanup;
 1085|     38|        }
 1086|       |
 1087|    345|        if (size+sizeof(rule->flags) > length) {
  ------------------
  |  Branch (1087:13): [True: 0, False: 345]
  ------------------
 1088|      0|            ogs_error("RuleId[%u] Overflow: size[%d] length[%d]", rule->identifier, size, length);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1089|      0|            goto cleanup;
 1090|      0|        }
 1091|    345|        memcpy(&rule->flags, buffer+size, sizeof(rule->flags));
 1092|    345|        size += sizeof(rule->flags);
 1093|       |
 1094|    345|        if (rule->code == 0 || rule->code == 7) { /* Reserved */
  ------------------
  |  Branch (1094:13): [True: 8, False: 337]
  |  Branch (1094:32): [True: 1, False: 336]
  ------------------
 1095|      9|            ogs_error("RuleId[%u] Reserved Rule Code [%d]", rule->identifier, rule->code);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1096|      9|            goto cleanup;
 1097|      9|        }
 1098|       |
 1099|    336|        if (rule->code == OGS_NAS_QOS_CODE_DELETE_EXISTING_QOS_RULE ||
  ------------------
  |  | 1153|    672|#define OGS_NAS_QOS_CODE_DELETE_EXISTING_QOS_RULE 2
  ------------------
  |  Branch (1099:13): [True: 25, False: 311]
  ------------------
 1100|    311|            rule->code == OGS_NAS_QOS_CODE_MODIFY_EXISTING_QOS_RULE_WITHOUT_MODIFYING_PACKET_FILTERS) {
  ------------------
  |  | 1157|    311|#define OGS_NAS_QOS_CODE_MODIFY_EXISTING_QOS_RULE_WITHOUT_MODIFYING_PACKET_FILTERS 6
  ------------------
  |  Branch (1100:13): [True: 27, False: 284]
  ------------------
 1101|     52|            if (rule->num_of_packet_filter != 0) {
  ------------------
  |  Branch (1101:17): [True: 1, False: 51]
  ------------------
 1102|      1|                ogs_error("RuleId[%u] Invalid QoS rule code[%d] and number of packet filter[%d]",
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1103|      1|                          rule->identifier, rule->code, rule->num_of_packet_filter);
 1104|      1|                goto cleanup;
 1105|      1|            }
 1106|     52|        }
 1107|       |
 1108|    335|        rc = parse_qos_rules_packet_filter_list(rule, buffer + size, rule->length - 1);
 1109|    335|        if (rc < 0)
  ------------------
  |  Branch (1109:13): [True: 183, False: 152]
  ------------------
 1110|    183|            goto cleanup;
 1111|    152|        size += rc;
 1112|       |
 1113|    152|        if (rule->length == (sizeof(rule->flags) + rc)) {
  ------------------
  |  Branch (1113:13): [True: 64, False: 88]
  ------------------
 1114|     64|            have_octet_m1 = false;
 1115|     64|            have_octet_m2 = false;
 1116|     88|        } else if (rule->length == (sizeof(rule->flags) + rc + sizeof(rule->precedence))) {
  ------------------
  |  Branch (1116:20): [True: 28, False: 60]
  ------------------
 1117|     28|            have_octet_m1 = true;
 1118|     28|            have_octet_m2 = false;
 1119|     60|        } else if (rule->length == (sizeof(rule->flags) + rc + sizeof(rule->precedence) + sizeof(rule->flow.flags))) {
  ------------------
  |  Branch (1119:20): [True: 43, False: 17]
  ------------------
 1120|     43|            have_octet_m1 = true;
 1121|     43|            have_octet_m2 = true;
 1122|     43|        } else {
 1123|     17|                ogs_error("RuleId[%u] 'Length of QoS rule' (%d) doesn't match parsed length (%zu..%zu)",
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1124|     17|                          rule->identifier, rule->length,
 1125|     17|                          sizeof(rule->flags) + rc,
 1126|     17|                          sizeof(rule->flags) + rc + sizeof(rule->precedence) + sizeof(rule->flow.flags));
 1127|     17|                goto cleanup;
 1128|     17|        }
 1129|       |
 1130|    135|        if (have_octet_m1) {
  ------------------
  |  Branch (1130:13): [True: 71, False: 64]
  ------------------
 1131|     71|            if ((size + sizeof(rule->precedence)) > length) {
  ------------------
  |  Branch (1131:17): [True: 0, False: 71]
  ------------------
 1132|      0|                ogs_error("RuleId[%u] Overflow m+1: size[%d] length[%d]", rule->identifier, size, length);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1133|      0|                goto cleanup;
 1134|      0|            }
 1135|     71|            memcpy(&rule->precedence, buffer+size, sizeof(rule->precedence));
 1136|     71|            size += sizeof(rule->precedence);
 1137|       |            /* 'For the "delete existing QoS rule" operation, the QoS rule precedence value field shall not
 1138|       |             * be included.'
 1139|       |             * This implicitly means also m+2 shall neither be present, following Table 9.11.4.13. "NOTE 1". */
 1140|     71|            if (rule->code == OGS_NAS_QOS_CODE_DELETE_EXISTING_QOS_RULE) {
  ------------------
  |  | 1153|     71|#define OGS_NAS_QOS_CODE_DELETE_EXISTING_QOS_RULE 2
  ------------------
  |  Branch (1140:17): [True: 4, False: 67]
  ------------------
 1141|      4|                ogs_error("RuleId[%u] Invalid QoS rule code[%d] and presence of Precedence octet [%u]",
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1142|      4|                          rule->identifier, rule->code, rule->precedence);
 1143|      4|                goto cleanup;
 1144|      4|            }
 1145|       |
 1146|     67|            if (have_octet_m2) {
  ------------------
  |  Branch (1146:17): [True: 43, False: 24]
  ------------------
 1147|     43|                if ((size + sizeof(rule->flow.flags)) > length) {
  ------------------
  |  Branch (1147:21): [True: 0, False: 43]
  ------------------
 1148|      0|                    ogs_error("RuleId[%u] Overflow m+2: size[%d] length[%d]", rule->identifier, size, length);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1149|      0|                    goto cleanup;
 1150|      0|                }
 1151|     43|                memcpy(&rule->flow.flags, buffer+size, sizeof(rule->flow.flags));
 1152|     43|                size += sizeof(rule->flow.flags);
 1153|       |                /* 'For the "delete existing QoS rule" operation, the QoS rule precedence value field shall not
 1154|       |                * be included.'
 1155|       |                * This implicitly means also m+2 shall neither be present, following Table 9.11.4.13. "NOTE 1". */
 1156|     43|                if (rule->code == OGS_NAS_QOS_CODE_DELETE_EXISTING_QOS_RULE) {
  ------------------
  |  | 1153|     43|#define OGS_NAS_QOS_CODE_DELETE_EXISTING_QOS_RULE 2
  ------------------
  |  Branch (1156:21): [True: 0, False: 43]
  ------------------
 1157|      0|                    ogs_error("RuleId[%u] Invalid QoS rule code[%d] and presence of QFI octet [%u]",
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
 1158|      0|                            rule->identifier, rule->code, rule->flow.flags);
 1159|      0|                    goto cleanup;
 1160|      0|                }
 1161|     43|            } else if (rule->code == OGS_NAS_QOS_CODE_CREATE_NEW_QOS_RULE) {
  ------------------
  |  | 1152|     24|#define OGS_NAS_QOS_CODE_CREATE_NEW_QOS_RULE 1
  ------------------
  |  Branch (1161:24): [True: 1, False: 23]
  ------------------
 1162|       |                /* 'For the "create new QoS rule" operation, the QoS flow identifier value field shall
 1163|       |                 * be included.' */
 1164|      1|                ogs_error("RuleId[%u] Invalid QoS rule code[%d] without QFI octet",
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1165|      1|                          rule->identifier, rule->code);
 1166|      1|                goto cleanup;
 1167|      1|            }
 1168|     67|        } else if (rule->code == OGS_NAS_QOS_CODE_CREATE_NEW_QOS_RULE) {
  ------------------
  |  | 1152|     64|#define OGS_NAS_QOS_CODE_CREATE_NEW_QOS_RULE 1
  ------------------
  |  Branch (1168:20): [True: 1, False: 63]
  ------------------
 1169|       |                /* 'For the "create new QoS rule" operation, the QoS rule precedence value field shall
 1170|       |                 * be included.' */
 1171|      1|                ogs_error("RuleId[%u] Invalid QoS rule code[%d] without Precedence octet",
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|      1|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
 1172|      1|                          rule->identifier, rule->code);
 1173|      1|                goto cleanup;
 1174|      1|        }
 1175|       |
 1176|    129|        rule++;
 1177|    129|    }
 1178|       |
 1179|     13|    return (int)(rule-first);
 1180|       |
 1181|    269|cleanup:
 1182|    269|    return 0;
 1183|    282|}
types.c:parse_qos_rules_packet_filter_list:
  830|    335|{
  831|    335|    uint16_t size = 0;
  832|    335|    int i, j, len = 0;
  833|       |
  834|       |/*
  835|       | * Check that 'needed' more bytes can be read into the current packet filter
  836|       | * content without exceeding either the declared content length of this PF
  837|       | * (rule->pf[i].content.length) or the overall buffer length.
  838|       | *
  839|       | * Both bounds are enforced. Previously only the buffer length was checked,
  840|       | * which allowed a malformed PF declaring content.length=N to read past N
  841|       | * into the next PF's bytes as long as the overall buffer was large enough.
  842|       | */
  843|    335|#define CHECK_PF_CONTENT_ROOM(needed) \
  844|    335|    do { \
  845|    335|        if (len + (int)(needed) > rule->pf[i].content.length || \
  846|    335|            size + len + (needed) > length) { \
  847|    335|            ogs_error("RuleId[%u] PF[%d] Overflow: " \
  848|    335|                    "size[%d] len[%d] need[%d] " \
  849|    335|                    "content[%d] length[%d]", \
  850|    335|                    rule->identifier, i, size, len, (int)(needed), \
  851|    335|                    rule->pf[i].content.length, length); \
  852|    335|            goto cleanup; \
  853|    335|        } \
  854|    335|    } while (0)
  855|       |
  856|    335|    ogs_assert(rule);
  ------------------
  |  |  113|    335|    do { \
  |  |  114|    335|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    335|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 335, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    335|        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|    335|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 335]
  |  |  ------------------
  ------------------
  857|    335|    ogs_assert(buffer);
  ------------------
  |  |  113|    335|    do { \
  |  |  114|    335|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    335|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 335, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    335|        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|    335|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 335]
  |  |  ------------------
  ------------------
  858|       |
  859|    335|    if (rule->num_of_packet_filter > OGS_MAX_NUM_OF_FLOW_IN_NAS) {
  ------------------
  |  |   72|    335|#define OGS_MAX_NUM_OF_FLOW_IN_NAS      OGS_MAX_NUM_OF_FLOW_IN_PDR
  |  |  ------------------
  |  |  |  |   70|    335|#define OGS_MAX_NUM_OF_FLOW_IN_PDR      15
  |  |  ------------------
  ------------------
  |  Branch (859:9): [True: 0, False: 335]
  ------------------
  860|      0|        ogs_error("RuleId[%u] Too many packet filters [%d]",
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  861|      0|                rule->identifier, rule->num_of_packet_filter);
  862|      0|        goto cleanup;
  863|      0|    }
  864|       |
  865|    699|    for (i = 0; i < rule->num_of_packet_filter; i++) {
  ------------------
  |  Branch (865:17): [True: 547, False: 152]
  ------------------
  866|    547|        if (size+sizeof(rule->pf[i].flags) > length) {
  ------------------
  |  Branch (866:13): [True: 8, False: 539]
  ------------------
  867|      8|            ogs_error("PF[%d] Overflow: size[%d] length[%d]", i, size, length);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  868|      8|            goto cleanup;
  869|      8|        }
  870|    539|        memcpy(&rule->pf[i].flags, buffer+size, sizeof(rule->pf[i].flags));
  871|    539|        size += sizeof(rule->pf[i].flags);
  872|       |
  873|    539|        if (rule->code ==
  ------------------
  |  Branch (873:13): [True: 289, False: 250]
  ------------------
  874|    539|            OGS_NAS_QOS_CODE_MODIFY_EXISTING_QOS_RULE_AND_DELETE_PACKET_FILTERS)
  ------------------
  |  | 1156|    539|#define OGS_NAS_QOS_CODE_MODIFY_EXISTING_QOS_RULE_AND_DELETE_PACKET_FILTERS 5
  ------------------
  875|    289|            continue;
  876|       |
  877|    250|        if (size+sizeof(rule->pf[i].content.length) > length) {
  ------------------
  |  Branch (877:13): [True: 5, False: 245]
  ------------------
  878|      5|            ogs_error("PF[%d] Overflow: size[%d] length[%d]", i, size, length);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  879|      5|            goto cleanup;
  880|      5|        }
  881|    245|        memcpy(&rule->pf[i].content.length, buffer+size,
  882|    245|                sizeof(rule->pf[i].content.length));
  883|    245|        size += sizeof(rule->pf[i].content.length);
  884|       |
  885|    245|        if (rule->pf[i].content.length == 0) {
  ------------------
  |  Branch (885:13): [True: 3, False: 242]
  ------------------
  886|      3|            ogs_error("RuleId[%u] PF[%d] Empty packet filter content",
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  887|      3|                    rule->identifier, i);
  888|      3|            goto cleanup;
  889|      3|        }
  890|       |
  891|    242|        j = 0;
  892|    242|        len = 0;
  893|  1.08k|        while(len < rule->pf[i].content.length) {
  ------------------
  |  Branch (893:15): [True: 1.01k, False: 75]
  ------------------
  894|  1.01k|            if (j >= OGS_NAS_MAX_NUM_OF_PACKET_FILTER_COMPONENT) {
  ------------------
  |  | 1146|  1.01k|#define OGS_NAS_MAX_NUM_OF_PACKET_FILTER_COMPONENT 16
  ------------------
  |  Branch (894:17): [True: 15, False: 996]
  ------------------
  895|     15|                ogs_error("RuleId[%u] PF[%d] Too many packet filter "
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  896|     15|                        "components", rule->identifier, i);
  897|     15|                goto cleanup;
  898|     15|            }
  899|       |
  900|    996|            CHECK_PF_CONTENT_ROOM(
  ------------------
  |  |  844|    996|    do { \
  |  |  845|    996|        if (len + (int)(needed) > rule->pf[i].content.length || \
  |  |  ------------------
  |  |  |  Branch (845:13): [True: 0, False: 996]
  |  |  ------------------
  |  |  846|    996|            size + len + (needed) > length) { \
  |  |  ------------------
  |  |  |  Branch (846:13): [True: 11, False: 985]
  |  |  ------------------
  |  |  847|     11|            ogs_error("RuleId[%u] PF[%d] Overflow: " \
  |  |  ------------------
  |  |  |  |   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__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  848|     11|                    "size[%d] len[%d] need[%d] " \
  |  |  849|     11|                    "content[%d] length[%d]", \
  |  |  850|     11|                    rule->identifier, i, size, len, (int)(needed), \
  |  |  851|     11|                    rule->pf[i].content.length, length); \
  |  |  852|     11|            goto cleanup; \
  |  |  853|     11|        } \
  |  |  854|    996|    } while (0)
  |  |  ------------------
  |  |  |  Branch (854:14): [Folded, False: 985]
  |  |  ------------------
  ------------------
  901|    996|                    sizeof(rule->pf[i].content.component[j].type));
  902|    985|            memcpy(&rule->pf[i].content.component[j].type,
  903|    985|                    buffer+size+len,
  904|    985|                    sizeof(rule->pf[i].content.component[j].type));
  905|    985|            len += sizeof(rule->pf[i].content.component[j].type);
  906|    985|            switch(rule->pf[i].content.component[j].type) {
  907|    170|            case OGS_PACKET_FILTER_MATCH_ALL:
  ------------------
  |  |   92|    170|#define OGS_PACKET_FILTER_MATCH_ALL 1
  ------------------
  |  Branch (907:13): [True: 170, False: 815]
  ------------------
  908|    170|                break;
  909|     96|            case OGS_PACKET_FILTER_PROTOCOL_IDENTIFIER_NEXT_HEADER_TYPE:
  ------------------
  |  |   93|     96|#define OGS_PACKET_FILTER_PROTOCOL_IDENTIFIER_NEXT_HEADER_TYPE 48
  ------------------
  |  Branch (909:13): [True: 96, False: 889]
  ------------------
  910|     96|                CHECK_PF_CONTENT_ROOM(
  ------------------
  |  |  844|     96|    do { \
  |  |  845|     96|        if (len + (int)(needed) > rule->pf[i].content.length || \
  |  |  ------------------
  |  |  |  Branch (845:13): [True: 1, False: 95]
  |  |  ------------------
  |  |  846|     96|            size + len + (needed) > length) { \
  |  |  ------------------
  |  |  |  Branch (846:13): [True: 3, False: 92]
  |  |  ------------------
  |  |  847|      4|            ogs_error("RuleId[%u] PF[%d] Overflow: " \
  |  |  ------------------
  |  |  |  |   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__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  848|      4|                    "size[%d] len[%d] need[%d] " \
  |  |  849|      4|                    "content[%d] length[%d]", \
  |  |  850|      4|                    rule->identifier, i, size, len, (int)(needed), \
  |  |  851|      4|                    rule->pf[i].content.length, length); \
  |  |  852|      4|            goto cleanup; \
  |  |  853|      4|        } \
  |  |  854|     96|    } while (0)
  |  |  ------------------
  |  |  |  Branch (854:14): [Folded, False: 92]
  |  |  ------------------
  ------------------
  911|     96|                        sizeof(rule->pf[i].content.component[j].proto));
  912|     92|                memcpy(&rule->pf[i].content.component[j].proto,
  913|     92|                    buffer+size+len,
  914|     92|                    sizeof(rule->pf[i].content.component[j].proto));
  915|     92|                len += sizeof(rule->pf[i].content.component[j].proto);
  916|     92|                break;
  917|     93|            case OGS_PACKET_FILTER_IPV4_REMOTE_ADDRESS_TYPE:
  ------------------
  |  |   94|     93|#define OGS_PACKET_FILTER_IPV4_REMOTE_ADDRESS_TYPE 16
  ------------------
  |  Branch (917:13): [True: 93, False: 892]
  ------------------
  918|    155|            case OGS_PACKET_FILTER_IPV4_LOCAL_ADDRESS_TYPE:
  ------------------
  |  |   95|    155|#define OGS_PACKET_FILTER_IPV4_LOCAL_ADDRESS_TYPE 17
  ------------------
  |  Branch (918:13): [True: 62, False: 923]
  ------------------
  919|    155|                CHECK_PF_CONTENT_ROOM(
  ------------------
  |  |  844|    155|    do { \
  |  |  845|    155|        if (len + (int)(needed) > rule->pf[i].content.length || \
  |  |  ------------------
  |  |  |  Branch (845:13): [True: 2, False: 153]
  |  |  ------------------
  |  |  846|    155|            size + len + (needed) > length) { \
  |  |  ------------------
  |  |  |  Branch (846:13): [True: 7, False: 146]
  |  |  ------------------
  |  |  847|      9|            ogs_error("RuleId[%u] PF[%d] Overflow: " \
  |  |  ------------------
  |  |  |  |   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__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  848|      9|                    "size[%d] len[%d] need[%d] " \
  |  |  849|      9|                    "content[%d] length[%d]", \
  |  |  850|      9|                    rule->identifier, i, size, len, (int)(needed), \
  |  |  851|      9|                    rule->pf[i].content.length, length); \
  |  |  852|      9|            goto cleanup; \
  |  |  853|      9|        } \
  |  |  854|    155|    } while (0)
  |  |  ------------------
  |  |  |  Branch (854:14): [Folded, False: 146]
  |  |  ------------------
  ------------------
  920|    155|                        sizeof(rule->pf[i].content.component[j].ipv4.addr));
  921|    146|                memcpy(&rule->pf[i].content.component[j].ipv4.addr,
  922|    146|                    buffer+size+len,
  923|    146|                    sizeof(rule->pf[i].content.component[j].ipv4.addr));
  924|    146|                len += sizeof(rule->pf[i].content.component[j].ipv4.addr);
  925|       |
  926|    146|                CHECK_PF_CONTENT_ROOM(
  ------------------
  |  |  844|    146|    do { \
  |  |  845|    146|        if (len + (int)(needed) > rule->pf[i].content.length || \
  |  |  ------------------
  |  |  |  Branch (845:13): [True: 3, False: 143]
  |  |  ------------------
  |  |  846|    146|            size + len + (needed) > length) { \
  |  |  ------------------
  |  |  |  Branch (846:13): [True: 5, False: 138]
  |  |  ------------------
  |  |  847|      8|            ogs_error("RuleId[%u] PF[%d] Overflow: " \
  |  |  ------------------
  |  |  |  |   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__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  848|      8|                    "size[%d] len[%d] need[%d] " \
  |  |  849|      8|                    "content[%d] length[%d]", \
  |  |  850|      8|                    rule->identifier, i, size, len, (int)(needed), \
  |  |  851|      8|                    rule->pf[i].content.length, length); \
  |  |  852|      8|            goto cleanup; \
  |  |  853|      8|        } \
  |  |  854|    146|    } while (0)
  |  |  ------------------
  |  |  |  Branch (854:14): [Folded, False: 138]
  |  |  ------------------
  ------------------
  927|    146|                        sizeof(rule->pf[i].content.component[j].ipv4.mask));
  928|    138|                memcpy(&rule->pf[i].content.component[j].ipv4.mask,
  929|    138|                    buffer+size+len,
  930|    138|                    sizeof(rule->pf[i].content.component[j].ipv4.mask));
  931|    138|                len += sizeof(rule->pf[i].content.component[j].ipv4.mask);
  932|    138|                break;
  933|     33|            case OGS_PACKET_FILTER_IPV6_LOCAL_ADDRESS_PREFIX_LENGTH_TYPE:
  ------------------
  |  |   99|     33|#define OGS_PACKET_FILTER_IPV6_LOCAL_ADDRESS_PREFIX_LENGTH_TYPE 35
  ------------------
  |  Branch (933:13): [True: 33, False: 952]
  ------------------
  934|     91|            case OGS_PACKET_FILTER_IPV6_REMOTE_ADDRESS_PREFIX_LENGTH_TYPE:
  ------------------
  |  |   97|     91|#define OGS_PACKET_FILTER_IPV6_REMOTE_ADDRESS_PREFIX_LENGTH_TYPE 33
  ------------------
  |  Branch (934:13): [True: 58, False: 927]
  ------------------
  935|     91|                CHECK_PF_CONTENT_ROOM(
  ------------------
  |  |  844|     91|    do { \
  |  |  845|     91|        if (len + (int)(needed) > rule->pf[i].content.length || \
  |  |  ------------------
  |  |  |  Branch (845:13): [True: 5, False: 86]
  |  |  ------------------
  |  |  846|     91|            size + len + (needed) > length) { \
  |  |  ------------------
  |  |  |  Branch (846:13): [True: 18, False: 68]
  |  |  ------------------
  |  |  847|     23|            ogs_error("RuleId[%u] PF[%d] Overflow: " \
  |  |  ------------------
  |  |  |  |   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__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  848|     23|                    "size[%d] len[%d] need[%d] " \
  |  |  849|     23|                    "content[%d] length[%d]", \
  |  |  850|     23|                    rule->identifier, i, size, len, (int)(needed), \
  |  |  851|     23|                    rule->pf[i].content.length, length); \
  |  |  852|     23|            goto cleanup; \
  |  |  853|     23|        } \
  |  |  854|     91|    } while (0)
  |  |  ------------------
  |  |  |  Branch (854:14): [Folded, False: 68]
  |  |  ------------------
  ------------------
  936|     91|                        sizeof(rule->pf[i].content.component[j].ipv6.addr));
  937|     68|                memcpy(&rule->pf[i].content.component[j].ipv6.addr,
  938|     68|                    buffer+size+len,
  939|     68|                    sizeof(rule->pf[i].content.component[j].ipv6.addr));
  940|     68|                len += sizeof(rule->pf[i].content.component[j].ipv6.addr);
  941|       |
  942|     68|                CHECK_PF_CONTENT_ROOM(
  ------------------
  |  |  844|     68|    do { \
  |  |  845|     68|        if (len + (int)(needed) > rule->pf[i].content.length || \
  |  |  ------------------
  |  |  |  Branch (845:13): [True: 1, False: 67]
  |  |  ------------------
  |  |  846|     68|            size + len + (needed) > length) { \
  |  |  ------------------
  |  |  |  Branch (846:13): [True: 2, False: 65]
  |  |  ------------------
  |  |  847|      3|            ogs_error("RuleId[%u] PF[%d] Overflow: " \
  |  |  ------------------
  |  |  |  |   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__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  848|      3|                    "size[%d] len[%d] need[%d] " \
  |  |  849|      3|                    "content[%d] length[%d]", \
  |  |  850|      3|                    rule->identifier, i, size, len, (int)(needed), \
  |  |  851|      3|                    rule->pf[i].content.length, length); \
  |  |  852|      3|            goto cleanup; \
  |  |  853|      3|        } \
  |  |  854|     68|    } while (0)
  |  |  ------------------
  |  |  |  Branch (854:14): [Folded, False: 65]
  |  |  ------------------
  ------------------
  943|     68|                        sizeof(rule->pf[i].content.component[j].ipv6.prefixlen));
  944|     65|                memcpy(&rule->pf[i].content.component[j].ipv6.prefixlen,
  945|     65|                    buffer+size+len,
  946|     65|                    sizeof(rule->pf[i].content.component[j].ipv6.prefixlen));
  947|     65|                len += sizeof(rule->pf[i].content.component[j].ipv6.prefixlen);
  948|     65|                break;
  949|     33|            case OGS_PACKET_FILTER_IPV6_LOCAL_ADDRESS_TYPE:
  ------------------
  |  |   98|     33|#define OGS_PACKET_FILTER_IPV6_LOCAL_ADDRESS_TYPE 34
  ------------------
  |  Branch (949:13): [True: 33, False: 952]
  ------------------
  950|     59|            case OGS_PACKET_FILTER_IPV6_REMOTE_ADDRESS_TYPE:
  ------------------
  |  |   96|     59|#define OGS_PACKET_FILTER_IPV6_REMOTE_ADDRESS_TYPE 32
  ------------------
  |  Branch (950:13): [True: 26, False: 959]
  ------------------
  951|     59|                CHECK_PF_CONTENT_ROOM(
  ------------------
  |  |  844|     59|    do { \
  |  |  845|     59|        if (len + (int)(needed) > rule->pf[i].content.length || \
  |  |  ------------------
  |  |  |  Branch (845:13): [True: 6, False: 53]
  |  |  ------------------
  |  |  846|     59|            size + len + (needed) > length) { \
  |  |  ------------------
  |  |  |  Branch (846:13): [True: 13, False: 40]
  |  |  ------------------
  |  |  847|     19|            ogs_error("RuleId[%u] PF[%d] Overflow: " \
  |  |  ------------------
  |  |  |  |   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__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  848|     19|                    "size[%d] len[%d] need[%d] " \
  |  |  849|     19|                    "content[%d] length[%d]", \
  |  |  850|     19|                    rule->identifier, i, size, len, (int)(needed), \
  |  |  851|     19|                    rule->pf[i].content.length, length); \
  |  |  852|     19|            goto cleanup; \
  |  |  853|     19|        } \
  |  |  854|     59|    } while (0)
  |  |  ------------------
  |  |  |  Branch (854:14): [Folded, False: 40]
  |  |  ------------------
  ------------------
  952|     59|                        sizeof(rule->pf[i].content.component[j].ipv6_mask.addr));
  953|     40|                memcpy(&rule->pf[i].content.component[j].ipv6_mask.addr,
  954|     40|                    buffer+size+len,
  955|     40|                    sizeof(rule->pf[i].content.component[j].ipv6_mask.addr));
  956|     40|                len += sizeof(rule->pf[i].content.component[j].ipv6_mask.addr);
  957|       |
  958|     40|                CHECK_PF_CONTENT_ROOM(
  ------------------
  |  |  844|     40|    do { \
  |  |  845|     40|        if (len + (int)(needed) > rule->pf[i].content.length || \
  |  |  ------------------
  |  |  |  Branch (845:13): [True: 5, False: 35]
  |  |  ------------------
  |  |  846|     40|            size + len + (needed) > length) { \
  |  |  ------------------
  |  |  |  Branch (846:13): [True: 8, False: 27]
  |  |  ------------------
  |  |  847|     13|            ogs_error("RuleId[%u] PF[%d] Overflow: " \
  |  |  ------------------
  |  |  |  |   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__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  848|     13|                    "size[%d] len[%d] need[%d] " \
  |  |  849|     13|                    "content[%d] length[%d]", \
  |  |  850|     13|                    rule->identifier, i, size, len, (int)(needed), \
  |  |  851|     13|                    rule->pf[i].content.length, length); \
  |  |  852|     13|            goto cleanup; \
  |  |  853|     13|        } \
  |  |  854|     40|    } while (0)
  |  |  ------------------
  |  |  |  Branch (854:14): [Folded, False: 27]
  |  |  ------------------
  ------------------
  959|     40|                        sizeof(rule->pf[i].content.component[j].ipv6_mask.mask));
  960|     27|                memcpy(&rule->pf[i].content.component[j].ipv6_mask.mask,
  961|     27|                    buffer+size+len,
  962|     27|                    sizeof(rule->pf[i].content.component[j].ipv6_mask.mask));
  963|     27|                len += sizeof(rule->pf[i].content.component[j].ipv6_mask.mask);
  964|     27|                break;
  965|    102|            case OGS_PACKET_FILTER_SINGLE_LOCAL_PORT_TYPE:
  ------------------
  |  |  100|    102|#define OGS_PACKET_FILTER_SINGLE_LOCAL_PORT_TYPE 64
  ------------------
  |  Branch (965:13): [True: 102, False: 883]
  ------------------
  966|    186|            case OGS_PACKET_FILTER_SINGLE_REMOTE_PORT_TYPE:
  ------------------
  |  |  102|    186|#define OGS_PACKET_FILTER_SINGLE_REMOTE_PORT_TYPE 80
  ------------------
  |  Branch (966:13): [True: 84, False: 901]
  ------------------
  967|    186|                CHECK_PF_CONTENT_ROOM(
  ------------------
  |  |  844|    186|    do { \
  |  |  845|    186|        if (len + (int)(needed) > rule->pf[i].content.length || \
  |  |  ------------------
  |  |  |  Branch (845:13): [True: 1, False: 185]
  |  |  ------------------
  |  |  846|    186|            size + len + (needed) > length) { \
  |  |  ------------------
  |  |  |  Branch (846:13): [True: 7, False: 178]
  |  |  ------------------
  |  |  847|      8|            ogs_error("RuleId[%u] PF[%d] Overflow: " \
  |  |  ------------------
  |  |  |  |   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__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  848|      8|                    "size[%d] len[%d] need[%d] " \
  |  |  849|      8|                    "content[%d] length[%d]", \
  |  |  850|      8|                    rule->identifier, i, size, len, (int)(needed), \
  |  |  851|      8|                    rule->pf[i].content.length, length); \
  |  |  852|      8|            goto cleanup; \
  |  |  853|      8|        } \
  |  |  854|    186|    } while (0)
  |  |  ------------------
  |  |  |  Branch (854:14): [Folded, False: 178]
  |  |  ------------------
  ------------------
  968|    186|                        sizeof(rule->pf[i].content.component[j].port.low));
  969|    178|                memcpy(&rule->pf[i].content.component[j].port.low,
  970|    178|                    buffer+size+len,
  971|    178|                    sizeof(rule->pf[i].content.component[j].port.low));
  972|    178|                rule->pf[i].content.component[j].port.low =
  973|    178|                    be16toh(rule->pf[i].content.component[j].port.low);
  974|    178|                len += sizeof(rule->pf[i].content.component[j].port.low);
  975|    178|                break;
  976|    109|            case OGS_PACKET_FILTER_LOCAL_PORT_RANGE_TYPE:
  ------------------
  |  |  101|    109|#define OGS_PACKET_FILTER_LOCAL_PORT_RANGE_TYPE 65
  ------------------
  |  Branch (976:13): [True: 109, False: 876]
  ------------------
  977|    191|            case OGS_PACKET_FILTER_REMOTE_PORT_RANGE_TYPE:
  ------------------
  |  |  103|    191|#define OGS_PACKET_FILTER_REMOTE_PORT_RANGE_TYPE 81
  ------------------
  |  Branch (977:13): [True: 82, False: 903]
  ------------------
  978|    191|                CHECK_PF_CONTENT_ROOM(
  ------------------
  |  |  844|    191|    do { \
  |  |  845|    191|        if (len + (int)(needed) > rule->pf[i].content.length || \
  |  |  ------------------
  |  |  |  Branch (845:13): [True: 3, False: 188]
  |  |  ------------------
  |  |  846|    191|            size + len + (needed) > length) { \
  |  |  ------------------
  |  |  |  Branch (846:13): [True: 6, False: 182]
  |  |  ------------------
  |  |  847|      9|            ogs_error("RuleId[%u] PF[%d] Overflow: " \
  |  |  ------------------
  |  |  |  |   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__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  848|      9|                    "size[%d] len[%d] need[%d] " \
  |  |  849|      9|                    "content[%d] length[%d]", \
  |  |  850|      9|                    rule->identifier, i, size, len, (int)(needed), \
  |  |  851|      9|                    rule->pf[i].content.length, length); \
  |  |  852|      9|            goto cleanup; \
  |  |  853|      9|        } \
  |  |  854|    191|    } while (0)
  |  |  ------------------
  |  |  |  Branch (854:14): [Folded, False: 182]
  |  |  ------------------
  ------------------
  979|    191|                        sizeof(rule->pf[i].content.component[j].port.low));
  980|    182|                memcpy(&rule->pf[i].content.component[j].port.low,
  981|    182|                    buffer+size+len,
  982|    182|                    sizeof(rule->pf[i].content.component[j].port.low));
  983|    182|                rule->pf[i].content.component[j].port.low =
  984|    182|                    be16toh(rule->pf[i].content.component[j].port.low);
  985|    182|                len += sizeof(rule->pf[i].content.component[j].port.low);
  986|       |
  987|    182|                CHECK_PF_CONTENT_ROOM(
  ------------------
  |  |  844|    182|    do { \
  |  |  845|    182|        if (len + (int)(needed) > rule->pf[i].content.length || \
  |  |  ------------------
  |  |  |  Branch (845:13): [True: 2, False: 180]
  |  |  ------------------
  |  |  846|    182|            size + len + (needed) > length) { \
  |  |  ------------------
  |  |  |  Branch (846:13): [True: 6, False: 174]
  |  |  ------------------
  |  |  847|      8|            ogs_error("RuleId[%u] PF[%d] Overflow: " \
  |  |  ------------------
  |  |  |  |   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__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  848|      8|                    "size[%d] len[%d] need[%d] " \
  |  |  849|      8|                    "content[%d] length[%d]", \
  |  |  850|      8|                    rule->identifier, i, size, len, (int)(needed), \
  |  |  851|      8|                    rule->pf[i].content.length, length); \
  |  |  852|      8|            goto cleanup; \
  |  |  853|      8|        } \
  |  |  854|    182|    } while (0)
  |  |  ------------------
  |  |  |  Branch (854:14): [Folded, False: 174]
  |  |  ------------------
  ------------------
  988|    182|                        sizeof(rule->pf[i].content.component[j].port.high));
  989|    174|                memcpy(&rule->pf[i].content.component[j].port.high,
  990|    174|                    buffer+size+len,
  991|    174|                    sizeof(rule->pf[i].content.component[j].port.high));
  992|    174|                rule->pf[i].content.component[j].port.high =
  993|    174|                    be16toh(rule->pf[i].content.component[j].port.high);
  994|    174|                len += sizeof(rule->pf[i].content.component[j].port.high);
  995|    174|                break;
  996|     37|            default:
  ------------------
  |  Branch (996:13): [True: 37, False: 948]
  ------------------
  997|     37|                ogs_error("PF[%d] Unknown Packet Filter Type(%d)",
  ------------------
  |  |   36|     37|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     37|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   40|     37|#define OGS_LOG_DOMAIN __ogs_nas_domain
  |  |  |  |  ------------------
  |  |  |  |   44|     37|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     37|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     37|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  998|     37|                          i, rule->pf[i].content.component[j].type);
  999|     37|                goto cleanup;
 1000|    985|            }
 1001|    844|            j++;
 1002|    844|        }
 1003|     75|        rule->pf[i].content.num_of_component = j;
 1004|     75|        size += len;
 1005|     75|    }
 1006|       |
 1007|    152|#undef CHECK_PF_CONTENT_ROOM
 1008|       |
 1009|    152|    return size;
 1010|       |
 1011|    183|cleanup:
 1012|    183|#undef CHECK_PF_CONTENT_ROOM
 1013|    183|    return -1;
 1014|    335|}

ogs_nas_bitrate_unit_is_valid:
  448|    179|{
  449|    179|    ogs_assert(nas_bitrate);
  ------------------
  |  |  113|    179|    do { \
  |  |  114|    179|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|    179|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 179, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|    179|        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|    179|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 179]
  |  |  ------------------
  ------------------
  450|       |
  451|    179|    return nas_bitrate->unit >= OGS_NAS_BR_UNIT_1K &&
  ------------------
  |  | 1018|    358|#define OGS_NAS_BR_UNIT_1K      1
  ------------------
  |  Branch (451:12): [True: 177, False: 2]
  ------------------
  452|    177|        nas_bitrate->unit <= OGS_NAS_BR_UNIT_256P;
  ------------------
  |  | 1042|    356|#define OGS_NAS_BR_UNIT_256P    25
  ------------------
  |  Branch (452:9): [True: 166, False: 11]
  ------------------
  453|    179|}

ogs_fqdn_parse:
  685|  1.37k|{
  686|  1.37k|    int i = 0, j = 0;
  687|  1.37k|    uint8_t len = 0;
  688|       |
  689|  3.59k|    while (i+1 <= length) {
  ------------------
  |  Branch (689:12): [True: 2.57k, False: 1.02k]
  ------------------
  690|  2.57k|        len = src[i++];
  691|  2.57k|        if ((j + len + 1) > length) {
  ------------------
  |  Branch (691:13): [True: 348, False: 2.22k]
  ------------------
  692|    348|            ogs_error("Invalid FQDN encoding[j:%d+len:%d] + 1 > length[%d]",
  ------------------
  |  |   36|    348|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|    348|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   32|    348|#define OGS_LOG_DOMAIN      1
  |  |  |  |  ------------------
  |  |  |  |   44|    348|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|    348|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|    348|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  693|    348|                    j, len, length);
  694|    348|            ogs_log_hexdump(OGS_LOG_ERROR, (unsigned char *)src, length);
  ------------------
  |  |   53|    348|    ogs_log_hexdump_func(level, OGS_LOG_DOMAIN, _d, _l)
  |  |  ------------------
  |  |  |  |   32|    348|#define OGS_LOG_DOMAIN      1
  |  |  ------------------
  ------------------
  695|    348|            return -EINVAL;
  696|    348|        }
  697|  2.22k|        memcpy(&dst[j], &src[i], len);
  698|       |
  699|  2.22k|        i += len;
  700|  2.22k|        j += len;
  701|       |
  702|  2.22k|        if (i+1 < length)
  ------------------
  |  Branch (702:13): [True: 1.14k, False: 1.08k]
  ------------------
  703|  1.14k|            dst[j++] = '.';
  704|  1.08k|        else
  705|  1.08k|            dst[j] = 0;
  706|  2.22k|    }
  707|       |
  708|  1.02k|    return j;
  709|  1.37k|}
ogs_pco_parse:
  714|     53|{
  715|     53|    ogs_pco_t *source = (ogs_pco_t *)data;
  716|     53|    int size = 0;
  717|     53|    int i = 0;
  718|       |
  719|     53|    ogs_assert(pco);
  ------------------
  |  |  113|     53|    do { \
  |  |  114|     53|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|     53|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 53, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|     53|        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|     53|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 53]
  |  |  ------------------
  ------------------
  720|     53|    ogs_assert(data);
  ------------------
  |  |  113|     53|    do { \
  |  |  114|     53|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|     53|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 53, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|     53|        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|     53|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 53]
  |  |  ------------------
  ------------------
  721|     53|    ogs_assert(data_len);
  ------------------
  |  |  113|     53|    do { \
  |  |  114|     53|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|     53|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 53, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  115|     53|        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|     53|    } while(0)
  |  |  ------------------
  |  |  |  Branch (119:13): [Folded, False: 53]
  |  |  ------------------
  ------------------
  722|       |
  723|     53|    memset(pco, 0, sizeof(ogs_pco_t));
  724|       |
  725|     53|    if (data_len < 1) {
  ------------------
  |  Branch (725:9): [True: 0, False: 53]
  ------------------
  726|      0|        ogs_error("PCO/EPCO too short [%d]", data_len);
  ------------------
  |  |   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__) 
  |  |  ------------------
  ------------------
  727|      0|        return -EINVAL;
  728|      0|    }
  729|       |
  730|     53|    pco->ext = source->ext;
  731|     53|    pco->configuration_protocol = source->configuration_protocol;
  732|     53|    size++;
  733|       |
  734|    308|    while(size < data_len && i < OGS_MAX_NUM_OF_PROTOCOL_OR_CONTAINER_ID) {
  ------------------
  |  |  822|    301|#define OGS_MAX_NUM_OF_PROTOCOL_OR_CONTAINER_ID    32
  ------------------
  |  Branch (734:11): [True: 301, False: 7]
  |  Branch (734:30): [True: 300, False: 1]
  ------------------
  735|    300|        ogs_pco_id_t *id = &pco->ids[i];
  736|       |
  737|    300|        if (size + (int)sizeof(id->id) > data_len) {
  ------------------
  |  Branch (737:13): [True: 10, False: 290]
  ------------------
  738|     10|            ogs_error("PCO/EPCO truncated before Container-ID "
  ------------------
  |  |   36|     10|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     10|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   32|     10|#define OGS_LOG_DOMAIN      1
  |  |  |  |  ------------------
  |  |  |  |   44|     10|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     10|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     10|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  739|     10|                    "[offset:%d len:%d]", size, data_len);
  740|     10|            return -EINVAL;
  741|     10|        }
  742|    290|        memcpy(&id->id, data + size, sizeof(id->id));
  743|    290|        id->id = be16toh(id->id);
  744|    290|        size += sizeof(id->id);
  745|       |
  746|    290|        if (size + (int)sizeof(id->len) > data_len) {
  ------------------
  |  Branch (746:13): [True: 5, False: 285]
  ------------------
  747|      5|            ogs_error("PCO/EPCO truncated before Container-Length "
  ------------------
  |  |   36|      5|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      5|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   32|      5|#define OGS_LOG_DOMAIN      1
  |  |  |  |  ------------------
  |  |  |  |   44|      5|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      5|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      5|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  748|      5|                    "[id:0x%x offset:%d len:%d]",
  749|      5|                    id->id, size, data_len);
  750|      5|            return -EINVAL;
  751|      5|        }
  752|    285|        memcpy(&id->len, data + size, sizeof(id->len));
  753|    285|        size += sizeof(id->len);
  754|       |
  755|    285|        if (size + id->len > data_len) {
  ------------------
  |  Branch (755:13): [True: 30, False: 255]
  ------------------
  756|     30|            ogs_error("PCO/EPCO truncated Container data "
  ------------------
  |  |   36|     30|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|     30|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   32|     30|#define OGS_LOG_DOMAIN      1
  |  |  |  |  ------------------
  |  |  |  |   44|     30|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|     30|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|     30|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  757|     30|                    "[id:0x%x container-len:%u offset:%d len:%d]",
  758|     30|                    id->id, id->len, size, data_len);
  759|     30|            return -EINVAL;
  760|     30|        }
  761|       |
  762|    255|        id->data = data + size;
  763|    255|        size += id->len;
  764|       |
  765|    255|        i++;
  766|    255|    }
  767|       |
  768|      8|    if (size < data_len) {
  ------------------
  |  Branch (768:9): [True: 1, False: 7]
  ------------------
  769|      1|        ogs_error("PCO/EPCO exceeds maximum number of containers "
  ------------------
  |  |   36|      1|#define ogs_error(...) ogs_log_message(OGS_LOG_ERROR, 0, __VA_ARGS__)
  |  |  ------------------
  |  |  |  |   43|      1|    ogs_log_printf(level, OGS_LOG_DOMAIN, \
  |  |  |  |  ------------------
  |  |  |  |  |  |   32|      1|#define OGS_LOG_DOMAIN      1
  |  |  |  |  ------------------
  |  |  |  |   44|      1|    err, __FILE__, __LINE__, OGS_FUNC,  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   50|      1|#define OGS_FUNC __func__
  |  |  |  |  ------------------
  |  |  |  |   45|      1|    0, __VA_ARGS__) 
  |  |  ------------------
  ------------------
  770|      1|                "[%d]", OGS_MAX_NUM_OF_PROTOCOL_OR_CONTAINER_ID);
  771|      1|        return -EINVAL;
  772|      1|    }
  773|       |
  774|      7|    pco->num_of_id = i;
  775|      7|    ogs_expect(size == data_len);
  ------------------
  |  |  128|      7|    do { \
  |  |  129|      7|        if (ogs_likely(expr)) ; \
  |  |  ------------------
  |  |  |  |   54|      7|#define ogs_likely(x) __builtin_expect (!!(x), 1)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (54:23): [True: 7, False: 0]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  130|      7|        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, \
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   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__) 
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  132|      0|        } \
  |  |  133|      7|    } while (0)
  |  |  ------------------
  |  |  |  Branch (133:14): [Folded, False: 7]
  |  |  ------------------
  ------------------
  776|       |
  777|      7|    return size;
  778|      8|}

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:
  139|  7.36k|{
  140|       |
  141|  7.36k|    if (Size < kMinInputLength || Size > kMaxInputLength) {
  ------------------
  |  |   26|  14.7k|#define kMinInputLength 5
  ------------------
                  if (Size < kMinInputLength || Size > kMaxInputLength) {
  ------------------
  |  |   27|  7.35k|#define kMaxInputLength 1024
  ------------------
  |  Branch (141:9): [True: 4, False: 7.35k]
  |  Branch (141:35): [True: 21, False: 7.33k]
  ------------------
  142|     25|        return 1;
  143|     25|    }
  144|       |
  145|  7.33k|    if (!initialized) {
  ------------------
  |  Branch (145:9): [True: 1, False: 7.33k]
  ------------------
  146|      1|        initialize();
  147|      1|        ogs_log_install_domain(&__ogs_nas_domain, "nas", OGS_LOG_NONE);
  148|      1|    }
  149|       |
  150|  7.33k|    int result;
  151|  7.33k|    ogs_pkbuf_t *pkbuf;
  152|  7.33k|    ogs_nas_5gs_message_t message;
  153|       |
  154|  7.33k|    pkbuf = ogs_pkbuf_alloc(NULL, OGS_MAX_SDU_LEN);
  ------------------
  |  |   87|  7.33k|    ogs_pkbuf_alloc_debug(pool, size, OGS_FILE_LINE)
  |  |  ------------------
  |  |  |  |  213|  7.33k|#define OGS_FILE_LINE __FILE__ ":" OGS_STRINGIFY(__LINE__)
  |  |  |  |  ------------------
  |  |  |  |  |  |  167|  7.33k|#define OGS_STRINGIFY(n)            OGS_STRINGIFY_HELPER(n)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  168|  7.33k|#define OGS_STRINGIFY_HELPER(n)     #n
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  155|  7.33k|    if (pkbuf == NULL) {
  ------------------
  |  Branch (155:9): [True: 0, False: 7.33k]
  ------------------
  156|      0|        return 1;
  157|      0|    }
  158|       |
  159|       |    /* First byte selects the 5GS sublayer: even = 5GMM, odd = 5GSM. */
  160|  7.33k|    uint8_t selector = Data[0];
  161|  7.33k|    ogs_pkbuf_put_data(pkbuf, Data + 1, Size - 1);
  162|       |
  163|  7.33k|    if (selector & 1) {
  ------------------
  |  Branch (163:9): [True: 2.56k, False: 4.77k]
  ------------------
  164|  2.56k|        result = ogs_nas_5gsm_decode(&message, pkbuf);
  165|  2.56k|        if (result == OGS_OK)
  ------------------
  |  |   77|  2.56k|#define OGS_OK           0
  ------------------
  |  Branch (165:13): [True: 1.99k, False: 571]
  ------------------
  166|  1.99k|            parse_gsm_ies(&message);
  167|  4.77k|    } else {
  168|  4.77k|        result = ogs_nas_5gmm_decode(&message, pkbuf);
  169|  4.77k|        if (result == OGS_OK)
  ------------------
  |  |   77|  4.77k|#define OGS_OK           0
  ------------------
  |  Branch (169:13): [True: 3.54k, False: 1.23k]
  ------------------
  170|  3.54k|            parse_gmm_ies(&message);
  171|  4.77k|    }
  172|       |
  173|  7.33k|    ogs_pkbuf_free(pkbuf);
  174|       |
  175|  7.33k|    return result;
  176|  7.33k|}
nas-5gs-message-fuzz.c:parse_gsm_ies:
   30|  1.99k|{
   31|  1.99k|    ogs_nas_qos_rules_t *rules = NULL;
   32|  1.99k|    ogs_nas_qos_flow_descriptions_t *descriptions = NULL;
   33|  1.99k|    ogs_nas_extended_protocol_configuration_options_t *options = NULL;
   34|       |
   35|  1.99k|    switch (message->gsm.h.message_type) {
   36|    215|    case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST:
  ------------------
  |  |   99|    215|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_REQUEST 193
  ------------------
  |  Branch (36:5): [True: 215, False: 1.77k]
  ------------------
   37|    215|        options = &message->gsm.pdu_session_establishment_request.
   38|    215|            extended_protocol_configuration_options;
   39|    215|        break;
   40|    256|    case OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT:
  ------------------
  |  |  100|    256|#define OGS_NAS_5GS_PDU_SESSION_ESTABLISHMENT_ACCEPT 194
  ------------------
  |  Branch (40:5): [True: 256, False: 1.73k]
  ------------------
   41|    256|        rules = &message->gsm.pdu_session_establishment_accept.
   42|    256|            authorized_qos_rules;
   43|    256|        descriptions = &message->gsm.pdu_session_establishment_accept.
   44|    256|            authorized_qos_flow_descriptions;
   45|    256|        options = &message->gsm.pdu_session_establishment_accept.
   46|    256|            extended_protocol_configuration_options;
   47|    256|        break;
   48|    470|    case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST:
  ------------------
  |  |  105|    470|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_REQUEST 201
  ------------------
  |  Branch (48:5): [True: 470, False: 1.52k]
  ------------------
   49|    470|        rules = &message->gsm.pdu_session_modification_request.
   50|    470|            requested_qos_rules;
   51|    470|        descriptions = &message->gsm.pdu_session_modification_request.
   52|    470|            requested_qos_flow_descriptions;
   53|    470|        options = &message->gsm.pdu_session_modification_request.
   54|    470|            extended_protocol_configuration_options;
   55|    470|        break;
   56|    386|    case OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND:
  ------------------
  |  |  107|    386|#define OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND 203
  ------------------
  |  Branch (56:5): [True: 386, False: 1.60k]
  ------------------
   57|    386|        rules = &message->gsm.pdu_session_modification_command.
   58|    386|            authorized_qos_rules;
   59|    386|        descriptions = &message->gsm.pdu_session_modification_command.
   60|    386|            authorized_qos_flow_descriptions;
   61|    386|        options = &message->gsm.pdu_session_modification_command.
   62|    386|            extended_protocol_configuration_options;
   63|    386|        break;
   64|    666|    default:
  ------------------
  |  Branch (64:5): [True: 666, False: 1.32k]
  ------------------
   65|    666|        break;
   66|  1.99k|    }
   67|       |
   68|  1.99k|    if (rules && rules->length) {
  ------------------
  |  Branch (68:9): [True: 1.11k, False: 881]
  |  Branch (68:18): [True: 282, False: 830]
  ------------------
   69|    282|        ogs_nas_qos_rule_t decoded[OGS_NAS_MAX_NUM_OF_QOS_RULE];
   70|    282|        ogs_nas_parse_qos_rules(decoded, rules);
   71|    282|    }
   72|  1.99k|    if (descriptions && descriptions->length) {
  ------------------
  |  Branch (72:9): [True: 1.11k, False: 881]
  |  Branch (72:25): [True: 104, False: 1.00k]
  ------------------
   73|    104|        ogs_nas_qos_flow_description_t
   74|    104|            decoded[OGS_NAS_MAX_NUM_OF_QOS_FLOW_DESCRIPTION];
   75|    104|        ogs_nas_parse_qos_flow_descriptions(decoded, descriptions);
   76|    104|    }
   77|  1.99k|    if (options && options->length) {
  ------------------
  |  Branch (77:9): [True: 1.32k, False: 666]
  |  Branch (77:20): [True: 53, False: 1.27k]
  ------------------
   78|     53|        ogs_pco_t decoded;
   79|     53|        ogs_pco_parse(&decoded, options->buffer, options->length);
   80|     53|    }
   81|  1.99k|}
nas-5gs-message-fuzz.c:parse_gmm_ies:
  105|  3.54k|{
  106|  3.54k|    ogs_nas_nssai_t *nssai = NULL;
  107|  3.54k|    ogs_nas_rejected_nssai_t *rejected = NULL;
  108|       |
  109|  3.54k|    switch (message->gmm.h.message_type) {
  110|    473|    case OGS_NAS_5GS_REGISTRATION_REQUEST:
  ------------------
  |  |   71|    473|#define OGS_NAS_5GS_REGISTRATION_REQUEST 65
  ------------------
  |  Branch (110:5): [True: 473, False: 3.06k]
  ------------------
  111|    473|        nssai = &message->gmm.registration_request.requested_nssai;
  112|    473|        break;
  113|    707|    case OGS_NAS_5GS_REGISTRATION_ACCEPT:
  ------------------
  |  |   72|    707|#define OGS_NAS_5GS_REGISTRATION_ACCEPT 66
  ------------------
  |  Branch (113:5): [True: 707, False: 2.83k]
  ------------------
  114|    707|        nssai = &message->gmm.registration_accept.allowed_nssai;
  115|    707|        rejected = &message->gmm.registration_accept.rejected_nssai;
  116|    707|        break;
  117|    165|    case OGS_NAS_5GS_REGISTRATION_REJECT:
  ------------------
  |  |   74|    165|#define OGS_NAS_5GS_REGISTRATION_REJECT 68
  ------------------
  |  Branch (117:5): [True: 165, False: 3.37k]
  ------------------
  118|    165|        rejected = &message->gmm.registration_reject.rejected_nssai;
  119|    165|        break;
  120|    753|    case OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND:
  ------------------
  |  |   82|    753|#define OGS_NAS_5GS_CONFIGURATION_UPDATE_COMMAND 84
  ------------------
  |  Branch (120:5): [True: 753, False: 2.78k]
  ------------------
  121|    753|        nssai = &message->gmm.configuration_update_command.allowed_nssai;
  122|    753|        rejected = &message->gmm.configuration_update_command.rejected_nssai;
  123|    753|        break;
  124|  1.44k|    default:
  ------------------
  |  Branch (124:5): [True: 1.44k, False: 2.09k]
  ------------------
  125|  1.44k|        break;
  126|  3.54k|    }
  127|       |
  128|  3.54k|    if (nssai && nssai->length) {
  ------------------
  |  Branch (128:9): [True: 1.93k, False: 1.60k]
  |  Branch (128:18): [True: 100, False: 1.83k]
  ------------------
  129|    100|        ogs_nas_s_nssai_ie_t decoded[OGS_MAX_NUM_OF_SLICE];
  130|    100|        ogs_nas_parse_nssai(decoded, nssai);
  131|    100|    }
  132|  3.54k|    if (rejected && rejected->length && rejected_nssai_is_valid(rejected)) {
  ------------------
  |  Branch (132:9): [True: 1.62k, False: 1.91k]
  |  Branch (132:21): [True: 52, False: 1.57k]
  |  Branch (132:41): [True: 18, False: 34]
  ------------------
  133|     18|        ogs_nas_rejected_s_nssai_t decoded[OGS_MAX_NUM_OF_SLICE];
  134|     18|        ogs_nas_parse_rejected_nssai(decoded, rejected);
  135|     18|    }
  136|  3.54k|}
nas-5gs-message-fuzz.c:rejected_nssai_is_valid:
   84|     52|{
   85|     52|    size_t offset = 0;
   86|       |
   87|     52|    if (rejected->length > sizeof(rejected->buffer))
  ------------------
  |  Branch (87:9): [True: 0, False: 52]
  ------------------
   88|      0|        return 0;
   89|       |
   90|    187|    while (offset < rejected->length) {
  ------------------
  |  Branch (90:12): [True: 169, False: 18]
  ------------------
   91|    169|        size_t entry_length = (uint8_t)rejected->buffer[offset] >> 4;
   92|       |
   93|    169|        if (entry_length != 1 && entry_length != 4)
  ------------------
  |  Branch (93:13): [True: 85, False: 84]
  |  Branch (93:34): [True: 28, False: 57]
  ------------------
   94|     28|            return 0;
   95|    141|        if (entry_length > rejected->length - offset - 1)
  ------------------
  |  Branch (95:13): [True: 6, False: 135]
  ------------------
   96|      6|            return 0;
   97|       |
   98|    135|        offset += entry_length + 1;
   99|    135|    }
  100|       |
  101|     18|    return 1;
  102|     52|}

