| -- binary |
| 05 0c # version, type |
| 00 58 # length |
| 12 34 56 78 # xid |
| 02 # reason |
| 00 00 00 00 00 00 00 # pad |
| 00 00 00 04 # port_no |
| 00 48 # length |
| 00 00 # pad |
| 01 02 03 04 05 06 # hw_addr |
| 00 00 # pad |
| 66 6f 6f 00 00 00 00 00 # name |
| 00 00 00 00 00 00 00 00 # ... |
| 00 00 00 24 # config |
| 00 00 00 02 # state |
| 00 00 # properties[0].type (ethernet) |
| 00 20 # properties[0].length |
| 00 00 00 00 # pad |
| 00 00 00 01 # properties[0].curr |
| 00 00 00 02 # properties[0].advertised |
| 00 00 00 04 # properties[0].supported |
| 00 00 00 08 # properties[0].peer |
| 00 00 00 0a # properties[0].curr_speed |
| 00 00 00 14 # properties[0].max_speed |
| -- python |
| ofp.message.port_status( |
| xid=0x12345678, |
| reason=ofp.OFPPR_MODIFY, |
| desc=ofp.port_desc( |
| port_no=4, |
| hw_addr=[1,2,3,4,5,6], |
| name="foo", |
| config=ofp.OFPPC_NO_FWD|ofp.OFPPC_NO_RECV, |
| state=ofp.OFPPS_BLOCKED, |
| properties=[ |
| ofp.port_desc_prop.ethernet( |
| curr=ofp.OFPPF_10MB_HD, |
| advertised=ofp.OFPPF_10MB_FD, |
| supported=ofp.OFPPF_100MB_HD, |
| peer=ofp.OFPPF_100MB_FD, |
| curr_speed=10, |
| max_speed=20)])) |
| -- c |
| obj = of_port_status_new(OF_VERSION_1_4); |
| of_port_status_xid_set(obj, 0x12345678); |
| of_port_status_reason_set(obj, OF_PORT_CHANGE_REASON_MODIFY); |
| { |
| of_object_t desc; |
| of_port_status_desc_bind(obj, &desc); |
| of_port_desc_port_no_set(&desc, 4); |
| of_mac_addr_t hw_addr = { { 1, 2, 3, 4, 5, 6 } }; |
| of_port_desc_hw_addr_set(&desc, hw_addr); |
| of_port_name_t name = "foo"; |
| of_port_desc_name_set(&desc, name); |
| of_port_desc_config_set(&desc, OF_PORT_CONFIG_FLAG_NO_FWD|OF_PORT_CONFIG_FLAG_NO_RECV); |
| of_port_desc_state_set(&desc, OF_PORT_STATE_FLAG_BLOCKED); |
| { |
| of_list_port_desc_prop_t list; |
| of_port_desc_properties_bind(&desc, &list); |
| { |
| of_object_t *obj = of_port_desc_prop_ethernet_new(OF_VERSION_1_4); |
| of_port_desc_prop_ethernet_curr_set(obj, OF_PORT_FEATURE_FLAG_10MB_HD); |
| of_port_desc_prop_ethernet_advertised_set(obj, OF_PORT_FEATURE_FLAG_10MB_FD); |
| of_port_desc_prop_ethernet_supported_set(obj, OF_PORT_FEATURE_FLAG_100MB_HD); |
| of_port_desc_prop_ethernet_peer_set(obj, OF_PORT_FEATURE_FLAG_100MB_FD); |
| of_port_desc_prop_ethernet_curr_speed_set(obj, 10); |
| of_port_desc_prop_ethernet_max_speed_set(obj, 20); |
| of_list_append(&list, obj); |
| of_object_delete(obj); |
| } |
| } |
| } |