On 4/2/14, 8:59 PM, Jarno Rajahalme wrote:
[...]
diff --git a/lib/ofpbuf.h b/lib/ofpbuf.h
index 8d1cb11..fa8a3f0 100644
--- a/lib/ofpbuf.h
+++ b/lib/ofpbuf.h
@@ -36,26 +36,46 @@ enum OVS_PACKED_ENUM ofpbuf_source {
};
/* Buffer for holding arbitrary data. An ofpbuf is automatically reallocated
- * as necessary if it grows too large for the available memory. */
+ * as necessary if it grows too large for the available memory.
+ *
+ * 'frame' and offset conventions:
+ *
+ * Network frames (aka "packets"): 'frame' MUST be set to the start of the
+ * packet, layer offsets MAY be set as appropriate for the packet.
+ * Additionally, we assume in many places that the 'frame' and 'data' are
+ * the same for packets.
+ *
+ * OpenFlow messages: 'frame' points to the start of the OpenFlow
+ * header, while 'l3_ofs' is the length of the OpenFlow header.
+ * When parsing, the 'data' will move past these, as data is being
+ * pulled from the OpenFlow message.
+ *
+ * Actions: When encoding OVS action lists, the 'frame' is used
+ * as a pointer to the beginning of the current action (see ofpact_put()).
+ *
+ * rconn: Reuses 'frame' as a private pointer while queuing.
+ */
struct ofpbuf {
void *base; /* First byte of allocated space. */
uint32_t allocated; /* Number of bytes allocated. */
uint32_t size; /* Number of bytes in use. */
void *data; /* First byte actually in use. */
- void *l2; /* Link-level header. */
- uint16_t l2_5_ofs; /* MPLS label stack offset from l2, or
+ void *frame; /* Packet frame start, or NULL. */
+ uint16_t l2_5_ofs; /* MPLS label stack offset from 'packet', or
* UINT16_MAX */
- uint16_t l3_ofs; /* Network-level header offset from l2, or
- * UINT16_MAX. */
- uint16_t l4_ofs; /* Transport-level header offset from l2, or
- UINT16_MAX. */
+ uint16_t l3_ofs; /* Network-level header offset from 'packet',
+ or UINT16_MAX. */
+ uint16_t l4_ofs; /* Transport-level header offset from 'packet',
+ or UINT16_MAX. */
Shouldn't you say 'frame' in the comments instead of 'packet' (using
quotes usually refers to struct members) ?
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev