Fix bsn_vport subtype, add l2gre vport and test file.
diff --git a/test_data/of13/bsn_vport_create_request__l2gre.data b/test_data/of13/bsn_vport_create_request__l2gre.data
new file mode 100644
index 0000000..f879651
--- /dev/null
+++ b/test_data/of13/bsn_vport_create_request__l2gre.data
@@ -0,0 +1,53 @@
+-- binary
+04 04 # version, type
+00 44 # len
+01 02 03 04 # xid
+00 5c 16 c7 # experimenter
+00 00 00 0f # subtype
+00 01 # vport type
+00 34 # vport len
+00 00 00 01 # vport port no
+0a 0b 0c 0d 0e 0f # local mac
+01 02 03 04 05 06 # next hop mac
+c0 00 00 02 # src ip
+c0 00 10 02 # dst ip
+00 01 40 00 # dscp mode, dscp, ttl, pad
+00 00 be ef # vpn
+66 6f 6f 00 00 00 00 00 00 00 00 00 00 00 00 00 # vport if name
+-- python
+ofp.message.bsn_virtual_port_create_request(
+xid=0x01020304, vport=ofp.bsn_vport_l2gre(
+port_no=1,
+local_mac=[0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f],
+nh_mac=[0x01, 0x02, 0x03, 0x04, 0x05, 0x06],
+src_ip=0xc0000002,
+dst_ip=0xc0001002,
+dscp_mode=0,
+dscp=1,
+ttl=64,
+vpn=0xbeef,
+if_name="foo"
+))
+-- c
+obj = of_bsn_virtual_port_create_request_new(OF_VERSION_1_3);
+of_bsn_virtual_port_create_request_xid_set(obj, 0x01020304);
+{
+ of_object_t *vport = of_bsn_vport_l2gre_new(OF_VERSION_1_3);
+ {
+ of_port_name_t if_name = "foo";
+ of_mac_addr_t local_mac = { { 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f } };
+ of_mac_addr_t nh_mac = { { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 } };
+ of_bsn_vport_l2gre_port_no_set(vport, 1);
+ of_bsn_vport_l2gre_local_mac_set(vport, local_mac);
+ of_bsn_vport_l2gre_nh_mac_set(vport, nh_mac);
+ of_bsn_vport_l2gre_src_ip_set(vport, 0xc0000002);
+ of_bsn_vport_l2gre_dst_ip_set(vport, 0xc0001002);
+ of_bsn_vport_l2gre_dscp_mode_set(vport, 0);
+ of_bsn_vport_l2gre_dscp_set(vport, 1);
+ of_bsn_vport_l2gre_ttl_set(vport, 64);
+ of_bsn_vport_l2gre_vpn_set(vport, 0xbeef);
+ of_bsn_vport_l2gre_if_name_set(vport, if_name);
+ }
+ of_bsn_virtual_port_create_request_vport_set(obj, vport);
+ of_object_delete(vport);
+}
diff --git a/test_data/of13/bsn_vport_create_request__q_in_q.data b/test_data/of13/bsn_vport_create_request__q_in_q.data
index 2c35542..19c5876 100644
--- a/test_data/of13/bsn_vport_create_request__q_in_q.data
+++ b/test_data/of13/bsn_vport_create_request__q_in_q.data
@@ -22,3 +22,20 @@
egress_vlan_id=5,
if_name="foo"
))
+-- c
+obj = of_bsn_virtual_port_create_request_new(OF_VERSION_1_3);
+of_bsn_virtual_port_create_request_xid_set(obj, 0x01020304);
+{
+ of_object_t *vport = of_bsn_vport_q_in_q_new(OF_VERSION_1_3);
+ {
+ of_port_name_t if_name = "foo";
+ of_bsn_vport_q_in_q_port_no_set(vport, 1);
+ of_bsn_vport_q_in_q_ingress_tpid_set(vport, 2);
+ of_bsn_vport_q_in_q_ingress_vlan_id_set(vport, 3);
+ of_bsn_vport_q_in_q_egress_tpid_set(vport, 4);
+ of_bsn_vport_q_in_q_egress_vlan_id_set(vport, 5);
+ of_bsn_vport_q_in_q_if_name_set(vport, if_name);
+ }
+ of_bsn_virtual_port_create_request_vport_set(obj, vport);
+ of_object_delete(vport);
+}