summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--ryu/tests/packet_data_generator2/gen.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/ryu/tests/packet_data_generator2/gen.c b/ryu/tests/packet_data_generator2/gen.c
index 9c46d4b3..5691ae6f 100644
--- a/ryu/tests/packet_data_generator2/gen.c
+++ b/ryu/tests/packet_data_generator2/gen.c
@@ -17,6 +17,7 @@
*/
#include <lib/learn.h>
+#include <lib/list.h>
#include <lib/ofpbuf.h>
#include <lib/ofp-actions.h>
#include <lib/ofp-msgs.h>
@@ -208,6 +209,40 @@ flow_mod_conjunction(enum ofputil_protocol proto)
}
struct ofpbuf *
+group_mod(enum ofputil_protocol proto)
+{
+ struct ofputil_group_mod gm;
+ struct ofpbuf acts;
+ struct ofpact_ipv4 *a_set_field;
+ struct ofpact_goto_table *a_goto;
+ struct ofputil_bucket bckt;
+
+ memset(&gm, 0, sizeof(gm));
+ gm.command = OFPGC15_INSERT_BUCKET;
+ gm.type = OFPGT11_SELECT;
+ gm.group_id = 0xaaaaaaaa;
+ gm.command_bucket_id = 0xbbbbbbbb;
+
+ ofpbuf_init(&acts, 0x18);
+ ofpact_put_STRIP_VLAN(&acts);
+ a_set_field = ofpact_put_SET_IPV4_DST(&acts);
+ a_set_field->ipv4 = inet_addr("192.168.2.9");
+
+ bckt.weight = 0xcccc;
+ bckt.watch_port = 0xdddd;
+ bckt.watch_group = 0xeeeeeeee;
+ bckt.bucket_id = 0x12345678;
+ bckt.ofpacts = acts.data;
+ bckt.ofpacts_len = acts.size;
+
+ list_init(&(gm.buckets));
+ list_push_back(&(gm.buckets), &(bckt.list_node));
+
+ return ofputil_encode_group_mod(
+ ofputil_protocol_to_ofp_version(proto), &gm);
+}
+
+struct ofpbuf *
bundle_ctrl(enum ofputil_protocol proto)
{
struct ofputil_bundle_ctrl_msg msg;
@@ -271,6 +306,8 @@ const struct message messages[] = {
((const struct protocol_version *[]){&p13, &p15, NULL})),
M(flow_mod_conjunction,
((const struct protocol_version *[]){&p13, &p15, NULL})),
+ M(group_mod,
+ ((const struct protocol_version *[]){&p15, NULL})),
M(bundle_ctrl,
((const struct protocol_version *[]){&p15, NULL})),
M(bundle_add,