If the command line parameter ``-T 1`` is used the application also
synchronizes the PTP PHC clock with the Linux kernel clock.
-
Compiling the Application
-------------------------
-To compile the application, export the path to the DPDK source tree and edit
-the ``config/common_linuxapp`` configuration file to enable IEEE1588:
-
-.. code-block:: console
-
- export RTE_SDK=/path/to/rte_sdk
-
- # Edit common_linuxapp and set the following options:
- CONFIG_RTE_LIBRTE_IEEE1588=y
-
-Set the target, for example:
+To compile the sample application see :doc:`compiling`.
-.. code-block:: console
-
- export RTE_TARGET=x86_64-native-linuxapp-gcc
-
-See the *DPDK Getting Started* Guide for possible ``RTE_TARGET`` values.
-
-Build the application as follows:
-
-.. code-block:: console
+The application is located in the ``ptpclient`` sub-directory.
- # Recompile DPDK.
- make install T=$RTE_TARGET
+.. note::
+ To compile the application edit the ``config/common_linuxapp`` configuration file to enable IEEE1588
+ and then recompile DPDK:
- # Compile the application.
- cd ${RTE_SDK}/examples/ptpclient
- make
+ .. code-block:: console
+ CONFIG_RTE_LIBRTE_IEEE1588=y
Running the Application
-----------------------
.. code-block:: console
- ./build/ptpclient -c 2 -n 4 -- -p 0x1 -T 0
+ ./build/ptpclient -l 1 -n 4 -- -p 0x1 -T 0
Refer to *DPDK Getting Started Guide* for general information on running
applications and the Environment Abstraction Layer (EAL) options.
.. code-block:: c
- mbuf_pool = rte_mempool_create("MBUF_POOL",
- NUM_MBUFS * nb_ports,
- MBUF_SIZE,
- MBUF_CACHE_SIZE,
- sizeof(struct rte_pktmbuf_pool_private),
- rte_pktmbuf_pool_init, NULL,
- rte_pktmbuf_init, NULL,
- rte_socket_id(),
- 0);
+ mbuf_pool = rte_pktmbuf_pool_create("MBUF_POOL", NUM_MBUFS * nb_ports,
+ MBUF_CACHE_SIZE, 0, RTE_MBUF_DEFAULT_BUF_SIZE, rte_socket_id());
Mbufs are the packet buffer structure used by DPDK. They are explained in
detail in the "Mbuf Library" section of the *DPDK Programmer's Guide*.
.. code-block:: c
void
- parse_ptp_frames(uint8_t portid, struct rte_mbuf *m) {
+ parse_ptp_frames(uint16_t portid, struct rte_mbuf *m) {
struct ptp_header *ptp_hdr;
struct ether_hdr *eth_hdr;
uint16_t eth_type;