lpm: extend IPv4 next hop field
[dpdk.git] / examples / ip_reassembly / main.c
index 262820e..6f48748 100644 (file)
@@ -347,7 +347,8 @@ reassemble(struct rte_mbuf *m, uint8_t portid, uint32_t queue,
        struct rte_ip_frag_death_row *dr;
        struct rx_queue *rxq;
        void *d_addr_bytes;
-       uint8_t next_hop, dst_port;
+       uint32_t next_hop_ipv4;
+       uint8_t next_hop_ipv6, dst_port;
 
        rxq = &qconf->rx_queue_list[queue];
 
@@ -390,9 +391,9 @@ reassemble(struct rte_mbuf *m, uint8_t portid, uint32_t queue,
                ip_dst = rte_be_to_cpu_32(ip_hdr->dst_addr);
 
                /* Find destination port */
-               if (rte_lpm_lookup(rxq->lpm, ip_dst, &next_hop) == 0 &&
-                               (enabled_port_mask & 1 << next_hop) != 0) {
-                       dst_port = next_hop;
+               if (rte_lpm_lookup(rxq->lpm, ip_dst, &next_hop_ipv4) == 0 &&
+                               (enabled_port_mask & 1 << next_hop_ipv4) != 0) {
+                       dst_port = next_hop_ipv4;
                }
 
                eth_hdr->ether_type = rte_be_to_cpu_16(ETHER_TYPE_IPv4);
@@ -427,9 +428,9 @@ reassemble(struct rte_mbuf *m, uint8_t portid, uint32_t queue,
                }
 
                /* Find destination port */
-               if (rte_lpm6_lookup(rxq->lpm6, ip_hdr->dst_addr, &next_hop) == 0 &&
-                               (enabled_port_mask & 1 << next_hop) != 0) {
-                       dst_port = next_hop;
+               if (rte_lpm6_lookup(rxq->lpm6, ip_hdr->dst_addr, &next_hop_ipv6) == 0 &&
+                               (enabled_port_mask & 1 << next_hop_ipv6) != 0) {
+                       dst_port = next_hop_ipv6;
                }
 
                eth_hdr->ether_type = rte_be_to_cpu_16(ETHER_TYPE_IPv6);