diff options
author | YAMAMOTO Takashi <yamamoto@valinux.co.jp> | 2015-04-27 14:35:53 +0900 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2015-04-28 10:57:29 +0900 |
commit | c037915f4444d57fb007dd79fb11c39626ddfbd2 (patch) | |
tree | 42f6cdd578dcd3ebdfbff1a5eb9468bdd39842da | |
parent | ac7988f15b4dbee40a16f96726008b506f279932 (diff) |
packet_data_generator2: Make the list of OF versions per messages
Preparation for OF1.3 tests.
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r-- | ryu/tests/packet_data_generator2/gen.c | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/ryu/tests/packet_data_generator2/gen.c b/ryu/tests/packet_data_generator2/gen.c index e2043bef..7c02f3d0 100644 --- a/ryu/tests/packet_data_generator2/gen.c +++ b/ryu/tests/packet_data_generator2/gen.c @@ -174,23 +174,26 @@ struct protocol_version { #define P(v) {.name = "OFP" #v, .dir_name = "of" #v, \ .version = OFP ## v ## _VERSION,} -const struct protocol_version protocols[] = { - P(15), -}; - +const struct protocol_version p13 = P(13); +const struct protocol_version p15 = P(15); struct message { const char *name; struct ofpbuf *(*gen)(enum ofputil_protocol); + const struct protocol_version **protocols; }; -#define M(m) {.name = #m, .gen = m,} +#define M(m, p) {.name = #m, .gen = m, .protocols = p,} const struct message messages[] = { - M(packet_in), - M(flow_mod), - M(bundle_ctrl), - M(bundle_add), + M(packet_in, + ((const struct protocol_version *[]){&p15, NULL})), + M(flow_mod, + ((const struct protocol_version *[]){&p15, NULL})), + M(bundle_ctrl, + ((const struct protocol_version *[]){&p15, NULL})), + M(bundle_add, + ((const struct protocol_version *[]){&p15, NULL})), }; #if !defined(__arraycount) @@ -203,19 +206,24 @@ main(int argc, char *argv[]) struct ofpbuf *buf; unsigned int i, j; - for (j = 0; j < __arraycount(protocols); j++) { - const struct protocol_version * const p = &protocols[j]; - const enum ofputil_protocol proto = - ofputil_protocol_from_ofp_version(p->version); + for (i = 0; i < __arraycount(messages); i++) { + const struct message * const m = &messages[i]; + char name[255]; + + for (j = 0;; j++) { + const struct protocol_version * const p = m->protocols[j]; - for (i = 0; i < __arraycount(messages); i++) { - const struct message * const m = &messages[i]; - char name[255]; + if (p == NULL) { + break; + } + const enum ofputil_protocol proto = + ofputil_protocol_from_ofp_version(p->version); buf = (*m->gen)(proto); snprintf(name, sizeof(name), "../packet_data/%s/libofproto-%s-%s.packet", p->dir_name, p->name, m->name); + printf("generating %s ...\n", name); clear_xid(buf); dump_message(name, buf); ofpbuf_delete(buf); |