Esempio n. 1
0
File: fib.c Progetto: robby14/RIOT
void fib_print_routes(void)
{
    mutex_lock(&mtx_access);
    printf("%-" NG_FIB_ADDR_PRINT_LENS "s %-6s %-" NG_FIB_ADDR_PRINT_LENS "s %-6s %-16s Interface\n"
           , "Destination", "Flags", "Next Hop", "Flags", "Expires");

    timex_t now;
    vtimer_now(&now);

    for (size_t i = 0; i < FIB_MAX_FIB_TABLE_ENTRIES; ++i) {
        if (fib_table[i].lifetime.seconds != 0 || fib_table[i].lifetime.microseconds != 0) {
            fib_print_address(fib_table[i].global);
            printf(" 0x%04"PRIx32" ", fib_table[i].global_flags);
            fib_print_address(fib_table[i].next_hop);
            printf(" 0x%04"PRIx32" ", fib_table[i].next_hop_flags);

            if ((fib_table[i].lifetime.seconds != FIB_LIFETIME_NO_EXPIRE)
                || (fib_table[i].lifetime.microseconds != FIB_LIFETIME_NO_EXPIRE)) {

                timex_t tm = timex_sub(fib_table[i].lifetime, now);

                /* we must interpret the values as signed */
                if ((int32_t)tm.seconds < 0
                    || (tm.seconds == 0 && (int32_t)tm.microseconds < 0)) {
                    printf("%-16s ", "EXPIRED");
                }
                else {
                    printf("%"PRIu32".%05"PRIu32, tm.seconds, tm.microseconds);
                }
            }
            else {
                printf("%-16s ", "NEVER");
            }

            printf("%d\n", (int)fib_table[i].iface_id);
        }
    }

    mutex_unlock(&mtx_access);
}
Esempio n. 2
0
File: fib.c Progetto: daniel-k/RIOT
void fib_print_routes(fib_table_t *table)
{
    mutex_lock(&mtx_access);
    printf("%-" FIB_ADDR_PRINT_LENS "s %-6s %-" FIB_ADDR_PRINT_LENS "s %-6s %-16s Interface\n"
           , "Destination", "Flags", "Next Hop", "Flags", "Expires");

    uint64_t now = xtimer_now64();

    for (size_t i = 0; i < table->size; ++i) {
        if (table->entries[i].lifetime != 0) {
            fib_print_address(table->entries[i].global);
            printf(" 0x%04"PRIx32" ", table->entries[i].global_flags);
            fib_print_address(table->entries[i].next_hop);
            printf(" 0x%04"PRIx32" ", table->entries[i].next_hop_flags);

            if (table->entries[i].lifetime != FIB_LIFETIME_NO_EXPIRE) {

                uint64_t tm = table->entries[i].lifetime - now;

                /* we must interpret the values as signed */
                if ((int64_t)tm < 0 ) {
                    printf("%-16s ", "EXPIRED");
                }
                else {
                    printf("%"PRIu32".%05"PRIu32, (uint32_t)(tm / 1000000), (uint32_t)(tm % 1000000));
                }
            }
            else {
                printf("%-16s ", "NEVER");
            }

            printf("%d\n", (int)table->entries[i].iface_id);
        }
    }

    mutex_unlock(&mtx_access);
}