| -- binary |
| 00 68 # length |
| 03 # table_id |
| 00 # pad |
| |
| #### 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 |
| 00 05 # idle_timeout |
| 00 0a # hard_timeout |
| 00 00 00 00 00 00 # pad |
| 01 23 45 67 89 ab cd ef # cookie |
| 00 00 00 00 00 00 00 0a # packet_count |
| 00 00 00 00 00 00 03 e8 # byte_count |
| 00 00 # actions[0].type |
| 00 08 # actions[0].len |
| 00 01 # actions[0].port |
| 00 00 # actions[0].max_len |
| 00 00 # actions[1].type |
| 00 08 # actions[1].len |
| 00 02 # actions[1].port |
| 00 00 # actions[1].max_len |
| -- python |
| ofp.flow_stats_entry( |
| table_id=3, |
| 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, |
| idle_timeout=5, |
| hard_timeout=10, |
| cookie=0x0123456789abcdef, |
| packet_count=10, |
| byte_count=1000, |
| actions=[ |
| ofp.action.output(port=1), |
| ofp.action.output(port=2)]) |
| -- c |
| obj = of_flow_stats_entry_new(OF_VERSION_1_0); |
| { |
| of_object_t list; |
| of_flow_stats_entry_actions_bind(obj, &list); |
| { |
| of_object_t *obj = of_action_output_new(OF_VERSION_1_0); |
| of_action_output_max_len_set(obj, 0); |
| of_action_output_port_set(obj, 1); |
| of_list_append(&list, obj); |
| of_object_delete(obj); |
| } |
| { |
| of_object_t *obj = of_action_output_new(OF_VERSION_1_0); |
| of_action_output_max_len_set(obj, 0); |
| of_action_output_port_set(obj, 2); |
| of_list_append(&list, obj); |
| 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); |
| of_flow_stats_entry_duration_sec_set(obj, 1); |
| of_flow_stats_entry_hard_timeout_set(obj, 10); |
| 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) |
| ) |
| ); |