-- binary
01 0c # version / type
00 40 # length
00 00 00 04 # xid
01 # reason
00 00 00 00 00 00 00 # pad
ff fd # desc.port_no
01 02 03 04 05 06 # desc.hw_addr
66 6f 6f 00 00 00 00 00 # desc.name
00 00 00 00 00 00 00 00 # ...
00 00 00 10 # desc.config
00 00 02 00 # desc.state
00 00 00 01 # desc.curr
00 00 00 20 # desc.advertised
00 00 02 00 # desc.supported
00 00 08 00 # desc.peer
-- python
ofp.message.port_status(
    xid=4,
    reason=ofp.OFPPR_DELETE,
    desc=ofp.port_desc(
        port_no=ofp.OFPP_CONTROLLER,
        hw_addr=[1,2,3,4,5,6],
        name="foo",
        config=ofp.OFPPC_NO_FLOOD,
        state=ofp.OFPPS_STP_FORWARD,
        curr=ofp.OFPPF_10MB_HD,
        advertised=ofp.OFPPF_1GB_FD,
        supported=ofp.OFPPF_AUTONEG,
        peer=ofp.OFPPF_PAUSE_ASYM))
-- c
obj = of_port_status_new(OF_VERSION_1_0);
{
    of_object_t *desc = of_port_desc_new(OF_VERSION_1_0);
    of_port_desc_advertised_set(desc, 32);
    of_port_desc_config_set(desc, 16);
    of_port_desc_curr_set(desc, 1);
    {
	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_peer_set(desc, 2048);
    of_port_desc_port_no_set(desc, 65533);
    of_port_desc_state_set(desc, 512);
    of_port_desc_supported_set(desc, 512);
    of_port_status_desc_set(obj, desc);
    of_object_delete(desc);
}
of_port_status_reason_set(obj, 1);
of_port_status_xid_set(obj, 4);
