Ilias Apalodimas(apalos) replied on github web page:

line 20
@@ -0,0 +1,56 @@
+/* Copyright (c) 2018, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:     BSD-3-Clause
+ */
+#include <protocols/eth.h>
+#include <protocols/ip.h>
+#include <odp/api/plat/packet_inlines.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/fcntl.h>
+#include <unistd.h>
+#include <pthread.h>
+#define PCAPNG_BLOCK_TYPE_EPB 0x00000006UL
+#define PCAPNG_BLOCK_TYPE_IDB 0x00000001UL
+#define PCAP_DATA_ALIGN (4)

I'll check and update for the final PR

> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
> General cleanup should be part of `odp_term_global()` processing. Presumably 
> `odp_pktio_close()` should also do cleanup for specific pktios.

>> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
>> A few comments about what this routine is doing would be very helpful here. 
>> This is not easy code to follow. Modularizing it into some  `static inline` 
>> helpers might also make the logic simpler.

>>> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
>>> This is redundant. If `len > 0` then by definition `len != -1`.

>>>> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
>>>> This fails for multi-segment packets. `odp_packet_data(pkt)` is shorthand 
>>>> for `odp_packet_offset(pkt, 0, NULL, NULL)` so you don't know how long the 
>>>> first segment really is. First cut would be to only dump the first 
>>>> segment, so correct code is:
>>>> ```
>>>> uint32_t seg_len;
>>>> char *buf = (char *)odp_packet_offset(packets[i], 0, &seg_len, NULL);
>>>> ```
>>>> And use `seg_len` rather than `pkt_len` in this routine.

>>>>> Bill Fischofer(Bill-Fischofer-Linaro) wrote:
>>>>> Does pcapng not supply a `.h` file for these "magic numbers" and 
>>>>> associated structs?

>>>>>> Ilias Apalodimas(apalos) wrote:
>>>>>> Will fix. This will also remove the requirement of manually deleting the 
>>>>>> fifos

>>>>>>> muvarov wrote
>>>>>>> odp_global_data_s->main_pid needs to be here.
updated_at 2018-02-02 07:13:35

Reply via email to