diff --git a/doc/guides/nics/af_xdp.rst b/doc/guides/nics/af_xdp.rst
index c9d0e1ad6c..60f4536ac5 100644
--- a/doc/guides/nics/af_xdp.rst
+++ b/doc/guides/nics/af_xdp.rst
@@ -43,9 +43,7 @@ Prerequisites
 This is a Linux-specific PMD, thus the following prerequisites apply:
 
 *  A Linux Kernel (version > v4.18) with XDP sockets configuration enabled;
-*  libbpf (within kernel version > v5.1-rc4) with latest af_xdp support installed,
-   User can install libbpf via `make install_lib` && `make install_headers` in
-   <kernel src tree>/tools/lib/bpf;
+*  Both libxdp >=v1.3.0 and libbpf libraries installed, or, libbpf <=v0.6.0
 *  A Kernel bound interface to attach to;
 *  For need_wakeup feature, it requires kernel version later than v5.3-rc1;
 *  For PMD zero copy, it requires kernel version later than v5.4-rc1;
@@ -143,4 +141,4 @@ Limitations
   NAPI context from a watchdog timer instead of from softirqs. More information
   on this feature can be found at [1].
 
-  [1] https://lwn.net/Articles/837010/
\ No newline at end of file
+  [1] https://lwn.net/Articles/837010/
diff --git a/doc/guides/rel_notes/release_22_03.rst b/doc/guides/rel_notes/release_22_03.rst
index 6d99d1eaa9..1258bdac61 100644
--- a/doc/guides/rel_notes/release_22_03.rst
+++ b/doc/guides/rel_notes/release_22_03.rst
@@ -55,6 +55,10 @@ New Features
      Also, make sure to start the actual text at the margin.
      =======================================================
 
+* **Update AF_XDP PMD**
+
+  * Added support for libxdp >=v1.3.0.
+
 
 Removed Items
 -------------
diff --git a/drivers/net/af_xdp/compat.h b/drivers/net/af_xdp/compat.h
index 3880dc7dd7..245df1b109 100644
--- a/drivers/net/af_xdp/compat.h
+++ b/drivers/net/af_xdp/compat.h
@@ -2,7 +2,11 @@
  * Copyright(c) 2020 Intel Corporation.
  */
 
+#ifdef RTE_LIBRTE_AF_XDP_PMD_LIBXDP
+#include <xdp/xsk.h>
+#else
 #include <bpf/xsk.h>
+#endif
 #include <linux/version.h>
 #include <poll.h>
 
diff --git a/drivers/net/af_xdp/meson.build b/drivers/net/af_xdp/meson.build
index 3ed2b29784..cdc4c1ca06 100644
--- a/drivers/net/af_xdp/meson.build
+++ b/drivers/net/af_xdp/meson.build
@@ -9,19 +9,44 @@ endif
 
 sources = files('rte_eth_af_xdp.c')
 
+xdp_dep = dependency('libxdp', version : '>=1.3.0', required: false, method: 'pkg-config')
 bpf_dep = dependency('libbpf', required: false, method: 'pkg-config')
 if not bpf_dep.found()
     bpf_dep = cc.find_library('bpf', required: false)
 endif
 
-if bpf_dep.found() and cc.has_header('bpf/xsk.h') and cc.has_header('linux/if_xdp.h')
-    ext_deps += bpf_dep
-    bpf_ver_dep = dependency('libbpf', version : '>=0.2.0',
-            required: false, method: 'pkg-config')
-    if bpf_ver_dep.found()
-        dpdk_conf.set('RTE_LIBRTE_AF_XDP_PMD_SHARED_UMEM', 1)
+if cc.has_header('linux/if_xdp.h')
+    if xdp_dep.found() and cc.has_header('xdp/xsk.h')
+        if bpf_dep.found() and cc.has_header('bpf/bpf.h')
+            dpdk_conf.set('RTE_LIBRTE_AF_XDP_PMD_LIBXDP', 1)
+            dpdk_conf.set('RTE_LIBRTE_AF_XDP_PMD_SHARED_UMEM', 1)
+            ext_deps += xdp_dep
+            ext_deps += bpf_dep
+        else
+            build = false
+            reason = 'missing dependency, libbpf'
+        endif
+    elif bpf_dep.found() and cc.has_header('bpf/xsk.h') and cc.has_header('bpf/bpf.h')
+        # libxdp not found. Rely solely on libbpf for xsk functionality
+        # which is only available in versions <= v0.6.0.
+        bpf_ver_dep = dependency('libbpf', version : '<=0.6.0',
+                                 required: false, method: 'pkg-config')
+        if bpf_ver_dep.found()
+            ext_deps += bpf_dep
+            bpf_shumem_ver_dep = dependency('libbpf', version : '>=0.2.0',
+                            required: false, method: 'pkg-config')
+            if bpf_shumem_ver_dep.found()
+                dpdk_conf.set('RTE_LIBRTE_AF_XDP_PMD_SHARED_UMEM', 1)
+            endif
+        else
+            build = false
+            reason = 'missing dependency, "libxdp" or "libbpf <= v0.6.0"'
+        endif
+    else
+        build = false
+        reason = 'missing dependency, "libxdp" and "libbpf"'
     endif
 else
     build = false
-    reason = 'missing dependency, "libbpf"'
+    reason = 'missing header, "linux/if_xdp.h"'
 endif
diff --git a/drivers/net/af_xdp/rte_eth_af_xdp.c b/drivers/net/af_xdp/rte_eth_af_xdp.c
index 96c2c9d939..5d89bebb01 100644
--- a/drivers/net/af_xdp/rte_eth_af_xdp.c
+++ b/drivers/net/af_xdp/rte_eth_af_xdp.c
@@ -16,7 +16,6 @@
 #include <linux/sockios.h>
 #include "af_xdp_deps.h"
 #include <bpf/bpf.h>
-#include <bpf/xsk.h>
 
 #include <rte_ethdev.h>
 #include <ethdev_driver.h>
