From 22ee3544769ae9e9d35e8efa92b4b50468badf09 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Tue, 22 Oct 2013 16:38:46 -0700 Subject: [PATCH] ofp-util: Improve comments on struct ofputil_packet_in. Signed-off-by: Ben Pfaff --- lib/ofp-util.h | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/lib/ofp-util.h b/lib/ofp-util.h index b1275d7d0..edf7ad2e1 100644 --- a/lib/ofp-util.h +++ b/lib/ofp-util.h @@ -376,17 +376,33 @@ struct ofpbuf *ofputil_encode_flow_removed(const struct ofputil_flow_removed *, /* Abstract packet-in message. */ struct ofputil_packet_in { + /* Packet data and metadata. + * + * To save bandwidth, in some cases a switch may send only the first + * several bytes of a packet, indicated by 'packet_len < total_len'. When + * the full packet is included, 'packet_len == total_len'. */ const void *packet; - size_t packet_len; - - enum ofp_packet_in_reason reason; /* One of OFPR_*. */ - uint8_t table_id; - ovs_be64 cookie; + size_t packet_len; /* Number of bytes in 'packet'. */ + size_t total_len; /* Size of packet, pre-truncation. */ + struct flow_metadata fmd; + /* Identifies a buffer in the switch that contains the full packet, to + * allow the controller to reference it later without having to send the + * entire packet back to the switch. + * + * UINT32_MAX indicates that the packet is not buffered in the switch. A + * switch should only use UINT32_MAX when it sends the entire packet. */ uint32_t buffer_id; - uint16_t total_len; /* Full length of frame. */ - struct flow_metadata fmd; /* Metadata at creation time. */ + /* Reason that the packet-in is being sent. */ + enum ofp_packet_in_reason reason; /* One of OFPR_*. */ + + /* Information about the OpenFlow flow that triggered the packet-in. + * + * A packet-in triggered by a flow table miss has no associated flow. In + * that case, 'cookie' is 0. */ + uint8_t table_id; /* OpenFlow table ID. */ + ovs_be64 cookie; /* Flow's cookie. */ }; enum ofperr ofputil_decode_packet_in(struct ofputil_packet_in *, -- 2.43.0