Add loopback port to l2gre vport.
diff --git a/c_gen/templates/loci_show.h b/c_gen/templates/loci_show.h
index 4179b13..aff632f 100644
--- a/c_gen/templates/loci_show.h
+++ b/c_gen/templates/loci_show.h
@@ -220,6 +220,7 @@
#define LOCI_SHOW_u32_role(writer, cookie, val) LOCI_SHOW_x32(writer, cookie, val)
#define LOCI_SHOW_u16_total_len(writer, cookie, val) LOCI_SHOW_u16(writer, cookie, val)
#define LOCI_SHOW_port_no_port_no(writer, cookie, val) LOCI_SHOW_port_no(writer, cookie, val)
+#define LOCI_SHOW_port_no_loopback_port_no(writer, cookie, val) LOCI_SHOW_port_no(writer, cookie, val)
#define LOCI_SHOW_mac_hw_addr(writer, cookie, val) LOCI_SHOW_mac(writer, cookie, val)
#define LOCI_SHOW_u32_config(writer, cookie, val) LOCI_SHOW_x32(writer, cookie, val)
#define LOCI_SHOW_u32_advertise(writer, cookie, val) LOCI_SHOW_x32(writer, cookie, val)
diff --git a/openflow_input/bsn_vport b/openflow_input/bsn_vport
index 82d9d33..9007bf2 100644
--- a/openflow_input/bsn_vport
+++ b/openflow_input/bsn_vport
@@ -79,16 +79,17 @@
uint16_t type == 1;
uint16_t length;
enum ofp_bsn_vport_l2gre_flags flags;
- of_port_no_t port_no; /* OF port number of parent */
- of_mac_addr_t local_mac; /* Local MAC */
- of_mac_addr_t nh_mac; /* Next Hop MAC */
- of_ipv4_t src_ip; /* Source IP */
- of_ipv4_t dst_ip; /* Destination IP */
+ of_port_no_t port_no; /* OF port number of parent */
+ of_port_no_t loopback_port_no; /* OF port number of loopback */
+ of_mac_addr_t local_mac; /* Local MAC */
+ of_mac_addr_t nh_mac; /* Next Hop MAC */
+ of_ipv4_t src_ip; /* Source IP */
+ of_ipv4_t dst_ip; /* Destination IP */
uint8_t dscp;
uint8_t ttl;
pad(2);
- uint32_t vpn; /* VPN ID (for GRE Key) */
- of_port_name_t if_name; /* Virtual Interface Name */
+ uint32_t vpn; /* VPN ID (for GRE Key) */
+ of_port_name_t if_name; /* Virtual Interface Name */
};
diff --git a/test_data/of13/bsn_virtual_port_create_request__l2gre.data b/test_data/of13/bsn_virtual_port_create_request__l2gre.data
index b5fd5fa..9d90293 100644
--- a/test_data/of13/bsn_virtual_port_create_request__l2gre.data
+++ b/test_data/of13/bsn_virtual_port_create_request__l2gre.data
@@ -1,13 +1,14 @@
-- binary
04 04 # version, type
-00 48 # len
+00 4c # len
01 02 03 04 # xid
00 5c 16 c7 # experimenter
00 00 00 0f # subtype
00 01 # vport type
-00 38 # vport len
+00 3c # vport len
00 00 00 03 # vport flags
-00 00 00 01 # vport port no
+00 00 00 01 # parent port no
+00 00 00 02 # loopback 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
@@ -20,6 +21,7 @@
xid=0x01020304, vport=ofp.bsn_vport_l2gre(
flags=ofp.OF_BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID | ofp.OF_BSN_VPORT_L2GRE_DSCP_ASSIGN,
port_no=1,
+loopback_port_no=2,
local_mac=[0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f],
nh_mac=[0x01, 0x02, 0x03, 0x04, 0x05, 0x06],
src_ip=0xc0000002,
@@ -42,6 +44,7 @@
OF_BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID |
OF_BSN_VPORT_L2GRE_DSCP_ASSIGN);
of_bsn_vport_l2gre_port_no_set(vport, 1);
+ of_bsn_vport_l2gre_loopback_port_no_set(vport, 2);
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);
@@ -65,6 +68,7 @@
)
)
.setPortNo(OFPort.of(1))
+ .setLoopbackPortNo(OFPort.of(2))
.setLocalMac(MacAddress.of("0a:0b:0c:0d:0e:0f"))
.setNhMac(MacAddress.of("01:02:03:04:05:06"))
.setSrcIp(IPv4Address.of("192.0.0.2"))