Signed-off-by: Barry Spinney <[email protected]>
Signed-off-by: Mike Holmes <[email protected]>
Signed-off-by: Bill Fischofer <[email protected]>
---
 .../linux-generic/include/odp_packet_internal.h    |  5 +++
 platform/linux-generic/odp_packet_flags.c          | 45 ++++++++++++++++++++++
 2 files changed, 50 insertions(+)

diff --git a/platform/linux-generic/include/odp_packet_internal.h 
b/platform/linux-generic/include/odp_packet_internal.h
index 8c41491..c1b1f2f 100644
--- a/platform/linux-generic/include/odp_packet_internal.h
+++ b/platform/linux-generic/include/odp_packet_internal.h
@@ -61,6 +61,9 @@ typedef union {
                uint32_t tcpopt:1;    /**< TCP options present */
                uint32_t sctp:1;      /**< SCTP */
                uint32_t icmp:1;      /**< ICMP */
+
+               uint32_t color:2;      /**< Packet color for traffic mgmt */
+               uint32_t nodrop:1;     /**< Drop eligibility status */
        };
 } input_flags_t;
 
@@ -102,6 +105,8 @@ typedef union {
                uint32_t l3_chksum:1;     /**< L3 chksum override */
                uint32_t l4_chksum_set:1; /**< L3 chksum bit is valid */
                uint32_t l4_chksum:1;     /**< L4 chksum override  */
+
+               int8_t shaper_len_adj; /**< adjustment for traffic mgr */
        };
 } output_flags_t;
 
diff --git a/platform/linux-generic/odp_packet_flags.c 
b/platform/linux-generic/odp_packet_flags.c
index 4f680a1..eeb2eb6 100644
--- a/platform/linux-generic/odp_packet_flags.c
+++ b/platform/linux-generic/odp_packet_flags.c
@@ -202,3 +202,48 @@ void odp_packet_has_icmp_set(odp_packet_t pkt, int val)
 {
        setflag(pkt, input_flags.icmp, val);
 }
+
+odp_pkt_color_t odp_packet_color(odp_packet_t pkt)
+{
+       retflag(pkt, input_flags.color);
+}
+
+void odp_packet_color_set(odp_packet_t pkt, odp_pkt_color_t color)
+{
+       odp_packet_hdr_t *pkt_hdr = odp_packet_hdr(pkt);
+
+       if (pkt_hdr->input_flags.unparsed)
+               _odp_packet_parse(pkt_hdr);
+
+       pkt_hdr->input_flags.color = color;
+}
+
+odp_bool_t odp_packet_drop_eligible(odp_packet_t pkt)
+{
+       odp_packet_hdr_t *pkt_hdr = odp_packet_hdr(pkt);
+
+       if (pkt_hdr->input_flags.unparsed)
+               _odp_packet_parse(pkt_hdr);
+
+       return !pkt_hdr->input_flags.nodrop;
+}
+
+void odp_packet_drop_eligible_set(odp_packet_t pkt, odp_bool_t drop)
+{
+       setflag(pkt, input_flags.nodrop, !drop);
+}
+
+int8_t odp_packet_shaper_len_adjust(odp_packet_t pkt)
+{
+       retflag(pkt, output_flags.shaper_len_adj);
+}
+
+void odp_packet_shaper_len_adjust_set(odp_packet_t pkt, int8_t adj)
+{
+       odp_packet_hdr_t *pkt_hdr = odp_packet_hdr(pkt);
+
+       if (pkt_hdr->input_flags.unparsed)
+               _odp_packet_parse(pkt_hdr);
+
+       pkt_hdr->output_flags.shaper_len_adj = adj;
+}
-- 
2.1.4

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

Reply via email to