projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
netdev-linux: Fix strict aliasing warnings.
[openvswitch]
/
ofproto
/
pktbuf.c
diff --git
a/ofproto/pktbuf.c
b/ofproto/pktbuf.c
index 67adb560624cd901351bc6b29d4abb85098f2870..b8698021d35ed1318c0ae9563a399329ffaf4e34 100644
(file)
--- a/
ofproto/pktbuf.c
+++ b/
ofproto/pktbuf.c
@@
-26,7
+26,12
@@
#include "vconn.h"
#include "vlog.h"
#include "vconn.h"
#include "vlog.h"
-VLOG_DEFINE_THIS_MODULE(pktbuf)
+VLOG_DEFINE_THIS_MODULE(pktbuf);
+
+COVERAGE_DEFINE(pktbuf_buffer_unknown);
+COVERAGE_DEFINE(pktbuf_null_cookie);
+COVERAGE_DEFINE(pktbuf_retrieved);
+COVERAGE_DEFINE(pktbuf_reuse_error);
/* Buffers are identified by a 32-bit opaque ID. We divide the ID
* into a buffer number (low bits) and a cookie (high bits). The buffer number
/* Buffers are identified by a 32-bit opaque ID. We divide the ID
* into a buffer number (low bits) and a cookie (high bits). The buffer number
@@
-112,8
+117,8
@@
pktbuf_save(struct pktbuf *pb, struct ofpbuf *buffer, uint16_t in_port)
if (++p->cookie >= COOKIE_MAX) {
p->cookie = 0;
}
if (++p->cookie >= COOKIE_MAX) {
p->cookie = 0;
}
- p->buffer = ofpbuf_new
(sizeof(struct ofp_packet_in) + buffer->size);
-
ofpbuf_reserve(p->buffer,
sizeof(struct ofp_packet_in));
+ p->buffer = ofpbuf_new
_with_headroom(buffer->size,
+
sizeof(struct ofp_packet_in));
ofpbuf_put(p->buffer, buffer->data, buffer->size);
p->timeout = time_msec() + OVERWRITE_MSECS;
p->in_port = in_port;
ofpbuf_put(p->buffer, buffer->data, buffer->size);
p->timeout = time_msec() + OVERWRITE_MSECS;
p->in_port = in_port;