Signed-off-by: Stuart Haslam <[email protected]>
---
 platform/linux-generic/include/odp_classification_inlines.h | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/platform/linux-generic/include/odp_classification_inlines.h 
b/platform/linux-generic/include/odp_classification_inlines.h
index 8d1e1c1..560104e 100644
--- a/platform/linux-generic/include/odp_classification_inlines.h
+++ b/platform/linux-generic/include/odp_classification_inlines.h
@@ -189,7 +189,18 @@ static inline int verify_pmr_ipsec_spi(uint8_t *pkt_addr 
ODP_UNUSED,
                                       odp_packet_hdr_t *pkt_hdr ODP_UNUSED,
                                       pmr_term_value_t *term_value ODP_UNUSED)
 {
-       ODP_UNIMPLEMENTED();
+       uint32_t *spi;
+
+       if (!pkt_hdr->input_flags.ipsec)
+               return 0;
+
+       spi = (uint32_t *)(pkt_addr + pkt_hdr->l4_offset);
+       if (pkt_hdr->l4_protocol == ODPH_IPPROTO_AH)
+               spi++;
+
+       if (term_value->val == (odp_be_to_cpu_32(*spi) & term_value->mask))
+               return 1;
+
        return 0;
 }
 static inline int verify_pmr_ld_vni(uint8_t *pkt_addr ODP_UNUSED,
-- 
2.1.1

_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to