Linda Sun lsun@vmware.com
Lorand Jakab lojakab@cisco.com
Luca Giraudo lgiraudo@nicira.com
+Luigi Rizzo rizzo@iet.unipi.it
Mark Hamilton mhamilton@nicira.com
Martin Casado casado@nicira.com
Mehak Mahajan mmahajan@nicira.com
netdev->rx_pcap = netdev->tx_pcap = NULL;
pcap = smap_get(args, "pcap");
if (pcap) {
- netdev->rx_pcap = netdev->tx_pcap = pcap_open(pcap, "ab");
+ netdev->rx_pcap = netdev->tx_pcap = ovs_pcap_open(pcap, "ab");
} else {
const char *rx_pcap = smap_get(args, "rx_pcap");
const char *tx_pcap = smap_get(args, "tx_pcap");
if (rx_pcap) {
- netdev->rx_pcap = pcap_open(rx_pcap, "ab");
+ netdev->rx_pcap = ovs_pcap_open(rx_pcap, "ab");
}
if (tx_pcap) {
- netdev->tx_pcap = pcap_open(tx_pcap, "ab");
+ netdev->tx_pcap = ovs_pcap_open(tx_pcap, "ab");
}
}
struct ofpbuf packet;
ofpbuf_use_const(&packet, buffer, size);
- pcap_write(dev->tx_pcap, &packet);
+ ovs_pcap_write(dev->tx_pcap, &packet);
fflush(dev->tx_pcap);
}
struct netdev_rx_dummy *rx, *prev;
if (dummy->rx_pcap) {
- pcap_write(dummy->rx_pcap, packet);
+ ovs_pcap_write(dummy->rx_pcap, packet);
fflush(dummy->rx_pcap);
}
prev = NULL;
BUILD_ASSERT_DECL(sizeof(struct pcaprec_hdr) == 16);
FILE *
-pcap_open(const char *file_name, const char *mode)
+ovs_pcap_open(const char *file_name, const char *mode)
{
struct stat s;
FILE *file;
switch (mode[0]) {
case 'r':
- error = pcap_read_header(file);
+ error = ovs_pcap_read_header(file);
if (error) {
errno = error;
fclose(file);
break;
case 'w':
- pcap_write_header(file);
+ ovs_pcap_write_header(file);
break;
case 'a':
if (!fstat(fileno(file), &s) && !s.st_size) {
- pcap_write_header(file);
+ ovs_pcap_write_header(file);
}
break;
}
int
-pcap_read_header(FILE *file)
+ovs_pcap_read_header(FILE *file)
{
struct pcap_hdr ph;
if (fread(&ph, sizeof ph, 1, file) != 1) {
}
void
-pcap_write_header(FILE *file)
+ovs_pcap_write_header(FILE *file)
{
/* The pcap reader is responsible for figuring out endianness based on the
* magic number, so the lack of htonX calls here is intentional. */
}
int
-pcap_read(FILE *file, struct ofpbuf **bufp, long long int *when)
+ovs_pcap_read(FILE *file, struct ofpbuf **bufp, long long int *when)
{
struct pcaprec_hdr prh;
struct ofpbuf *buf;
}
void
-pcap_write(FILE *file, struct ofpbuf *buf)
+ovs_pcap_write(FILE *file, struct ofpbuf *buf)
{
struct pcaprec_hdr prh;
struct timeval tv;
struct ofpbuf;
/* PCAP file reading and writing. */
-FILE *pcap_open(const char *file_name, const char *mode);
-int pcap_read_header(FILE *);
-void pcap_write_header(FILE *);
-int pcap_read(FILE *, struct ofpbuf **, long long int *when);
-void pcap_write(FILE *, struct ofpbuf *);
+FILE *ovs_pcap_open(const char *file_name, const char *mode);
+int ovs_pcap_read_header(FILE *);
+void ovs_pcap_write_header(FILE *);
+int ovs_pcap_read(FILE *, struct ofpbuf **, long long int *when);
+void ovs_pcap_write(FILE *, struct ofpbuf *);
\f
/* Extracting TCP stream data from an Ethernet packet capture. */
ovs_fatal(errno, "failed to open fd 3 for reading");
}
- retval = pcap_read_header(pcap);
+ retval = ovs_pcap_read_header(pcap);
if (retval) {
ovs_fatal(retval > 0 ? retval : 0, "reading pcap header failed");
}
union flow_in_port in_port_;
n++;
- retval = pcap_read(pcap, &packet, NULL);
+ retval = ovs_pcap_read(pcap, &packet, NULL);
if (retval == EOF) {
ovs_fatal(0, "unexpected end of file reading pcap file");
} else if (retval) {
int error;
bool first;
- file = pcap_open(argv[1], "rb");
+ file = ovs_pcap_open(argv[1], "rb");
if (!file) {
ovs_fatal(errno, "%s: open failed", argv[1]);
}
long long int when;
struct flow flow;
- error = pcap_read(file, &packet, &when);
+ error = ovs_pcap_read(file, &packet, &when);
if (error) {
break;
}
{
FILE *pcap;
- pcap = pcap_open(argv[1], "rb");
+ pcap = ovs_pcap_open(argv[1], "rb");
if (!pcap) {
ovs_fatal(errno, "%s: open failed", argv[1]);
}
struct flow flow;
int error;
- error = pcap_read(pcap, &packet, NULL);
+ error = ovs_pcap_read(pcap, &packet, NULL);
if (error == EOF) {
break;
} else if (error) {