From: Petri Savolainen <petri.savolai...@linaro.org>

Signed-off-by: Petri Savolainen <petri.savolai...@linaro.org>
---
/** Email created from pull request 461 (psavol:master-parse-optim)
 ** https://github.com/Linaro/odp/pull/461
 ** Patch: https://github.com/Linaro/odp/pull/461.patch
 ** Base sha: 257b08b35ceea41bad5a7f1c626496cf111e657a
 ** Merge commit sha: e004cabc6971bf41b8674db708fd8eaa543f7dae
 **/
 .../include/odp/api/plat/packet_inline_types.h             |  1 -
 platform/linux-generic/odp_packet.c                        | 14 +++++---------
 2 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/platform/linux-generic/include/odp/api/plat/packet_inline_types.h 
b/platform/linux-generic/include/odp/api/plat/packet_inline_types.h
index 47ec821c9..984783d5d 100644
--- a/platform/linux-generic/include/odp/api/plat/packet_inline_types.h
+++ b/platform/linux-generic/include/odp/api/plat/packet_inline_types.h
@@ -101,7 +101,6 @@ typedef union {
                                           payload */
                uint64_t udp:1;       /**< UDP */
                uint64_t tcp:1;       /**< TCP */
-               uint64_t tcpopt:1;    /**< TCP options present */
                uint64_t sctp:1;      /**< SCTP */
                uint64_t icmp:1;      /**< ICMP */
 
diff --git a/platform/linux-generic/odp_packet.c 
b/platform/linux-generic/odp_packet.c
index 92a64801f..480cea194 100644
--- a/platform/linux-generic/odp_packet.c
+++ b/platform/linux-generic/odp_packet.c
@@ -2091,19 +2091,15 @@ static inline uint8_t parse_ipv6(packet_parser_t *prs, 
const uint8_t **parseptr,
 /**
  * Parser helper function for TCP
  */
-static inline void parse_tcp(packet_parser_t *prs,
-                            const uint8_t **parseptr, uint32_t *offset)
+static inline void parse_tcp(packet_parser_t *prs, const uint8_t **parseptr)
 {
        const _odp_tcphdr_t *tcp = (const _odp_tcphdr_t *)*parseptr;
+       uint32_t len = tcp->hl * 4;
 
-       if (tcp->hl < sizeof(_odp_tcphdr_t) / sizeof(uint32_t))
+       if (odp_unlikely(tcp->hl < sizeof(_odp_tcphdr_t) / sizeof(uint32_t)))
                prs->error_flags.tcp_err = 1;
-       else if ((uint32_t)tcp->hl * 4 > sizeof(_odp_tcphdr_t))
-               prs->input_flags.tcpopt = 1;
 
-       if (offset)
-               *offset   += (uint32_t)tcp->hl * 4;
-       *parseptr += (uint32_t)tcp->hl * 4;
+       *parseptr += len;
 }
 
 /**
@@ -2195,7 +2191,7 @@ int packet_parse_common_l3_l4(packet_parser_t *prs, const 
uint8_t *parseptr,
                if (odp_unlikely(offset + _ODP_TCPHDR_LEN > seg_len))
                        return -1;
                prs->input_flags.tcp = 1;
-               parse_tcp(prs, &parseptr, NULL);
+               parse_tcp(prs, &parseptr);
                break;
 
        case _ODP_IPPROTO_UDP:

Reply via email to