mk: introduce ARMv7 architecture
[dpdk.git] / examples / l3fwd-acl / main.c
index 29cb25e..f676d14 100644 (file)
@@ -261,6 +261,23 @@ enum {
        NUM_FIELDS_IPV4
 };
 
+/*
+ * That effectively defines order of IPV4VLAN classifications:
+ *  - PROTO
+ *  - VLAN (TAG and DOMAIN)
+ *  - SRC IP ADDRESS
+ *  - DST IP ADDRESS
+ *  - PORTS (SRC and DST)
+ */
+enum {
+       RTE_ACL_IPV4VLAN_PROTO,
+       RTE_ACL_IPV4VLAN_VLAN,
+       RTE_ACL_IPV4VLAN_SRC,
+       RTE_ACL_IPV4VLAN_DST,
+       RTE_ACL_IPV4VLAN_PORTS,
+       RTE_ACL_IPV4VLAN_NUM
+};
+
 struct rte_acl_field_def ipv4_defs[NUM_FIELDS_IPV4] = {
        {
                .type = RTE_ACL_FIELD_TYPE_BITMASK,
@@ -645,10 +662,7 @@ prepare_one_packet(struct rte_mbuf **pkts_in, struct acl_search_t *acl,
        struct ipv4_hdr *ipv4_hdr;
        struct rte_mbuf *pkt = pkts_in[index];
 
-       int type = pkt->ol_flags & (PKT_RX_IPV4_HDR | PKT_RX_IPV6_HDR);
-
-       if (type == PKT_RX_IPV4_HDR) {
-
+       if (RTE_ETH_IS_IPV4_HDR(pkt->packet_type)) {
                ipv4_hdr = rte_pktmbuf_mtod_offset(pkt, struct ipv4_hdr *,
                                                   sizeof(struct ether_hdr));
 
@@ -667,9 +681,7 @@ prepare_one_packet(struct rte_mbuf **pkts_in, struct acl_search_t *acl,
                        /* Not a valid IPv4 packet */
                        rte_pktmbuf_free(pkt);
                }
-
-       } else if (type == PKT_RX_IPV6_HDR) {
-
+       } else if (RTE_ETH_IS_IPV6_HDR(pkt->packet_type)) {
                /* Fill acl structure */
                acl->data_ipv6[acl->num_ipv6] = MBUF_IPV6_2PROTO(pkt);
                acl->m_ipv6[(acl->num_ipv6)++] = pkt;
@@ -687,17 +699,12 @@ prepare_one_packet(struct rte_mbuf **pkts_in, struct acl_search_t *acl,
 {
        struct rte_mbuf *pkt = pkts_in[index];
 
-       int type = pkt->ol_flags & (PKT_RX_IPV4_HDR | PKT_RX_IPV6_HDR);
-
-       if (type == PKT_RX_IPV4_HDR) {
-
+       if (RTE_ETH_IS_IPV4_HDR(pkt->packet_type)) {
                /* Fill acl structure */
                acl->data_ipv4[acl->num_ipv4] = MBUF_IPV4_2PROTO(pkt);
                acl->m_ipv4[(acl->num_ipv4)++] = pkt;
 
-
-       } else if (type == PKT_RX_IPV6_HDR) {
-
+       } else if (RTE_ETH_IS_IPV6_HDR(pkt->packet_type)) {
                /* Fill acl structure */
                acl->data_ipv6[acl->num_ipv6] = MBUF_IPV6_2PROTO(pkt);
                acl->m_ipv6[(acl->num_ipv6)++] = pkt;
@@ -745,9 +752,9 @@ send_one_packet(struct rte_mbuf *m, uint32_t res)
                /* in the ACL list, drop it */
 #ifdef L3FWDACL_DEBUG
                if ((res & ACL_DENY_SIGNATURE) != 0) {
-                       if (m->ol_flags & PKT_RX_IPV4_HDR)
+                       if (RTE_ETH_IS_IPV4_HDR(m->packet_type))
                                dump_acl4_rule(m, res);
-                       else
+                       else if (RTE_ETH_IS_IPV6_HDR(m->packet_type))
                                dump_acl6_rule(m, res);
                }
 #endif