test_data: add java unit tests for 1.0, some improvements
diff --git a/test_data/of10/flow_stats_entry.data b/test_data/of10/flow_stats_entry.data
index 2f9df64..3422064 100644
--- a/test_data/of10/flow_stats_entry.data
+++ b/test_data/of10/flow_stats_entry.data
@@ -2,12 +2,20 @@
00 68 # length
03 # table_id
00 # pad
-00 3f ff ff # match.wildcards
-00 00 00 00 # remaining match fields
-00 00 00 00 00 00 00 00 # ...
-00 00 00 00 00 00 00 00 # ...
-00 00 00 00 00 00 00 00 # ...
-00 00 00 00 00 00 00 00 # ...
+
+#### ofp_match_v1
+00 30 00 e2 # wild cards=(OFPFW_DL_VLAN|OFPFW_NW_PROTO|OFPFW_TP_SRC|OFPFW_TP_DST|OFPFW_DL_VLAN_PCP|OFPFW_NW_TOS)
+00 03 # in_port
+01 23 45 67 89 ab # eth_src
+cd ef 01 23 45 67 # eth_dst
+00 00 # dl_vlan
+00 00 # dl_pcp, pad
+08 00 # dl_type
+00 00 00 00 # nw_tos, nw_proto, pad[2]
+c0 a8 03 7f # nw_src
+ff ff ff ff # nw_dst
+00 00 00 00 # tcp_src, tcp_dst
+
00 00 00 01 # duration_sec
00 00 00 02 # duration_nsec
00 64 # priority
@@ -28,7 +36,14 @@
-- python
ofp.flow_stats_entry(
table_id=3,
- match=ofp.match(),
+ match=ofp.match(
+ wildcards=ofp.OFPFW_DL_VLAN|ofp.OFPFW_NW_PROTO|ofp.OFPFW_TP_SRC|ofp.OFPFW_TP_DST|ofp.OFPFW_DL_VLAN_PCP|ofp.OFPFW_NW_TOS,
+ in_port=3,
+ eth_type=0x800,
+ ipv4_src=0xc0a8037f,
+ ipv4_dst=0xffffffff,
+ eth_src=[0x01, 0x23, 0x45, 0x67, 0x89, 0xab],
+ eth_dst=[0xcd, 0xef, 0x01, 0x23, 0x45, 0x67]),
duration_sec=1,
duration_nsec=2,
priority=100,
@@ -60,6 +75,7 @@
of_object_delete(obj);
}
}
+
of_flow_stats_entry_byte_count_set(obj, 1000);
of_flow_stats_entry_cookie_set(obj, 81985529216486895);
of_flow_stats_entry_duration_nsec_set(obj, 2);
@@ -68,8 +84,54 @@
of_flow_stats_entry_idle_timeout_set(obj, 5);
{
of_match_t match = { OF_VERSION_1_0 };
+ match.fields.in_port = 3;
+ match.fields.eth_src = (of_mac_addr_t) { { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab } };
+ match.fields.eth_dst = (of_mac_addr_t) { { 0xcd, 0xef, 0x01, 0x23, 0x45, 0x67 } };
+ match.fields.eth_type = 0x800;
+ match.fields.ipv4_src = 0xc0a8037f;
+ match.fields.ipv4_dst = 0xffffffff;
+ OF_MATCH_MASK_IN_PORT_EXACT_SET(&match);
+ OF_MATCH_MASK_ETH_SRC_EXACT_SET(&match);
+ OF_MATCH_MASK_ETH_DST_EXACT_SET(&match);
+ OF_MATCH_MASK_ETH_TYPE_EXACT_SET(&match);
+ //OF_MATCH_MASK_VLAN_VID_EXACT_SET(&match);
+ //OF_MATCH_MASK_VLAN_PCP_EXACT_SET(&match);
+ OF_MATCH_MASK_ETH_TYPE_EXACT_SET(&match);
+ //OF_MATCH_MASK_IP_DSCP_EXACT_SET(&match);
+ //OF_MATCH_MASK_IP_PROTO_EXACT_SET(&match);
+ OF_MATCH_MASK_IPV4_SRC_EXACT_SET(&match);
+ OF_MATCH_MASK_IPV4_DST_EXACT_SET(&match);
+ //OF_MATCH_MASK_TCP_SRC_EXACT_SET(&match);
+ //OF_MATCH_MASK_TCP_DST_EXACT_SET(&match);
of_flow_stats_entry_match_set(obj, &match);
}
of_flow_stats_entry_packet_count_set(obj, 10);
of_flow_stats_entry_priority_set(obj, 100);
of_flow_stats_entry_table_id_set(obj, 3);
+-- java
+ builder
+ .setTableId((short) 3)
+ .setMatch(
+ factory.buildMatch()
+ .setExact(MatchField.IN_PORT, OFPort.of(3))
+ .setExact(MatchField.ETH_TYPE, EthType.IPv4)
+ .setExact(MatchField.IPV4_SRC, IPv4Address.of(0xc0a8037f))
+ .setExact(MatchField.IPV4_DST, IPv4Address.of(0xffffffff))
+ .setExact(MatchField.ETH_SRC, MacAddress.of("01:23:45:67:89:ab"))
+ .setExact(MatchField.ETH_DST, MacAddress.of("cd:ef:01:23:45:67"))
+ .build()
+ )
+ .setDurationSec(1)
+ .setDurationNsec(2)
+ .setPriority(100)
+ .setIdleTimeout(5)
+ .setHardTimeout(10)
+ .setCookie(U64.of(0x0123456789abcdefL))
+ .setPacketCount(U64.of(10))
+ .setByteCount(U64.of(1000))
+ .setActions(
+ ImmutableList.<OFAction>of(
+ factory.actions().output(OFPort.of(1), 0),
+ factory.actions().output(OFPort.of(2), 0)
+ )
+ );