From c037915f4444d57fb007dd79fb11c39626ddfbd2 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Takashi Date: Mon, 27 Apr 2015 14:35:53 +0900 Subject: packet_data_generator2: Make the list of OF versions per messages Preparation for OF1.3 tests. Signed-off-by: YAMAMOTO Takashi Signed-off-by: FUJITA Tomonori --- ryu/tests/packet_data_generator2/gen.c | 40 ++++++++++++++++++++-------------- 1 file 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); -- cgit v1.2.3