#include <stdio.h>
#include <inttypes.h>
typedef enum {
mr_vrf_rt_cnt,
mr_vrf_rt,
}__attribute__((__packed__)) mr_vrf_type_e;
typedef struct mr_command_vrf {
mr_vrf_type_e type; // 1
uint64_t uid; // 8
struct {
uint8_t family; /* AF_INET / AF_INET6 */
union {
uint32_t v4;
uint64_t v6;
} addr;
}__attribute__((__packed__)) ip; // 9
uint32_t teid; // 4
char ni_name[]; // 0
}__attribute__((__packed__)) mr_command_vrf_t;
int main(void) {
printf("%d\n", sizeof(mr_command_vrf_t
));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxpbnR0eXBlcy5oPgoKdHlwZWRlZiBlbnVtIHsKCW1yX3ZyZl9ydF9jbnQsCgltcl92cmZfcnQsCn1fX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fKSkgbXJfdnJmX3R5cGVfZTsKCnR5cGVkZWYgc3RydWN0IG1yX2NvbW1hbmRfdnJmIHsKCW1yX3ZyZl90eXBlX2UgdHlwZTsJCQkJCS8vIDEKCXVpbnQ2NF90IHVpZDsJCQkJCS8vIDgKCXN0cnVjdCB7CQkJCQkJCgkJdWludDhfdCBmYW1pbHk7ICAgIC8qIEFGX0lORVQgLyBBRl9JTkVUNiAqLwoJCXVuaW9uIHsKCQkJdWludDMyX3QgdjQ7CgkJCXVpbnQ2NF90IHY2OwoJCX0gYWRkcjsKCX1fX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fKSkgaXA7CQkJCS8vIDkKCXVpbnQzMl90IHRlaWQ7CQkJCQkvLyA0CgljaGFyIG5pX25hbWVbXTsJCQkJCS8vIDAKfV9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKSBtcl9jb21tYW5kX3ZyZl90OwoKaW50IG1haW4odm9pZCkgewoJcHJpbnRmKCIlZFxuIiwgc2l6ZW9mKG1yX2NvbW1hbmRfdnJmX3QpKTsKCQoJcmV0dXJuIDA7Cn0K