summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYAMAMOTO Takashi <yamamoto@valinux.co.jp>2015-04-27 14:35:53 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2015-04-28 10:57:29 +0900
commitc037915f4444d57fb007dd79fb11c39626ddfbd2 (patch)
tree42f6cdd578dcd3ebdfbff1a5eb9468bdd39842da
parentac7988f15b4dbee40a16f96726008b506f279932 (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.c40
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);