Fix toeplitz initialization key and rss key len for mlx4
[samplevnf.git] / VNFs / vACL / pipeline / pipeline_acl_be.c
index d3fa051..5da2e36 100644 (file)
@@ -777,14 +777,20 @@ pkt_work_acl_key(struct rte_pipeline *p,
             uint32_t packet_length = rte_pktmbuf_pkt_len(pkt);
 
             uint32_t dest_if = INVALID_DESTIF;
+            uint32_t dst_phy_port = INVALID_DESTIF;
             uint32_t src_phy_port = pkt->port;
+            if(is_phy_port_privte(src_phy_port))
+              dst_phy_port = prv_to_pub_map[src_phy_port];
+            else
+              dst_phy_port = pub_to_prv_map[src_phy_port];
+
 
             if(is_gateway()){
 
                 /* Gateway Proc Starts */
                 struct ether_hdr *ehdr = (struct ether_hdr *)
                     RTE_MBUF_METADATA_UINT32_PTR(pkt,
-                            META_DATA_OFFSET + MBUF_HDR_ROOM);
+                            META_DATA_OFFSET + RTE_PKTMBUF_HEADROOM);
 
                 struct ipv4_hdr *ipv4hdr = (struct ipv4_hdr *)
                     RTE_MBUF_METADATA_UINT32_PTR(pkt, IP_START);
@@ -794,7 +800,7 @@ pkt_work_acl_key(struct rte_pipeline *p,
                 uint32_t nhip = 0;
                 uint32_t dst_ip_addr = rte_bswap32(ipv4hdr->dst_addr);
 
-                gw_get_nh_port_ipv4(dst_ip_addr, &dest_if, &nhip);
+                gw_get_route_nh_port_ipv4(dst_ip_addr, &dest_if, &nhip, dst_phy_port);
 
                 ret_arp_data = get_dest_mac_addr_ipv4(nhip, dest_if, &dst_mac);
 
@@ -896,7 +902,7 @@ pkt_work_acl_key(struct rte_pipeline *p,
 
                 struct ether_hdr *ehdr = (struct ether_hdr *)
                     RTE_MBUF_METADATA_UINT32_PTR(pkt,
-                            META_DATA_OFFSET + MBUF_HDR_ROOM);
+                            META_DATA_OFFSET + RTE_PKTMBUF_HEADROOM);
 
                 struct ether_addr dst_mac;
                 uint8_t nhipv6[IPV6_ADD_SIZE];
@@ -1475,13 +1481,18 @@ pkt_work_acl_ipv4_key(struct rte_pipeline *p,
 
             uint32_t dest_if = INVALID_DESTIF;
             uint32_t src_phy_port = pkt->port;
+            uint32_t dst_phy_port = INVALID_DESTIF;
+            if(is_phy_port_privte(src_phy_port))
+              dst_phy_port = prv_to_pub_map[src_phy_port];
+            else
+              dst_phy_port = pub_to_prv_map[src_phy_port];
 
             if(is_gateway()){
 
                 /* Gateway Proc Starts */
                 struct ether_hdr *ehdr = (struct ether_hdr *)
                     RTE_MBUF_METADATA_UINT32_PTR(pkt,
-                            META_DATA_OFFSET + MBUF_HDR_ROOM);
+                            META_DATA_OFFSET + RTE_PKTMBUF_HEADROOM);
 
                 struct ipv4_hdr *ipv4hdr = (struct ipv4_hdr *)
                     RTE_MBUF_METADATA_UINT32_PTR(pkt, IP_START);
@@ -1493,7 +1504,7 @@ pkt_work_acl_ipv4_key(struct rte_pipeline *p,
                 uint32_t src_phy_port = pkt->port;
                 uint32_t dst_ip_addr = rte_bswap32(ipv4hdr->dst_addr);
 
-                gw_get_nh_port_ipv4(dst_ip_addr, &dest_if, &nhip);
+                gw_get_route_nh_port_ipv4(dst_ip_addr, &dest_if, &nhip, dst_phy_port);
 
                 ret_arp_data = get_dest_mac_addr_ipv4(nhip, dest_if, &dst_mac);
 
@@ -2065,7 +2076,7 @@ pkt_work_acl_ipv6_key(struct rte_pipeline *p,
 
                 struct ether_hdr *ehdr = (struct ether_hdr *)
                     RTE_MBUF_METADATA_UINT32_PTR(pkt,
-                            META_DATA_OFFSET + MBUF_HDR_ROOM);
+                            META_DATA_OFFSET + RTE_PKTMBUF_HEADROOM);
 
                 struct ether_addr dst_mac;
                 uint32_t dest_if = INVALID_DESTIF;
@@ -2638,7 +2649,7 @@ static void *pipeline_acl_init(struct pipeline_params *params,
        if (p == NULL)
                return NULL;
 
-       strcpy(p->name, params->name);
+       strncpy(p->name, params->name, PIPELINE_NAME_SIZE);
        p->log_level = params->log_level;
 
        PLOG(p, HIGH, "ACL");
@@ -2681,7 +2692,7 @@ static void *pipeline_acl_init(struct pipeline_params *params,
 
        rte_ACL_hi_counter_block_in_use++;
        counter_ptr = &rte_acl_counter_table[rte_ACL_hi_counter_block_in_use];
-       strcpy(counter_ptr->name, params->name);
+       strncpy(counter_ptr->name, params->name,PIPELINE_NAME_SIZE);
        p_acl->action_counter_index = rte_ACL_hi_counter_block_in_use;
 
        p_acl->counters = counter_ptr;