net: add macro to extract MAC address bytes
[dpdk.git] / examples / rxtx_callbacks / main.c
index 192521c..ab6fa7d 100644 (file)
@@ -57,6 +57,7 @@ int hw_timestamping;
 #define TICKS_PER_CYCLE_SHIFT 16
 static uint64_t ticks_per_cycle_mult;
 
+/* Callback added to the RX port and applied to packets. 8< */
 static uint16_t
 add_timestamps(uint16_t port __rte_unused, uint16_t qidx __rte_unused,
                struct rte_mbuf **pkts, uint16_t nb_pkts,
@@ -69,7 +70,9 @@ add_timestamps(uint16_t port __rte_unused, uint16_t qidx __rte_unused,
                *tsc_field(pkts[i]) = now;
        return nb_pkts;
 }
+/* >8 End of callback addition and application. */
 
+/* Callback is added to the TX port. 8< */
 static uint16_t
 calc_latency(uint16_t port, uint16_t qidx __rte_unused,
                struct rte_mbuf **pkts, uint16_t nb_pkts, void *_ __rte_unused)
@@ -110,11 +113,14 @@ calc_latency(uint16_t port, uint16_t qidx __rte_unused,
        }
        return nb_pkts;
 }
+/* >8 End of callback addition. */
 
 /*
  * Initialises a given port using global settings and with the rx buffers
  * coming from the mbuf_pool passed as parameter
  */
+
+ /* Port initialization. 8< */
 static inline int
 port_init(uint16_t port, struct rte_mempool *mbuf_pool)
 {
@@ -221,19 +227,20 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
        printf("Port %u MAC: %02"PRIx8" %02"PRIx8" %02"PRIx8
                        " %02"PRIx8" %02"PRIx8" %02"PRIx8"\n",
                        (unsigned)port,
-                       addr.addr_bytes[0], addr.addr_bytes[1],
-                       addr.addr_bytes[2], addr.addr_bytes[3],
-                       addr.addr_bytes[4], addr.addr_bytes[5]);
+                       RTE_ETHER_ADDR_BYTES(&addr));
 
        retval = rte_eth_promiscuous_enable(port);
        if (retval != 0)
                return retval;
 
+       /* RX and TX callbacks are added to the ports. 8< */
        rte_eth_add_rx_callback(port, 0, add_timestamps, NULL);
        rte_eth_add_tx_callback(port, 0, calc_latency, NULL);
+       /* >8 End of RX and TX callbacks. */
 
        return 0;
 }
+/* >8 End of port initialization. */
 
 /*
  * Main thread that does the work, reading from INPUT_PORT