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 > >
