On Fri, Nov 16, 2018 at 08:44:10AM -0800, Simon Horman wrote: > On Sun, Nov 11, 2018 at 03:41:08PM -0800, Ben Pfaff wrote: > > Someone sent me one of these and OVS couldn't read it. This fixes the > > problem. > > > > Signed-off-by: Ben Pfaff <[email protected]> > > --- > > lib/pcap-file.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ > > 1 file changed, 54 insertions(+) > > > > diff --git a/lib/pcap-file.c b/lib/pcap-file.c > > index 81a094c2a01f..0f34c5e83cda 100644 > > --- a/lib/pcap-file.c > > +++ b/lib/pcap-file.c > > @@ -39,9 +39,15 @@ enum ts_resolution { > > PCAP_NSEC, > > }; > > > > +enum network_type { > > + PCAP_ETHERNET = 0, > > + PCAP_LINUX_SLL = 0x71 > > +}; > > + > > struct pcap_file { > > FILE *file; > > enum ts_resolution resolution; > > + enum network_type network; > > }; > > > > struct pcap_hdr { > > @@ -130,10 +136,13 @@ ovs_pcap_read_header(struct pcap_file *p_file) > > VLOG_WARN("failed to read pcap header: %s", > > ovs_retval_to_string(error)); > > return error; > > } > > + bool byte_swap; > > if (ph.magic_number == 0xa1b2c3d4 || ph.magic_number == 0xd4c3b2a1) { > > + byte_swap = ph.magic_number == 0xd4c3b2a1; > > p_file->resolution = PCAP_USEC; > > } else if (ph.magic_number == 0xa1b23c4d || > > ph.magic_number == 0x4d3cb2a1) { > > + byte_swap = ph.magic_number == 0x4d3cb2a1; > > p_file->resolution = PCAP_NSEC; > > } else { > > VLOG_WARN("bad magic 0x%08"PRIx32" reading pcap file " > > @@ -141,6 +150,13 @@ ovs_pcap_read_header(struct pcap_file *p_file) > > "or 0x4d3cb2a1)", ph.magic_number); > > return EPROTO; > > } > > + p_file->network = byte_swap ? uint32_byteswap(ph.network) : ph.network; > > + if (p_file->network != PCAP_ETHERNET && > > + p_file->network != PCAP_LINUX_SLL) { > > + VLOG_WARN("unknown network type %"PRIu16" reading pcap file", > > + p_file->network); > > Hi Ben, > > the line above seems to produce an error in travis-ci. > > As per https://travis-ci.org/openvswitch/ovs/jobs/456022920 > > lib/pcap-file.c:157:19: error: format specifies type 'unsigned short' but the > argument has underlying type 'unsigned int' [-Werror,-Wformat]
Thanks for the report. I sent a fix. _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
