pcap: Add an offset argument in pcap_iov()
The offset is passed directly to pcap_frame() and allows any headers that are not part of the frame to capture to be skipped. Signed-off-by: Laurent Vivier <lvivier@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
parent
72e7d3024b
commit
fd8334b25d
2 changed files with 4 additions and 3 deletions
5
pcap.c
5
pcap.c
|
@ -138,9 +138,10 @@ void pcap_multiple(const struct iovec *iov, size_t frame_parts, unsigned int n,
|
||||||
* @iov: Pointer to the array of struct iovec describing the I/O vector
|
* @iov: Pointer to the array of struct iovec describing the I/O vector
|
||||||
* containing packet data to write, including L2 header
|
* containing packet data to write, including L2 header
|
||||||
* @iovcnt: Number of buffers (@iov entries)
|
* @iovcnt: Number of buffers (@iov entries)
|
||||||
|
* @offset: Offset of the L2 frame within the full data length
|
||||||
*/
|
*/
|
||||||
/* cppcheck-suppress unusedFunction */
|
/* cppcheck-suppress unusedFunction */
|
||||||
void pcap_iov(const struct iovec *iov, size_t iovcnt)
|
void pcap_iov(const struct iovec *iov, size_t iovcnt, size_t offset)
|
||||||
{
|
{
|
||||||
struct timespec now;
|
struct timespec now;
|
||||||
|
|
||||||
|
@ -148,7 +149,7 @@ void pcap_iov(const struct iovec *iov, size_t iovcnt)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
clock_gettime(CLOCK_REALTIME, &now);
|
clock_gettime(CLOCK_REALTIME, &now);
|
||||||
pcap_frame(iov, iovcnt, 0, &now);
|
pcap_frame(iov, iovcnt, offset, &now);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
2
pcap.h
2
pcap.h
|
@ -9,7 +9,7 @@
|
||||||
void pcap(const char *pkt, size_t l2len);
|
void pcap(const char *pkt, size_t l2len);
|
||||||
void pcap_multiple(const struct iovec *iov, size_t frame_parts, unsigned int n,
|
void pcap_multiple(const struct iovec *iov, size_t frame_parts, unsigned int n,
|
||||||
size_t offset);
|
size_t offset);
|
||||||
void pcap_iov(const struct iovec *iov, size_t iovcnt);
|
void pcap_iov(const struct iovec *iov, size_t iovcnt, size_t offset);
|
||||||
void pcap_init(struct ctx *c);
|
void pcap_init(struct ctx *c);
|
||||||
|
|
||||||
#endif /* PCAP_H */
|
#endif /* PCAP_H */
|
||||||
|
|
Loading…
Reference in a new issue