groups-1.3: use group_mod subclasses
diff --git a/tests-1.3/groups.py b/tests-1.3/groups.py
index 3c33f2e..1a2903d 100644
--- a/tests-1.3/groups.py
+++ b/tests-1.3/groups.py
@@ -32,8 +32,7 @@
     def runTest(self):
         port1, = openflow_ports(1)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=0,
             buckets=[
@@ -58,8 +57,7 @@
     def runTest(self):
         port1, = openflow_ports(1)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=ofp.OFPG_MAX,
             buckets=[
@@ -82,8 +80,7 @@
     """
 
     def runTest(self):
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=0,
             buckets=[
@@ -102,8 +99,7 @@
     def runTest(self):
         port1, port2, = openflow_ports(2)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=0,
             buckets=[
@@ -112,8 +108,7 @@
         self.controller.message_send(msg)
         do_barrier(self.controller)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=0,
             buckets=[
@@ -132,8 +127,7 @@
     def runTest(self):
         port1, = openflow_ports(1)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=ofp.OFPG_ALL,
             buckets=[
@@ -152,8 +146,7 @@
     def runTest(self):
         port1, = openflow_ports(1)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=ofp.OFPG_MAX+1,
             buckets=[
@@ -172,8 +165,7 @@
     def runTest(self):
         port1, port2, = openflow_ports(2)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=0,
             buckets=[
@@ -182,8 +174,7 @@
         self.controller.message_send(msg)
         do_barrier(self.controller)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_MODIFY,
+        msg = ofp.message.group_modify(
             group_type=ofp.OFPGT_ALL,
             group_id=0,
             buckets=[
@@ -208,8 +199,7 @@
     def runTest(self):
         port1, = openflow_ports(1)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_MODIFY,
+        msg = ofp.message.group_modify(
             group_type=ofp.OFPGT_ALL,
             group_id=0,
             buckets=[
@@ -228,8 +218,7 @@
     def runTest(self):
         port1, = openflow_ports(1)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=0,
             buckets=[
@@ -238,8 +227,7 @@
         self.controller.message_send(msg)
         do_barrier(self.controller)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=1,
             buckets=[
@@ -248,8 +236,7 @@
         self.controller.message_send(msg)
         do_barrier(self.controller)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=2,
             buckets=[
@@ -258,8 +245,7 @@
         self.controller.message_send(msg)
         do_barrier(self.controller)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_MODIFY,
+        msg = ofp.message.group_modify(
             group_type=ofp.OFPGT_ALL,
             group_id=0,
             buckets=[
@@ -278,8 +264,7 @@
     def runTest(self):
         port1, = openflow_ports(1)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=ofp.OFPG_ALL,
             buckets=[
@@ -298,8 +283,7 @@
     def runTest(self):
         port1, = openflow_ports(1)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=0,
             buckets=[
@@ -308,8 +292,7 @@
         self.controller.message_send(msg)
         do_barrier(self.controller)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_MODIFY,
+        msg = ofp.message.group_modify(
             group_type=ofp.OFPGT_ALL,
             group_id=0,
             buckets=[])
@@ -333,8 +316,7 @@
     def runTest(self):
         port1, = openflow_ports(1)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=0,
             buckets=[
@@ -343,9 +325,7 @@
         self.controller.message_send(msg)
         do_barrier(self.controller)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_DELETE,
-            group_id=0)
+        msg = ofp.message.group_delete(group_id=0)
 
         self.controller.message_send(msg)
         do_barrier(self.controller)
@@ -360,9 +340,7 @@
     """
 
     def runTest(self):
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_DELETE,
-            group_id=0)
+        msg = ofp.message.group_delete(group_id=0)
 
         self.controller.message_send(msg)
         do_barrier(self.controller)
@@ -377,8 +355,7 @@
     def runTest(self):
         port1, = openflow_ports(1)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=0,
             buckets=[
@@ -387,8 +364,7 @@
         self.controller.message_send(msg)
         do_barrier(self.controller)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=1,
             buckets=[
@@ -397,9 +373,7 @@
         self.controller.message_send(msg)
         do_barrier(self.controller)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_DELETE,
-            group_id=ofp.OFPG_ALL)
+        msg = ofp.message.group_delete(group_id=ofp.OFPG_ALL)
 
         self.controller.message_send(msg)
         do_barrier(self.controller)
@@ -416,8 +390,7 @@
     def runTest(self):
         port1, port2, = openflow_ports(2)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=0,
             buckets=[
@@ -437,8 +410,7 @@
     def runTest(self):
         port1, = openflow_ports(1)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_INDIRECT,
             group_id=0,
             buckets=[
@@ -457,8 +429,7 @@
     def runTest(self):
         port1, port2, = openflow_ports(2)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_INDIRECT,
             group_id=0,
             buckets=[
@@ -478,8 +449,7 @@
     def runTest(self):
         port1, port2, = openflow_ports(2)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_SELECT,
             group_id=0,
             buckets=[
@@ -499,8 +469,7 @@
     def runTest(self):
         port1, port2, = openflow_ports(2)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=10,
             buckets=[
@@ -544,8 +513,7 @@
     def runTest(self):
         port1, port2, = openflow_ports(2)
 
-        msg0 = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg0 = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=0,
             buckets=[
@@ -559,8 +527,7 @@
         self.controller.message_send(msg0)
         do_barrier(self.controller)
 
-        msg1 = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg1 = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=1,
             buckets=[
@@ -600,8 +567,7 @@
     def runTest(self):
         port1, port2, port3, = openflow_ports(3)
 
-        msg0 = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg0 = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=0,
             buckets=[
@@ -618,8 +584,7 @@
         self.controller.message_send(msg0)
         do_barrier(self.controller)
 
-        msg1 = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg1 = ofp.message.group_add(
             group_type=ofp.OFPGT_SELECT,
             group_id=1,
             buckets=[
@@ -642,8 +607,7 @@
         self.controller.message_send(msg1)
         do_barrier(self.controller)
 
-        msg2 = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg2 = ofp.message.group_add(
             group_type=ofp.OFPGT_FF,
             group_id=2,
             buckets=[
@@ -692,8 +656,7 @@
     def runTest(self):
         port1, = openflow_ports(1)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=1,
             buckets=[])
@@ -701,8 +664,7 @@
         self.controller.message_send(msg)
         do_barrier(self.controller)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_ALL,
             group_id=2,
             buckets=[])
@@ -780,8 +742,7 @@
     def runTest(self):
         port1, port2 = openflow_ports(2)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_SELECT,
             group_id=1,
             buckets=[])
@@ -813,8 +774,7 @@
     def runTest(self):
         port1, port2 = openflow_ports(2)
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_SELECT,
             group_id=1,
             buckets=[
@@ -849,8 +809,7 @@
         port1, port2, port3, port4 = openflow_ports(num_out_ports + 1)
         out_ports = [port2, port3, port4]
 
-        msg = ofp.message.group_mod(
-            command=ofp.OFPGC_ADD,
+        msg = ofp.message.group_add(
             group_type=ofp.OFPGT_SELECT,
             group_id=1,
             buckets=[