Merged,
Maxim.
On 09/06/16 16:28, Bill Fischofer wrote:
This should be PATCHv2, but thanks :)
On Tue, Sep 6, 2016 at 4:22 PM, Matias Elo <[email protected]> wrote:
From: Juha Mattila <[email protected]>
Add missing classifier support to tap pktio.
Resolves bug: https://bugs.linaro.org/show_bug.cgi?id=2504
Reviewed-and-tested-by: Bill Fischofer <[email protected]>
Signed-off-by: Matias Elo <[email protected]>
Signed-off-by: Juha Mattila <[email protected]>
---
platform/linux-generic/pktio/tap.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/platform/linux-generic/pktio/tap.c b/platform/linux-generic/
pktio/tap.c
index d758a39..ac20456 100644
--- a/platform/linux-generic/pktio/tap.c
+++ b/platform/linux-generic/pktio/tap.c
@@ -43,6 +43,7 @@
#include <odp_packet_socket.h>
#include <odp_packet_internal.h>
#include <odp_packet_io_internal.h>
+#include <odp_classification_internal.h>
#define BUF_SIZE 65536
@@ -185,8 +186,17 @@ static odp_packet_t pack_odp_pkt(pktio_entry_t
*pktio_entry, const void *data,
{
odp_packet_t pkt;
odp_packet_hdr_t *pkt_hdr;
+ odp_packet_hdr_t parsed_hdr;
int num;
+ if (pktio_cls_enabled(pktio_entry)) {
+ if (cls_classify_packet(pktio_entry, data, len, len,
+ &pktio_entry->s.pkt_tap.pool,
+ &parsed_hdr)) {
+ return ODP_PACKET_INVALID;
+ }
+ }
+
num = packet_alloc_multi(pktio_entry->s.pkt_tap.pool, len, &pkt,
1);
if (num != 1)
@@ -199,7 +209,12 @@ static odp_packet_t pack_odp_pkt(pktio_entry_t
*pktio_entry, const void *data,
}
pkt_hdr = odp_packet_hdr(pkt);
- packet_parse_l2(&pkt_hdr->p, len);
+
+ if (pktio_cls_enabled(pktio_entry))
+ copy_packet_cls_metadata(&parsed_hdr, pkt_hdr);
+ else
+ packet_parse_l2(&pkt_hdr->p, len);
+
packet_set_ts(pkt_hdr, ts);
pkt_hdr->input = pktio_entry->s.handle;
--
2.7.4