---
 configure |   79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 78 insertions(+), 1 deletion(-)

Index: b/configure
===================================================================
--- a/configure
+++ b/configure
@@ -601,6 +601,8 @@
 libnl1_CFLAGS
 libnl20_LIBS
 libnl20_CFLAGS
+libnl30_LIBS
+libnl30_CFLAGS
 PKG_CONFIG_LIBDIR
 PKG_CONFIG_PATH
 PKG_CONFIG
@@ -712,6 +714,8 @@
 PKG_CONFIG
 PKG_CONFIG_PATH
 PKG_CONFIG_LIBDIR
+libnl30_CFLAGS
+libnl30_LIBS
 libnl20_CFLAGS
 libnl20_LIBS
 libnl1_CFLAGS
@@ -1361,6 +1365,10 @@
               directories to add to pkg-config's search path
   PKG_CONFIG_LIBDIR
               path overriding pkg-config's built-in search path
+  libnl30_CFLAGS
+              C compiler flags for libnl30, overriding pkg-config
+  libnl30_LIBS
+              linker flags for libnl30, overriding pkg-config
   libnl20_CFLAGS
               C compiler flags for libnl20, overriding pkg-config
   libnl20_LIBS
@@ -6760,6 +6768,76 @@
 	fi
 fi

+#libnl-3.0
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libnl30" >&5
+$as_echo_n "checking for libnl30... " >&6; }
+
+if test -n "$libnl30_CFLAGS"; then
+    pkg_cv_libnl20_CFLAGS="$libnl30_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnl-3.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libnl-3.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_libnl30_CFLAGS=`$PKG_CONFIG --cflags "libnl-3.0" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$libnl30_LIBS"; then
+    pkg_cv_libnl20_LIBS="$libnl30_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnl-3.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libnl-3.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_libnl30_LIBS=`$PKG_CONFIG --libs "libnl-3.0" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+if test $pkg_failed = yes; then
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        libnl30_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libnl-3.0" 2>&1`
+        else
+	        libnl30_PKG_ERRORS=`$PKG_CONFIG --print-errors "libnl-3.0" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$libnl30_PKG_ERRORS" >&5
+
+	libnl30=no
+elif test $pkg_failed = untried; then
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+	libnl30=no
+else
+	libnl30_CFLAGS=$pkg_cv_libnl30_CFLAGS
+	libnl30_LIBS=$pkg_cv_libnl30_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+	CPPFLAGS="$CPPFLAGS $libnl30_CFLAGS"
+$as_echo "yes" >&6; }
+	libnl30=yes
+fi
+
+# libnl-2.0
 pkg_failed=no
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libnl20" >&5
 $as_echo_n "checking for libnl20... " >&6; }
@@ -6897,7 +6974,11 @@
 $as_echo "yes" >&6; }
 	libnl1=yes
 fi
-	if test "$libnl20" = "yes"; then
+	if test "$libnl30" = "yes"; then
+$as_echo "#define HAVE_LIBNL 1" >>confdefs.h
+$as_echo "#define HAVE_LIBNL20 1" >>confdefs.h
+               NLLIBS="-lnl-genl-3 -lnl-3"
+	elif test "$libnl20" = "yes"; then
 
 $as_echo "#define HAVE_LIBNL 1" >>confdefs.h


