blob: fc09a23fff8195401f3f95e6559f877daf298cba [file] [log] [blame]
-- binary
01 0e 00 70 12 34 56 78
00 10 00 02 00 03 01 23
45 67 89 ab cd ef 01 23
45 67 00 00 00 00 00 00
00 00 00 00 c0 a8 03 7f
ff ff ff ff 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 05 00 00 00 00
00 00 00 00 00 00 00 02
00 00 00 08 ff fb 00 00
ff ff 00 10 00 00 23 20
00 12 00 00 00 00 00 00
ff ff 00 10 00 5c 16 c7
00 00 00 02 00 00 00 00
-- python
ofp.message.flow_add(
xid=0x12345678,
match=ofp.match(
wildcards=ofp.OFPFW_DL_VLAN|ofp.OFPFW_DL_VLAN_PCP,
in_port=3,
ipv4_src=0xc0a8037f,
ipv4_dst=0xffffffff,
eth_src=[0x01, 0x23, 0x45, 0x67, 0x89, 0xab],
eth_dst=[0xcd, 0xef, 0x01, 0x23, 0x45, 0x67]),
idle_timeout=5,
flags=ofp.OFPFF_CHECK_OVERLAP,
actions=[
ofp.action.output(port=ofp.OFPP_FLOOD),
ofp.action.nicira_dec_ttl(),
ofp.action.bsn_set_tunnel_dst()])
-- python pretty-printer
flow_add {
xid = 0x12345678,
match = match_v1 {
wildcards = OFPFW_DL_VLAN|OFPFW_DL_VLAN_PCP,
in_port = 3,
eth_src = 01:23:45:67:89:ab,
eth_dst = cd:ef:01:23:45:67,
vlan_vid = 0x0,
vlan_pcp = 0x0,
eth_type = 0x0,
ip_dscp = 0x0,
ip_proto = 0x0,
ipv4_src = 192.168.3.127,
ipv4_dst = 255.255.255.255,
tcp_src = 0x0,
tcp_dst = 0x0
},
cookie = 0x0,
idle_timeout = 0x5,
hard_timeout = 0x0,
priority = 0x0,
buffer_id = 0x0,
out_port = 0,
flags = 0x2,
actions = [
output { port = OFPP_FLOOD, max_len = 0x0 },
nicira_dec_ttl { },
bsn_set_tunnel_dst { dst = 0x0 }
]
}
-- c
obj = of_flow_add_new(OF_VERSION_1_0);
of_flow_add_xid_set(obj, 0x12345678);
of_flow_add_idle_timeout_set(obj, 5);
of_flow_add_flags_set(obj, 2);
{
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.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_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_add_match_set(obj, &match);
}
{
of_list_action_t actions;
of_flow_add_actions_bind(obj, &actions);
{
of_action_t action;
of_action_output_init(&action.output, OF_VERSION_1_0, -1, 1);
of_list_action_append_bind(&actions, &action);
of_action_output_port_set(&action.output, OF_PORT_DEST_FLOOD);
}
{
of_action_t action;
of_action_nicira_dec_ttl_init(&action.nicira_dec_ttl, OF_VERSION_1_0, -1, 1);
of_list_action_append_bind(&actions, &action);
}
{
of_action_t action;
of_action_bsn_set_tunnel_dst_init(&action.bsn_set_tunnel_dst, OF_VERSION_1_0, -1, 1);
of_list_action_append_bind(&actions, &action);
}
}