libnl3_11_0

Signed-off-by: Bruin06 <419738327@qq.com>
Signed-off-by: Bruin06 <15325335+bruin06@user.noreply.gitee.com>
This commit is contained in:
Bruin06
2025-06-19 20:07:55 +08:00
committed by Bruin06
parent 9e4f1dd493
commit ef5fd49261
9 changed files with 419 additions and 180 deletions
+2 -3
View File
@@ -12,9 +12,8 @@ defs.h.in
defs.h.in~
/lib/stamp-h1
test-suite.log
libnl-3.7.0
!slove-oh-update-sp3.patch
!solve-oh-compile-problem.patch
libnl-libnl3_11_0
!solve-oh-compile-problem3_11_0.patch
/libnl-1.pc
/lib/defs.h
cscope.*
+163 -161
View File
@@ -13,7 +13,7 @@ libnl_path = rebase_path("//third_party/libnl")
exec_script("install.sh", [ "$libnl_path" ])
config("libnl_share_public_config") {
include_dirs = [ "//third_party/libnl/libnl-3.7.0/include/" ]
include_dirs = [ "//third_party/libnl/libnl/include/" ]
}
action("build_grammar") {
@@ -25,7 +25,7 @@ action("build_grammar") {
"--header-file=$grammer_hh",
"-o",
rebase_path("$target_out_dir/gen/lib/route/pktloc_grammar.c"),
rebase_path("libnl-3.7.0/lib/route/pktloc_grammar.l"),
rebase_path("libnl/lib/route/pktloc_grammar.l"),
]
}
@@ -38,7 +38,7 @@ action("pktloc_syntax") {
"-d",
"-o",
rebase_path("$target_out_dir/gen/lib/route/pktloc_syntax.c"),
rebase_path("libnl-3.7.0/lib/route/pktloc_syntax.y"),
rebase_path("libnl/lib/route/pktloc_syntax.y"),
]
}
@@ -51,7 +51,7 @@ action("ematch_grammar") {
"--header-file=$grammer_hh",
"-o",
rebase_path("$target_out_dir/gen/lib/route/cls/ematch_grammar.c"),
rebase_path("libnl-3.7.0/lib/route/cls/ematch_grammar.l"),
rebase_path("libnl/lib/route/cls/ematch_grammar.l"),
]
}
@@ -64,7 +64,7 @@ action("ematch_syntax") {
"-d",
"-o",
rebase_path("$target_out_dir/gen/lib/route/cls/ematch_syntax.c"),
rebase_path("libnl-3.7.0/lib/route/cls/ematch_syntax.y"),
rebase_path("libnl/lib/route/cls/ematch_syntax.y"),
]
}
if (!defined(ohos_lite)) {
@@ -80,11 +80,11 @@ if (!defined(ohos_lite)) {
syntax_path = get_path_info(syntax_outputs[0], "dir")
include_dirs = [
"libnl-3.7.0",
"libnl-3.7.0/include",
"libnl-3.7.0/lib",
"libnl-3.7.0/lib/route/cls",
"libnl-3.7.0/lib/route",
"libnl",
"libnl/include",
"libnl/lib",
"libnl/lib/route/cls",
"libnl/lib/route",
]
include_dirs += [
@@ -97,161 +97,161 @@ if (!defined(ohos_lite)) {
public_configs = [ ":libnl_share_public_config" ]
sources = [
"libnl-3.7.0/lib/addr.c",
"libnl-3.7.0/lib/attr.c",
"libnl-3.7.0/lib/cache.c",
"libnl-3.7.0/lib/cache_mngr.c",
"libnl-3.7.0/lib/cache_mngt.c",
"libnl-3.7.0/lib/data.c",
"libnl-3.7.0/lib/error.c",
"libnl-3.7.0/lib/handlers.c",
"libnl-3.7.0/lib/hash.c",
"libnl-3.7.0/lib/hashtable.c",
"libnl-3.7.0/lib/mpls.c",
"libnl-3.7.0/lib/msg.c",
"libnl-3.7.0/lib/nl.c",
"libnl-3.7.0/lib/object.c",
"libnl-3.7.0/lib/socket.c",
"libnl-3.7.0/lib/utils.c",
"libnl-3.7.0/lib/version.c",
"libnl-3.7.0/lib/fib_lookup/lookup.c",
"libnl-3.7.0/lib/fib_lookup/request.c",
"libnl-3.7.0/lib/genl/ctrl.c",
"libnl-3.7.0/lib/genl/family.c",
"libnl-3.7.0/lib/genl/genl.c",
"libnl-3.7.0/lib/genl/mngt.c",
"libnl-3.7.0/lib/idiag/idiag.c",
"libnl-3.7.0/lib/idiag/idiag_meminfo_obj.c",
"libnl-3.7.0/lib/idiag/idiag_msg_obj.c",
"libnl-3.7.0/lib/idiag/idiag_req_obj.c",
"libnl-3.7.0/lib/idiag/idiag_vegasinfo_obj.c",
"libnl-3.7.0/lib/netfilter/ct.c",
"libnl-3.7.0/lib/netfilter/ct_obj.c",
"libnl-3.7.0/lib/netfilter/exp.c",
"libnl-3.7.0/lib/netfilter/exp_obj.c",
"libnl-3.7.0/lib/netfilter/log.c",
"libnl-3.7.0/lib/netfilter/log_msg.c",
"libnl-3.7.0/lib/netfilter/log_msg_obj.c",
"libnl-3.7.0/lib/netfilter/log_obj.c",
"libnl-3.7.0/lib/netfilter/netfilter.c",
"libnl-3.7.0/lib/netfilter/nfnl.c",
"libnl-3.7.0/lib/netfilter/queue.c",
"libnl-3.7.0/lib/netfilter/queue_msg.c",
"libnl-3.7.0/lib/netfilter/queue_msg_obj.c",
"libnl-3.7.0/lib/netfilter/queue_obj.c",
"libnl-3.7.0/lib/route/act.c",
"libnl-3.7.0/lib/route/addr.c",
"libnl-3.7.0/lib/route/class.c",
"libnl-3.7.0/lib/route/classid.c",
"libnl-3.7.0/lib/route/cls.c",
"libnl-3.7.0/lib/route/link.c",
"libnl-3.7.0/lib/route/mdb.c",
"libnl-3.7.0/lib/route/neigh.c",
"libnl-3.7.0/lib/route/neightbl.c",
"libnl-3.7.0/lib/route/netconf.c",
"libnl-3.7.0/lib/route/nexthop.c",
"libnl-3.7.0/lib/route/nexthop_encap.c",
"libnl-3.7.0/lib/route/nh_encap_mpls.c",
"libnl-3.7.0/lib/route/pktloc.c",
"libnl/lib/addr.c",
"libnl/lib/attr.c",
"libnl/lib/cache.c",
"libnl/lib/cache_mngr.c",
"libnl/lib/cache_mngt.c",
"libnl/lib/data.c",
"libnl/lib/error.c",
"libnl/lib/handlers.c",
"libnl/lib/hash.c",
"libnl/lib/hashtable.c",
"libnl/lib/mpls.c",
"libnl/lib/msg.c",
"libnl/lib/nl.c",
"libnl/lib/object.c",
"libnl/lib/socket.c",
"libnl/lib/utils.c",
"libnl/lib/version.c",
"libnl/lib/fib_lookup/lookup.c",
"libnl/lib/fib_lookup/request.c",
"libnl/lib/genl/ctrl.c",
"libnl/lib/genl/family.c",
"libnl/lib/genl/genl.c",
"libnl/lib/genl/mngt.c",
"libnl/lib/idiag/idiag.c",
"libnl/lib/idiag/idiag_meminfo_obj.c",
"libnl/lib/idiag/idiag_msg_obj.c",
"libnl/lib/idiag/idiag_req_obj.c",
"libnl/lib/idiag/idiag_vegasinfo_obj.c",
"libnl/lib/netfilter/ct.c",
"libnl/lib/netfilter/ct_obj.c",
"libnl/lib/netfilter/exp.c",
"libnl/lib/netfilter/exp_obj.c",
"libnl/lib/netfilter/log.c",
"libnl/lib/netfilter/log_msg.c",
"libnl/lib/netfilter/log_msg_obj.c",
"libnl/lib/netfilter/log_obj.c",
"libnl/lib/netfilter/netfilter.c",
"libnl/lib/netfilter/nfnl.c",
"libnl/lib/netfilter/queue.c",
"libnl/lib/netfilter/queue_msg.c",
"libnl/lib/netfilter/queue_msg_obj.c",
"libnl/lib/netfilter/queue_obj.c",
"libnl/lib/route/act.c",
"libnl/lib/route/addr.c",
"libnl/lib/route/class.c",
"libnl/lib/route/classid.c",
"libnl/lib/route/cls.c",
"libnl/lib/route/link.c",
"libnl/lib/route/mdb.c",
"libnl/lib/route/neigh.c",
"libnl/lib/route/neightbl.c",
"libnl/lib/route/netconf.c",
"libnl/lib/route/nexthop.c",
"libnl/lib/route/nexthop_encap.c",
"libnl/lib/route/nh_encap_mpls.c",
"libnl/lib/route/pktloc.c",
rebase_path("$grammer_path/pktloc_grammar.c"),
rebase_path("$pktloc_path/pktloc_syntax.c"),
"libnl-3.7.0/lib/route/qdisc.c",
"libnl-3.7.0/lib/route/route.c",
"libnl-3.7.0/lib/route/route_obj.c",
"libnl-3.7.0/lib/route/route_utils.c",
"libnl-3.7.0/lib/route/rtnl.c",
"libnl-3.7.0/lib/route/rule.c",
"libnl-3.7.0/lib/route/tc.c",
"libnl-3.7.0/lib/route/act/gact.c",
"libnl-3.7.0/lib/route/act/mirred.c",
"libnl-3.7.0/lib/route/act/nat.c",
"libnl-3.7.0/lib/route/act/skbedit.c",
"libnl-3.7.0/lib/route/act/vlan.c",
"libnl-3.7.0/lib/route/cls/basic.c",
"libnl-3.7.0/lib/route/cls/cgroup.c",
"libnl-3.7.0/lib/route/cls/ematch.c",
"libnl/lib/route/qdisc.c",
"libnl/lib/route/route.c",
"libnl/lib/route/route_obj.c",
"libnl/lib/route/route_utils.c",
"libnl/lib/route/rtnl.c",
"libnl/lib/route/rule.c",
"libnl/lib/route/tc.c",
"libnl/lib/route/act/gact.c",
"libnl/lib/route/act/mirred.c",
"libnl/lib/route/act/nat.c",
"libnl/lib/route/act/skbedit.c",
"libnl/lib/route/act/vlan.c",
"libnl/lib/route/cls/basic.c",
"libnl/lib/route/cls/cgroup.c",
"libnl/lib/route/cls/ematch.c",
rebase_path("$ematch_path/ematch_grammar.c"),
rebase_path("$syntax_path/ematch_syntax.c"),
"libnl-3.7.0/lib/route/cls/flower.c",
"libnl-3.7.0/lib/route/cls/fw.c",
"libnl-3.7.0/lib/route/cls/mall.c",
"libnl-3.7.0/lib/route/cls/police.c",
"libnl-3.7.0/lib/route/cls/u32.c",
"libnl-3.7.0/lib/route/cls/ematch/cmp.c",
"libnl-3.7.0/lib/route/cls/ematch/container.c",
"libnl-3.7.0/lib/route/cls/ematch/meta.c",
"libnl-3.7.0/lib/route/cls/ematch/nbyte.c",
"libnl-3.7.0/lib/route/cls/ematch/text.c",
"libnl-3.7.0/lib/route/link/api.c",
"libnl-3.7.0/lib/route/link/bonding.c",
"libnl-3.7.0/lib/route/link/bridge.c",
"libnl-3.7.0/lib/route/link/can.c",
"libnl-3.7.0/lib/route/link/dummy.c",
"libnl-3.7.0/lib/route/link/geneve.c",
"libnl-3.7.0/lib/route/link/ifb.c",
"libnl-3.7.0/lib/route/link/inet6.c",
"libnl-3.7.0/lib/route/link/inet.c",
"libnl-3.7.0/lib/route/link/ip6gre.c",
"libnl-3.7.0/lib/route/link/ip6tnl.c",
"libnl-3.7.0/lib/route/link/ip6vti.c",
"libnl-3.7.0/lib/route/link/ipgre.c",
"libnl-3.7.0/lib/route/link/ipip.c",
"libnl-3.7.0/lib/route/link/ipvlan.c",
"libnl-3.7.0/lib/route/link/ipvti.c",
"libnl-3.7.0/lib/route/link/macsec.c",
"libnl-3.7.0/lib/route/link/macvlan.c",
"libnl-3.7.0/lib/route/link/ppp.c",
"libnl-3.7.0/lib/route/link/sit.c",
"libnl-3.7.0/lib/route/link/sriov.c",
"libnl-3.7.0/lib/route/link/team.c",
"libnl-3.7.0/lib/route/link/veth.c",
"libnl-3.7.0/lib/route/link/vlan.c",
"libnl-3.7.0/lib/route/link/vrf.c",
"libnl-3.7.0/lib/route/link/vxlan.c",
"libnl-3.7.0/lib/route/link/xfrmi.c",
"libnl-3.7.0/lib/route/qdisc/blackhole.c",
"libnl-3.7.0/lib/route/qdisc/cbq.c",
"libnl-3.7.0/lib/route/qdisc/dsmark.c",
"libnl-3.7.0/lib/route/qdisc/fifo.c",
"libnl-3.7.0/lib/route/qdisc/fq_codel.c",
"libnl-3.7.0/lib/route/qdisc/hfsc.c",
"libnl-3.7.0/lib/route/qdisc/htb.c",
"libnl-3.7.0/lib/route/qdisc/ingress.c",
"libnl-3.7.0/lib/route/qdisc/mqprio.c",
"libnl-3.7.0/lib/route/qdisc/netem.c",
"libnl-3.7.0/lib/route/qdisc/plug.c",
"libnl-3.7.0/lib/route/qdisc/prio.c",
"libnl-3.7.0/lib/route/qdisc/red.c",
"libnl-3.7.0/lib/route/qdisc/sfq.c",
"libnl-3.7.0/lib/route/qdisc/tbf.c",
"libnl-3.7.0/lib/xfrm/ae.c",
"libnl-3.7.0/lib/xfrm/lifetime.c",
"libnl-3.7.0/lib/xfrm/sa.c",
"libnl-3.7.0/lib/xfrm/selector.c",
"libnl-3.7.0/lib/xfrm/sp.c",
"libnl-3.7.0/lib/xfrm/template.c",
"libnl-3.7.0/lib/cli/cls/basic.c",
"libnl-3.7.0/lib/cli/cls/cgroup.c",
"libnl-3.7.0/lib/cli/qdisc/bfifo.c",
"libnl-3.7.0/lib/cli/qdisc/blackhole.c",
"libnl-3.7.0/lib/cli/qdisc/fq_codel.c",
"libnl-3.7.0/lib/cli/qdisc/hfsc.c",
"libnl-3.7.0/lib/cli/qdisc/htb.c",
"libnl-3.7.0/lib/cli/qdisc/ingress.c",
"libnl-3.7.0/lib/cli/qdisc/pfifo.c",
"libnl-3.7.0/lib/cli/qdisc/plug.c",
"libnl-3.7.0/src/lib/addr.c",
"libnl-3.7.0/src/lib/class.c",
"libnl-3.7.0/src/lib/cls.c",
"libnl-3.7.0/src/lib/ct.c",
"libnl-3.7.0/src/lib/exp.c",
"libnl-3.7.0/src/lib/link.c",
"libnl-3.7.0/src/lib/neigh.c",
"libnl-3.7.0/src/lib/qdisc.c",
"libnl-3.7.0/src/lib/route.c",
"libnl-3.7.0/src/lib/rule.c",
"libnl-3.7.0/src/lib/tc.c",
"libnl-3.7.0/src/lib/utils.c",
"libnl/lib/route/cls/flower.c",
"libnl/lib/route/cls/fw.c",
"libnl/lib/route/cls/mall.c",
"libnl/lib/route/cls/police.c",
"libnl/lib/route/cls/u32.c",
"libnl/lib/route/cls/ematch/cmp.c",
"libnl/lib/route/cls/ematch/container.c",
"libnl/lib/route/cls/ematch/meta.c",
"libnl/lib/route/cls/ematch/nbyte.c",
"libnl/lib/route/cls/ematch/text.c",
"libnl/lib/route/link/api.c",
"libnl/lib/route/link/bonding.c",
"libnl/lib/route/link/bridge.c",
"libnl/lib/route/link/can.c",
"libnl/lib/route/link/dummy.c",
"libnl/lib/route/link/geneve.c",
"libnl/lib/route/link/ifb.c",
"libnl/lib/route/link/inet6.c",
"libnl/lib/route/link/inet.c",
"libnl/lib/route/link/ip6gre.c",
"libnl/lib/route/link/ip6tnl.c",
"libnl/lib/route/link/ip6vti.c",
"libnl/lib/route/link/ipgre.c",
"libnl/lib/route/link/ipip.c",
"libnl/lib/route/link/ipvlan.c",
"libnl/lib/route/link/ipvti.c",
"libnl/lib/route/link/macsec.c",
"libnl/lib/route/link/macvlan.c",
"libnl/lib/route/link/ppp.c",
"libnl/lib/route/link/sit.c",
"libnl/lib/route/link/sriov.c",
"libnl/lib/route/link/team.c",
"libnl/lib/route/link/veth.c",
"libnl/lib/route/link/vlan.c",
"libnl/lib/route/link/vrf.c",
"libnl/lib/route/link/vxlan.c",
"libnl/lib/route/link/xfrmi.c",
"libnl/lib/route/qdisc/blackhole.c",
"libnl/lib/route/qdisc/cbq.c",
"libnl/lib/route/qdisc/dsmark.c",
"libnl/lib/route/qdisc/fifo.c",
"libnl/lib/route/qdisc/fq_codel.c",
"libnl/lib/route/qdisc/hfsc.c",
"libnl/lib/route/qdisc/htb.c",
"libnl/lib/route/qdisc/ingress.c",
"libnl/lib/route/qdisc/mqprio.c",
"libnl/lib/route/qdisc/netem.c",
"libnl/lib/route/qdisc/plug.c",
"libnl/lib/route/qdisc/prio.c",
"libnl/lib/route/qdisc/red.c",
"libnl/lib/route/qdisc/sfq.c",
"libnl/lib/route/qdisc/tbf.c",
"libnl/lib/xfrm/ae.c",
"libnl/lib/xfrm/lifetime.c",
"libnl/lib/xfrm/sa.c",
"libnl/lib/xfrm/selector.c",
"libnl/lib/xfrm/sp.c",
"libnl/lib/xfrm/template.c",
"libnl/lib/cli/cls/basic.c",
"libnl/lib/cli/cls/cgroup.c",
"libnl/lib/cli/qdisc/bfifo.c",
"libnl/lib/cli/qdisc/blackhole.c",
"libnl/lib/cli/qdisc/fq_codel.c",
"libnl/lib/cli/qdisc/hfsc.c",
"libnl/lib/cli/qdisc/htb.c",
"libnl/lib/cli/qdisc/ingress.c",
"libnl/lib/cli/qdisc/pfifo.c",
"libnl/lib/cli/qdisc/plug.c",
"libnl/src/lib/addr.c",
"libnl/src/lib/class.c",
"libnl/src/lib/cls.c",
"libnl/src/lib/ct.c",
"libnl/src/lib/exp.c",
"libnl/src/lib/link.c",
"libnl/src/lib/neigh.c",
"libnl/src/lib/qdisc.c",
"libnl/src/lib/route.c",
"libnl/src/lib/rule.c",
"libnl/src/lib/tc.c",
"libnl/src/lib/utils.c",
]
deps = [
@@ -269,6 +269,8 @@ if (!defined(ohos_lite)) {
#"-UNDEBUG",
"-DSYSCONFDIR=\"\\\"/etc/libnl\\\"\"",
"-D_NL_SYSCONFDIR_LIBNL=\"\\\"/usr/local/ect/libnl\\\"\"",
"-D_NL_PKGLIBDIR==\"\\\"/usr/local/lib/libnl\\\"\"",
]
install_images = [
+4 -4
View File
@@ -1,11 +1,11 @@
[
{
"Name": "openEuler:libnl3",
"Name": "libnl3",
"License": "LGPL V2.1",
"License File": "COPYING",
"Version Number": "3.7.0-2.oe2203sp3",
"Owner": "xusai4@huawei.com",
"Upstream URL": "https://repo.openeuler.org/openEuler-22.03-LTS-SP3/source/Packages/libnl3-3.7.0-2.oe2203sp3.src.rpm",
"Version Number": "3.11.0",
"Owner": "yanxiaotao@huawei.com",
"Upstream URL": "https://github.com/thom311/libnl/archive/refs/tags/libnl3_11_0.tar.gz",
"Description": "Providing APIs to netlink protocol based Linux kernel interfaces."
}
]
+2 -2
View File
@@ -11,11 +11,11 @@
The following patches is carried by the openEuler:libnl3 open source library:
slove-oh-update-sp3.patch
The following patches are added to solve the compilation problem under the OpenHarmony project:
solve-oh-compile-problem.patch
solve-oh-compile-problem3_11_0.patch
#### Contribution
+2 -2
View File
@@ -11,10 +11,10 @@
#### patch包说明
以下patch包为openEuler:libnl3开源库本身携带
slove-oh-update-sp3.patch
以下patch包为解决在OpenHarmony工程下编译存在的问题自行添加
solve-oh-compile-problem.patch
solve-oh-compile-problem3_11_0.patch
#### 参与贡献
+1 -1
View File
@@ -9,7 +9,7 @@
},
"dirs": {},
"scripts": {},
"licensePath": "thirdparth/libnl-3.7.0/COPYING",
"licensePath": "thirdparth/libnl-libnl3.11.0/COPYING",
"readmePath":{
"en": "README.md",
"zh": "README_ZH.md"
+9 -7
View File
@@ -8,13 +8,15 @@
set -e
cd $1
if [ -d "libnl-3.7.0" ];then
rm -rf libnl-3.7.0
if [ -d "libnl" ];then
rm -rf libnl
fi
tar xvf libnl-3.7.0.tar.gz
cd $1/libnl-3.7.0
tar xvf libnl-libnl3_11_0.tar.gz
mv libnl-libnl3_11_0 libnl
cd $1/libnl
apt-get update
apt-get install autoconf automake libtool -y
./autogen.sh
./configure
patch -p1 < $1/slove-oh-update-sp3.patch --fuzz=0 --no-backup-if-mismatch
patch -p1 < $1/solve-oh-compile-problem.patch --fuzz=0 --no-backup-if-mismatch
patch -p1 < $1/slove-oh-bug-fix.patch --fuzz=0 --no-backup-if-mismatch
patch -p1 < $1/solve-oh-compile-problem3_11_0.patch --fuzz=0 --no-backup-if-mismatch
exit 0
Binary file not shown.
+236
View File
@@ -0,0 +1,236 @@
diff -urN libnl/lib/utils.c libnl-libnl3_11_0-new/lib/utils.c
--- libnl/lib/utils.c 2024-10-30 15:13:01.000000000 +0800
+++ libnl-libnl3_11_0-new/lib/utils.c 2025-06-18 10:02:10.472222700 +0800
@@ -279,8 +279,8 @@
int nl_rate2str(unsigned long long rate, int type, char *buf, size_t len)
{
- char *unit;
- double frac;
+ char *unit = NULL;
+ double frac = 0.0;
switch (type) {
case NL_BYTE_RATE:
@@ -427,6 +427,7 @@
}
BUG();
+ return buf;
}
/**
diff -urN libnl/lib/route/mdb.c libnl-libnl3_11_0-new/lib/route/mdb.c
--- libnl/lib/route/mdb.c 2024-10-30 15:13:01.000000000 +0800
+++ libnl-libnl3_11_0-new/lib/route/mdb.c 2025-06-18 10:08:22.230880000 +0800
@@ -5,7 +5,7 @@
#include "nl-default.h"
-#include <linux/if_bridge.h>
+#include <linux-private/linux/if_bridge.h>
#include <netlink/netlink.h>
#include <netlink/route/mdb.h>
diff -urN libnl/lib/route/neigh.c libnl-libnl3_11_0-new/lib/route/neigh.c
--- libnl/lib/route/neigh.c 2024-10-30 15:13:01.000000000 +0800
+++ libnl-libnl3_11_0-new/lib/route/neigh.c 2025-06-18 10:14:10.647307300 +0800
@@ -461,10 +461,12 @@
neigh->ce_mask |= NEIGH_ATTR_NHID;
}
+#ifdef OPEN_HARMONY_UPDATE_ADAPT_KERNEL_VERSION
if (tb[NDA_FLAGS_EXT]) {
neigh->n_ext_flags = nla_get_u32(tb[NDA_FLAGS_EXT]);
neigh->ce_mask |= NEIGH_ATTR_EXT_FLAGS;
}
+#endif
/*
* Get the bridge index for AF_BRIDGE family entries
@@ -777,6 +779,7 @@
if (tmpl->ce_mask & NEIGH_ATTR_NHID)
NLA_PUT_U32(msg, NDA_NH_ID, tmpl->n_nhid);
+#ifdef OPEN_HARMONY_UPDATE_ADAPT_KERNEL_VERSION
if (tmpl->ce_mask & NEIGH_ATTR_EXT_FLAGS) {
/* The kernel does not allow setting the locked flag from
* userspace, so unset it in the request. */
@@ -786,6 +789,7 @@
if (ext_flags)
NLA_PUT_U32(msg, NDA_FLAGS_EXT, ext_flags);
}
+#endif
*result = msg;
return 0;
diff -urN libnl/lib/route/link/bridge.c libnl-libnl3_11_0-new/lib/route/link/bridge.c
--- libnl/lib/route/link/bridge.c 2024-10-30 15:13:01.000000000 +0800
+++ libnl-libnl3_11_0-new/lib/route/link/bridge.c 2025-06-18 10:21:45.632085400 +0800
@@ -13,7 +13,7 @@
#include "nl-default.h"
-#include <linux/if_bridge.h>
+#include <linux-private/linux/if_bridge.h>
#include <linux/rtnetlink.h>
#include <netlink/netlink.h>
@@ -40,6 +40,7 @@
#define BRIDGE_ATTR_MST (1UL << 7)
#define PRIV_FLAG_NEW_ATTRS (1UL << 0)
+#define RTEXT_FILTER_MST (1 << 7)
struct bridge_data
{
@@ -248,9 +249,11 @@
[IFLA_BRPORT_BCAST_FLOOD] = { .type = NLA_U8 },
[IFLA_BRPORT_NEIGH_SUPPRESS] = { .type = NLA_U8 },
[IFLA_BRPORT_ISOLATED] = { .type = NLA_U8 },
+#ifdef OPEN_HARMONY_UPDATE_ADAPT_KERNEL_VERSION
[IFLA_BRPORT_LOCKED] = { .type = NLA_U8 },
[IFLA_BRPORT_MAB] = { .type = NLA_U8 },
[IFLA_BRPORT_NEIGH_VLAN_SUPPRESS] = { .type = NLA_U8 },
+#endif
};
static void check_flag(struct rtnl_link *link, struct nlattr *attrs[],
@@ -322,10 +325,12 @@
check_flag(link, br_attrs, IFLA_BRPORT_NEIGH_SUPPRESS,
RTNL_BRIDGE_NEIGH_SUPPRESS);
check_flag(link, br_attrs, IFLA_BRPORT_ISOLATED, RTNL_BRIDGE_ISOLATED);
+#ifdef OPEN_HARMONY_UPDATE_ADAPT_KERNEL_VERSION
check_flag(link, br_attrs, IFLA_BRPORT_LOCKED, RTNL_BRIDGE_LOCKED);
check_flag(link, br_attrs, IFLA_BRPORT_MAB, RTNL_BRIDGE_MAB);
check_flag(link, br_attrs, IFLA_BRPORT_NEIGH_VLAN_SUPPRESS,
RTNL_BRIDGE_NEIGH_VLAN_SUPPRESS);
+#endif
return 0;
}
@@ -720,6 +725,7 @@
NLA_PUT_U8(msg, IFLA_BRPORT_ISOLATED,
!!(bd->b_flags & RTNL_BRIDGE_ISOLATED));
}
+#ifdef OPEN_HARMONY_UPDATE_ADAPT_KERNEL_VERSION
if (bd->b_flags_mask & RTNL_BRIDGE_LOCKED) {
NLA_PUT_U8(msg, IFLA_BRPORT_LOCKED,
!!(bd->b_flags & RTNL_BRIDGE_LOCKED));
@@ -733,6 +739,7 @@
!!(bd->b_flags &
RTNL_BRIDGE_NEIGH_VLAN_SUPPRESS));
}
+#endif
}
if (bd->ce_mask & BRIDGE_ATTR_COST)
diff -urN libnl/include/base/nl-base-utils.h libnl-libnl3_11_0-new/include/base/nl-base-utils.h
--- libnl/include/base/nl-base-utils.h 2024-10-30 15:13:01.000000000 +0800
+++ libnl-libnl3_11_0-new/include/base/nl-base-utils.h 2025-06-18 10:32:27.489011600 +0800
@@ -20,6 +20,11 @@
#include <netinet/in.h>
#include <arpa/inet.h>
+#define NTF_EXT_MANAGED (1 << 0)
+#define NTF_EXT_LOCKED (1 << 1)
+
+#define NDA_MAX (__NDA_MAX - 1)
+
#ifndef DISABLE_PTHREADS
#include <pthread.h>
#endif
@@ -162,10 +167,8 @@
#define _nl_assert_addr_family(addr_family) \
do { \
- typeof(addr_family) _addr_family = (addr_family); \
- \
- _nl_assert(_addr_family == AF_INET || \
- _addr_family == AF_INET6); \
+ _nl_assert(addr_family == AF_INET || \
+ addr_family == AF_INET6); \
} while (0)
/*****************************************************************************/
@@ -185,9 +188,11 @@
/*****************************************************************************/
+#ifndef ARRAY_SIZE
#define _NL_N_ELEMENTS(arr) (sizeof(arr) / sizeof((arr)[0]))
#define ARRAY_SIZE(arr) _NL_N_ELEMENTS(arr)
+#endif
/*****************************************************************************/
@@ -258,7 +263,7 @@
return _nl_memcmp(s1, s2, len) == 0;
}
-static inline void *_nl_memcpy(void *restrict dest, const void *restrict src,
+static inline void *_nl_memcpy(void *__restrict dest, const void *__restrict src,
size_t n)
{
/* Workaround undefined behavior in memcpy() with NULL pointers. */
@@ -703,7 +708,7 @@
static inline char *_nl_inet_ntop_dup(int addr_family, const void *addr)
{
return (char *)_nl_inet_ntop(addr_family, addr,
- malloc((addr_family == AF_INET) ?
+ (char *)malloc((addr_family == AF_INET) ?
INET_ADDRSTRLEN :
INET6_ADDRSTRLEN));
}
diff -urN libnl/include/config.h libnl-libnl3_11_0-new/include/config.h
--- libnl/include/config.h 2024-10-30 15:13:01.000000000 +0800
+++ libnl-libnl3_11_0-new/include/config.h 2025-06-18 10:32:27.489011600 +0800
@@ -6,11 +6,11 @@
/* Define to 1 if you have the declaration of `getprotobyname_r', and to 0 if
you don't. */
-#define HAVE_DECL_GETPROTOBYNAME_R 1
+#define HAVE_DECL_GETPROTOBYNAME_R 0
/* Define to 1 if you have the declaration of `getprotobynumber_r', and to 0
if you don't. */
-#define HAVE_DECL_GETPROTOBYNUMBER_R 1
+#define HAVE_DECL_GETPROTOBYNUMBER_R 0
/* Define to 1 if you have the <dlfcn.h> header file. */
#define HAVE_DLFCN_H 1
@@ -34,7 +34,7 @@
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the `strerror_l' function. */
-#define HAVE_STRERROR_L 1
+#define HAVE_STRERROR_L 0
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
diff -urN libnl/include/nl-priv-dynamic-core/nl-core.h libnl-libnl3_11_0-new/include/nl-priv-dynamic-core/nl-core.h
--- libnl/include/nl-priv-dynamic-core/nl-core.h 2024-10-30 15:13:01.000000000 +0800
+++ libnl-libnl3_11_0-new/include/nl-priv-dynamic-core/nl-core.h 2025-06-19 19:37:09.297502900 +0800
@@ -6,6 +6,8 @@
#ifndef __NL_SHARED_CORE_NL_CORE_H__
#define __NL_SHARED_CORE_NL_CORE_H__
+#include <base/nl-base-utils.h>
+
#define NL_SOCK_PASSCRED (1 << 1)
#define NL_OWN_PORT (1 << 2)
#define NL_MSG_PEEK (1 << 3)
diff -urN libnl/src/lib/utils.c libnl-libnl3_11_0-new/src/lib/utils.c
--- libnl/src/lib/utils.c 2024-10-30 15:13:01.000000000 +0800
+++ libnl-libnl3_11_0-new/src/lib/utils.c 2025-09-01 21:06:31.381794800 +0800
@@ -222,9 +222,6 @@
{
char path[FILENAME_MAX+1];
- snprintf(path, sizeof(path), "%s/%s/%s.so",
- _NL_PKGLIBDIR, prefix, name);
-
#ifdef HAVE_DLFCN_H
{
void *handle;