summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/image-build/build-vyos-image26
-rwxr-xr-xscripts/package-build/blackbox_exporter/build.sh2
-rw-r--r--scripts/package-build/blackbox_exporter/package.toml2
-rw-r--r--scripts/package-build/frr_exporter/package.toml2
-rw-r--r--scripts/package-build/linux-kernel/arch/arm64/configs/vyos_defconfig144
-rw-r--r--scripts/package-build/linux-kernel/arch/x86/configs/vyos_defconfig24
-rwxr-xr-xscripts/package-build/linux-kernel/build-ipt-netflow.sh10
-rw-r--r--scripts/package-build/linux-kernel/patches/accel-ppp/0002-Radius-Dns-Server-IPv6-Address.patch195
-rw-r--r--scripts/package-build/node_exporter/package.toml2
-rw-r--r--scripts/package-build/radvd/package.toml2
10 files changed, 373 insertions, 36 deletions
diff --git a/scripts/image-build/build-vyos-image b/scripts/image-build/build-vyos-image
index aab5ed13..3275c5de 100755
--- a/scripts/image-build/build-vyos-image
+++ b/scripts/image-build/build-vyos-image
@@ -618,32 +618,32 @@ DOCUMENTATION_URL="{build_config['documentation_url']}"
lb config noauto \
--no-color \
--apt-indices false \
- --apt-options "--yes -oAPT::Get::allow-downgrades=true" \
+ --apt-options "--yes" \
--apt-recommends false \
- --architecture {{architecture}} \
- --archive-areas {{debian_archive_areas}} \
+ --architecture "{{architecture}}" \
+ --archive-areas "{{debian_archive_areas}}" \
--backports true \
--binary-image iso-hybrid \
--bootappend-live "boot=live components hostname=vyos username=live nopersistence noautologin nonetworking union=overlay console=ttyS0,115200 console=tty0 net.ifnames=0 biosdevname=0" \
--bootappend-live-failsafe "live components memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal console=ttyS0,115200 console=tty0 net.ifnames=0 biosdevname=0" \
- --bootloaders {{bootloaders}} \
- --checksums 'sha256 md5' \
+ --bootloaders "{{bootloaders}}" \
+ --checksums "sha256" \
--chroot-squashfs-compression-type "{{squashfs_compression_type}}" \
--debian-installer none \
--debootstrap-options "--variant=minbase --exclude=isc-dhcp-client,isc-dhcp-common,ifupdown --include=apt-utils,ca-certificates,gnupg2,linux-kbuild-6.1" \
- --distribution {{debian_distribution}} \
+ --distribution "{{debian_distribution}}" \
--firmware-binary false \
--firmware-chroot false \
--iso-application "VyOS" \
--iso-publisher "{{build_by}}" \
--iso-volume "VyOS" \
- --linux-flavours {{kernel_flavor}} \
- --linux-packages linux-image-{{kernel_version}} \
- --mirror-binary {{debian_mirror}} \
- --mirror-binary-security {{debian_security_mirror}} \
- --mirror-bootstrap {{debian_mirror}} \
- --mirror-chroot {{debian_mirror}} \
- --mirror-chroot-security {{debian_security_mirror}} \
+ --linux-flavours "{{kernel_flavor}}" \
+ --linux-packages "linux-image-{{kernel_version}}" \
+ --mirror-binary "{{debian_mirror}}" \
+ --mirror-binary-security "{{debian_security_mirror}}" \
+ --mirror-bootstrap "{{debian_mirror}}" \
+ --mirror-chroot "{{debian_mirror}}" \
+ --mirror-chroot-security "{{debian_security_mirror}}" \
--security true \
--updates true \
--utc-time true
diff --git a/scripts/package-build/blackbox_exporter/build.sh b/scripts/package-build/blackbox_exporter/build.sh
index 39a08230..127c03be 100755
--- a/scripts/package-build/blackbox_exporter/build.sh
+++ b/scripts/package-build/blackbox_exporter/build.sh
@@ -32,7 +32,7 @@ EOF
echo "I: Create $SRC/debian/changelog"
cat <<EOF > debian/changelog
-blackbox-exporter (0.25.0) UNRELEASED; urgency=medium
+blackbox-exporter (0.26.0) UNRELEASED; urgency=medium
* Upstream package
diff --git a/scripts/package-build/blackbox_exporter/package.toml b/scripts/package-build/blackbox_exporter/package.toml
index 3cdc21b8..a59a3fdd 100644
--- a/scripts/package-build/blackbox_exporter/package.toml
+++ b/scripts/package-build/blackbox_exporter/package.toml
@@ -1,5 +1,5 @@
[[packages]]
name = "blackbox_exporter"
-commit_id = "v0.25.0"
+commit_id = "v0.26.0"
scm_url = "https://github.com/prometheus/blackbox_exporter"
build_cmd = "cd ..; y | ./build.sh"
diff --git a/scripts/package-build/frr_exporter/package.toml b/scripts/package-build/frr_exporter/package.toml
index 1c87d496..607c4c68 100644
--- a/scripts/package-build/frr_exporter/package.toml
+++ b/scripts/package-build/frr_exporter/package.toml
@@ -1,6 +1,6 @@
[[packages]]
name = "frr_exporter"
-commit_id = "v1.3.1"
+commit_id = "v1.5.0"
scm_url = "https://github.com/tynany/frr_exporter"
build_cmd = """
diff --git a/scripts/package-build/linux-kernel/arch/arm64/configs/vyos_defconfig b/scripts/package-build/linux-kernel/arch/arm64/configs/vyos_defconfig
index fe174f63..e6ea3893 100644
--- a/scripts/package-build/linux-kernel/arch/arm64/configs/vyos_defconfig
+++ b/scripts/package-build/linux-kernel/arch/arm64/configs/vyos_defconfig
@@ -234,7 +234,7 @@ CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
-CONFIG_IO_URING=y
+# CONFIG_IO_URING is not set
CONFIG_ADVISE_SYSCALLS=y
CONFIG_MEMBARRIER=y
CONFIG_KALLSYMS=y
@@ -1975,7 +1975,7 @@ CONFIG_RASPBERRYPI_FIRMWARE=y
CONFIG_QCOM_SCM=y
# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set
CONFIG_SYSFB=y
-# CONFIG_SYSFB_SIMPLEFB is not set
+CONFIG_SYSFB_SIMPLEFB=y
CONFIG_TI_SCI_PROTOCOL=y
CONFIG_TURRIS_MOX_RWTM=m
# CONFIG_ARM_FFA_TRANSPORT is not set
@@ -3353,7 +3353,8 @@ CONFIG_SERIAL_8250_TEGRA=y
# Non-8250 serial port support
#
# CONFIG_SERIAL_AMBA_PL010 is not set
-# CONFIG_SERIAL_AMBA_PL011 is not set
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
# CONFIG_SERIAL_EARLYCON_SEMIHOST is not set
# CONFIG_SERIAL_MESON is not set
# CONFIG_SERIAL_TEGRA is not set
@@ -3401,7 +3402,7 @@ CONFIG_TTY_PRINTK=m
CONFIG_TTY_PRINTK_LEVEL=6
# CONFIG_PRINTER is not set
# CONFIG_PPDEV is not set
-CONFIG_VIRTIO_CONSOLE=m
+CONFIG_VIRTIO_CONSOLE=y
CONFIG_IPMI_HANDLER=m
CONFIG_IPMI_DMI_DECODE=y
CONFIG_IPMI_PLAT_DATA=y
@@ -4495,8 +4496,141 @@ CONFIG_VIDEO_CMDLINE=y
# CONFIG_AUXDISPLAY is not set
# CONFIG_PANEL is not set
# CONFIG_TEGRA_HOST1X is not set
-# CONFIG_DRM is not set
+CONFIG_DRM=y
+# CONFIG_DRM_DEBUG_MM is not set
+CONFIG_DRM_KMS_HELPER=y
+# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set
# CONFIG_DRM_DEBUG_MODESET_LOCK is not set
+CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
+# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set
+# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
+CONFIG_DRM_TTM=y
+CONFIG_DRM_TTM_HELPER=y
+CONFIG_DRM_GEM_SHMEM_HELPER=y
+
+#
+# I2C encoder or helper chips
+#
+# CONFIG_DRM_I2C_CH7006 is not set
+# CONFIG_DRM_I2C_SIL164 is not set
+# CONFIG_DRM_I2C_NXP_TDA998X is not set
+# CONFIG_DRM_I2C_NXP_TDA9950 is not set
+# end of I2C encoder or helper chips
+
+#
+# ARM devices
+#
+# CONFIG_DRM_HDLCD is not set
+# CONFIG_DRM_MALI_DISPLAY is not set
+# CONFIG_DRM_KOMEDA is not set
+# end of ARM devices
+
+# CONFIG_DRM_RADEON is not set
+# CONFIG_DRM_AMDGPU is not set
+# CONFIG_DRM_NOUVEAU is not set
+# CONFIG_DRM_VGEM is not set
+# CONFIG_DRM_VKMS is not set
+# CONFIG_DRM_ROCKCHIP is not set
+# CONFIG_DRM_VMWGFX is not set
+# CONFIG_DRM_UDL is not set
+# CONFIG_DRM_AST is not set
+# CONFIG_DRM_MGAG200 is not set
+# CONFIG_DRM_RCAR_DU is not set
+# CONFIG_DRM_RZG2L_MIPI_DSI is not set
+# CONFIG_DRM_SHMOBILE is not set
+# CONFIG_DRM_SUN4I is not set
+CONFIG_DRM_QXL=y
+CONFIG_DRM_VIRTIO_GPU=y
+CONFIG_DRM_VIRTIO_GPU_KMS=y
+# CONFIG_DRM_MSM is not set
+# CONFIG_DRM_TEGRA is not set
+CONFIG_DRM_PANEL=y
+
+#
+# Display Panels
+#
+# CONFIG_DRM_PANEL_ARM_VERSATILE is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
+# end of Display Panels
+
+CONFIG_DRM_BRIDGE=y
+CONFIG_DRM_PANEL_BRIDGE=y
+
+#
+# Display Interface Bridges
+#
+# CONFIG_DRM_CHIPONE_ICN6211 is not set
+# CONFIG_DRM_CHRONTEL_CH7033 is not set
+# CONFIG_DRM_DISPLAY_CONNECTOR is not set
+# CONFIG_DRM_FSL_LDB is not set
+# CONFIG_DRM_ITE_IT6505 is not set
+# CONFIG_DRM_LONTIUM_LT8912B is not set
+# CONFIG_DRM_LONTIUM_LT9211 is not set
+# CONFIG_DRM_LONTIUM_LT9611 is not set
+# CONFIG_DRM_LONTIUM_LT9611UXC is not set
+# CONFIG_DRM_ITE_IT66121 is not set
+# CONFIG_DRM_LVDS_CODEC is not set
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
+# CONFIG_DRM_NWL_MIPI_DSI is not set
+# CONFIG_DRM_NXP_PTN3460 is not set
+# CONFIG_DRM_PARADE_PS8622 is not set
+# CONFIG_DRM_PARADE_PS8640 is not set
+# CONFIG_DRM_SAMSUNG_DSIM is not set
+# CONFIG_DRM_SIL_SII8620 is not set
+# CONFIG_DRM_SII902X is not set
+# CONFIG_DRM_SII9234 is not set
+# CONFIG_DRM_SIMPLE_BRIDGE is not set
+# CONFIG_DRM_THINE_THC63LVD1024 is not set
+# CONFIG_DRM_TOSHIBA_TC358762 is not set
+# CONFIG_DRM_TOSHIBA_TC358764 is not set
+# CONFIG_DRM_TOSHIBA_TC358767 is not set
+# CONFIG_DRM_TOSHIBA_TC358768 is not set
+# CONFIG_DRM_TOSHIBA_TC358775 is not set
+# CONFIG_DRM_TI_DLPC3433 is not set
+# CONFIG_DRM_TI_TFP410 is not set
+# CONFIG_DRM_TI_SN65DSI83 is not set
+# CONFIG_DRM_TI_SN65DSI86 is not set
+# CONFIG_DRM_TI_TPD12S015 is not set
+# CONFIG_DRM_ANALOGIX_ANX6345 is not set
+# CONFIG_DRM_ANALOGIX_ANX78XX is not set
+# CONFIG_DRM_ANALOGIX_ANX7625 is not set
+# CONFIG_DRM_I2C_ADV7511 is not set
+# CONFIG_DRM_CDNS_DSI is not set
+# CONFIG_DRM_CDNS_MHDP8546 is not set
+# CONFIG_DRM_IMX8QM_LDB is not set
+# CONFIG_DRM_IMX8QXP_LDB is not set
+# CONFIG_DRM_IMX8QXP_PIXEL_COMBINER is not set
+# CONFIG_DRM_IMX8QXP_PIXEL_LINK_TO_DPI is not set
+# end of Display Interface Bridges
+
+# CONFIG_DRM_IMX_DCSS is not set
+# CONFIG_DRM_IMX_LCDC is not set
+# CONFIG_DRM_V3D is not set
+# CONFIG_DRM_LOONGSON is not set
+# CONFIG_DRM_ETNAVIV is not set
+# CONFIG_DRM_HISI_HIBMC is not set
+# CONFIG_DRM_HISI_KIRIN is not set
+# CONFIG_DRM_LOGICVC is not set
+# CONFIG_DRM_MXSFB is not set
+# CONFIG_DRM_IMX_LCDIF is not set
+# CONFIG_DRM_MESON is not set
+# CONFIG_DRM_ARCPGU is not set
+# CONFIG_DRM_BOCHS is not set
+# CONFIG_DRM_CIRRUS_QEMU is not set
+# CONFIG_DRM_GM12U320 is not set
+CONFIG_DRM_SIMPLEDRM=y
+# CONFIG_DRM_PL111 is not set
+# CONFIG_DRM_XEN_FRONTEND is not set
+# CONFIG_DRM_LIMA is not set
+# CONFIG_DRM_PANFROST is not set
+# CONFIG_DRM_TIDSS is not set
+# CONFIG_DRM_GUD is not set
+# CONFIG_DRM_SSD130X is not set
+# CONFIG_DRM_HYPERV is not set
+# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
#
diff --git a/scripts/package-build/linux-kernel/arch/x86/configs/vyos_defconfig b/scripts/package-build/linux-kernel/arch/x86/configs/vyos_defconfig
index 124c9aa8..de3b84aa 100644
--- a/scripts/package-build/linux-kernel/arch/x86/configs/vyos_defconfig
+++ b/scripts/package-build/linux-kernel/arch/x86/configs/vyos_defconfig
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 6.6.69 Kernel Configuration
+# Linux/x86 6.6.89 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (Debian 12.2.0-14) 12.2.0"
CONFIG_CC_IS_GCC=y
@@ -19,7 +19,7 @@ CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
CONFIG_TOOLS_SUPPORT_RELR=y
CONFIG_CC_HAS_ASM_INLINE=y
CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
-CONFIG_PAHOLE_VERSION=0
+CONFIG_PAHOLE_VERSION=124
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_TABLE_SORT=y
CONFIG_THREAD_INFO_IN_TASK=y
@@ -257,7 +257,7 @@ CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
-CONFIG_IO_URING=y
+# CONFIG_IO_URING is not set
CONFIG_ADVISE_SYSCALLS=y
CONFIG_MEMBARRIER=y
CONFIG_KALLSYMS=y
@@ -1798,8 +1798,6 @@ CONFIG_ETHTOOL_NETLINK=y
#
# Device Drivers
#
-CONFIG_HAVE_EISA=y
-# CONFIG_EISA is not set
CONFIG_HAVE_PCI=y
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
@@ -4418,6 +4416,7 @@ CONFIG_HID_GENERIC=m
# CONFIG_HID_THRUSTMASTER is not set
# CONFIG_HID_UDRAW_PS3 is not set
# CONFIG_HID_U2FZERO is not set
+# CONFIG_HID_UNIVERSAL_PIDFF is not set
# CONFIG_HID_WACOM is not set
# CONFIG_HID_WIIMOTE is not set
# CONFIG_HID_XINMO is not set
@@ -5023,20 +5022,27 @@ CONFIG_VIRTIO_PCI_LIB_LEGACY=m
CONFIG_VIRTIO_MENU=y
CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_PCI_LEGACY=y
+CONFIG_VIRTIO_VDPA=m
# CONFIG_VIRTIO_PMEM is not set
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_INPUT=m
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
-CONFIG_VIRTIO_VDPA=m
CONFIG_VDPA=m
-CONFIG_VHOST_VDPA=m
+# CONFIG_VDPA_USER is not set
+# CONFIG_IFCVF is not set
+# CONFIG_MLX5_VDPA_NET is not set
+# CONFIG_MLX5_VDPA_STEERING_DEBUG is not set
+# CONFIG_VP_VDPA is not set
+# CONFIG_ALIBABA_ENI_VDPA is not set
+# CONFIG_SNET_VDPA is not set
CONFIG_VHOST_IOTLB=m
CONFIG_VHOST_TASK=y
CONFIG_VHOST=m
CONFIG_VHOST_MENU=y
CONFIG_VHOST_NET=m
CONFIG_VHOST_VSOCK=m
+CONFIG_VHOST_VDPA=m
# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
#
@@ -5414,7 +5420,6 @@ CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
CONFIG_INOTIFY_USER=y
-CONFIG_INOTIFY_STACKFS=y
# CONFIG_FANOTIFY is not set
# CONFIG_QUOTA is not set
CONFIG_AUTOFS_FS=m
@@ -5481,9 +5486,9 @@ CONFIG_TMPFS_XATTR=y
# CONFIG_TMPFS_INODE64 is not set
# CONFIG_TMPFS_QUOTA is not set
CONFIG_HUGETLBFS=y
+# CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON is not set
CONFIG_HUGETLB_PAGE=y
CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y
-# CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON is not set
CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
CONFIG_CONFIGFS_FS=m
CONFIG_EFIVAR_FS=m
@@ -5588,7 +5593,6 @@ CONFIG_NLS_ISO8859_1=m
CONFIG_NLS_UTF8=m
# CONFIG_DLM is not set
# CONFIG_UNICODE is not set
-CONFIG_IO_WQ=y
# end of File systems
#
diff --git a/scripts/package-build/linux-kernel/build-ipt-netflow.sh b/scripts/package-build/linux-kernel/build-ipt-netflow.sh
index 9c657676..9245a416 100755
--- a/scripts/package-build/linux-kernel/build-ipt-netflow.sh
+++ b/scripts/package-build/linux-kernel/build-ipt-netflow.sh
@@ -25,7 +25,7 @@ DRIVER_VERSION=$(git describe | sed s/^v//)
# Build up Debian related variables required for packaging
DEBIAN_ARCH=$(dpkg --print-architecture)
-DEBIAN_DIR="tmp/lib/modules/${KERNEL_VERSION}${KERNEL_SUFFIX}/extra"
+DEBIAN_DIR="tmp/"
DEBIAN_CONTROL="${DEBIAN_DIR}/DEBIAN/control"
DEBIAN_POSTINST="${CWD}/vyos-ipt-netflow.postinst"
@@ -47,6 +47,8 @@ fi
# build Debian package
echo "I: Building Debian package vyos-ipt-netflow"
cp ipt_NETFLOW.ko ${DEBIAN_DIR}
+cp libipt_NETFLOW.so ${DEBIAN_DIR}
+cp libip6t_NETFLOW.so ${DEBIAN_DIR}
# Sign generated Kernel modules
${CWD}/sign-modules.sh ${DEBIAN_DIR}
@@ -61,5 +63,7 @@ fpm --input-type dir --output-type deb --name vyos-ipt-netflow \
--maintainer "VyOS Package Maintainers <maintainers@vyos.net>" \
--description "ipt_NETFLOW module" \
--depends linux-image-${KERNEL_VERSION}${KERNEL_SUFFIX} \
- --license "GPL2" -C ${IPT_NETFLOW_SRC}/tmp --after-install ${DEBIAN_POSTINST}
-
+ --license "GPL2" -C ${IPT_NETFLOW_SRC}/tmp --after-install ${DEBIAN_POSTINST} \
+ ipt_NETFLOW.ko=/lib/modules/${KERNEL_VERSION}${KERNEL_SUFFIX}/extra/ipt_NETFLOW.ko \
+ libipt_NETFLOW.so=/lib/$(uname -m)-linux-gnu/xtables/libipt_NETFLOW.so \
+ libip6t_NETFLOW.so=/lib/$(uname -m)-linux-gnu/xtables/libip6t_NETFLOW.so
diff --git a/scripts/package-build/linux-kernel/patches/accel-ppp/0002-Radius-Dns-Server-IPv6-Address.patch b/scripts/package-build/linux-kernel/patches/accel-ppp/0002-Radius-Dns-Server-IPv6-Address.patch
new file mode 100644
index 00000000..a8991801
--- /dev/null
+++ b/scripts/package-build/linux-kernel/patches/accel-ppp/0002-Radius-Dns-Server-IPv6-Address.patch
@@ -0,0 +1,195 @@
+From: Ben Hardill <ben@hardill.me.uk>
+Date: Tue, 13 Mar 2025 05:00:00 +0000
+Subject: [PATCH] PPPoE: IPv6 DNS from Radius - managing the DNS-Server-IPv6-Address attribute
+
+Patch authored by Ben Hardill from
+https://github.com/accel-ppp/accel-ppp/pull/69
+---
+diff --git a/accel-pppd/include/ap_session.h b/accel-pppd/include/ap_session.h
+index 70515133..507eae04 100644
+--- a/accel-pppd/include/ap_session.h
++++ b/accel-pppd/include/ap_session.h
+@@ -84,6 +84,7 @@ struct ap_session
+ struct ipv4db_item_t *ipv4;
+ struct ipv6db_item_t *ipv6;
+ struct ipv6db_prefix_t *ipv6_dp;
++ struct ipv6db_item_t *ipv6_dns;
+ char *ipv4_pool_name;
+ char *ipv6_pool_name;
+ char *dpv6_pool_name;
+diff --git a/accel-pppd/ipv6/dhcpv6.c b/accel-pppd/ipv6/dhcpv6.c
+index 158771b1..1ef48132 100644
+--- a/accel-pppd/ipv6/dhcpv6.c
++++ b/accel-pppd/ipv6/dhcpv6.c
+@@ -214,19 +214,41 @@ static void insert_status(struct dhcpv6_packet *pkt, struct dhcpv6_option *opt,
+ status->code = htons(code);
+ }
+
+-static void insert_oro(struct dhcpv6_packet *reply, struct dhcpv6_option *opt)
++static void insert_oro(struct dhcpv6_packet *reply, struct dhcpv6_option *opt, struct ap_session *ses)
+ {
+ struct dhcpv6_option *opt1;
+- int i, j;
++ int i = 0, j = 0, k = 0;
+ uint16_t *ptr;
+ struct in6_addr addr, *addr_ptr;
++ struct ipv6db_addr_t *dns;
+
+ for (i = ntohs(opt->hdr->len) / 2, ptr = (uint16_t *)opt->hdr->data; i; i--, ptr++) {
+ if (ntohs(*ptr) == D6_OPTION_DNS_SERVERS) {
+- if (conf_dns_count) {
+- opt1 = dhcpv6_option_alloc(reply, D6_OPTION_DNS_SERVERS, conf_dns_count * sizeof(addr));
+- for (j = 0, addr_ptr = (struct in6_addr *)opt1->hdr->data; j < conf_dns_count; j++, addr_ptr++)
+- memcpy(addr_ptr, conf_dns + j, sizeof(addr));
++ if (ses->ipv6_dns && !list_empty(&ses->ipv6_dns->addr_list)) {
++ list_for_each_entry(dns, &ses->ipv6_dns->addr_list, entry) {
++ j++;
++ }
++ if (j >= 3) {
++ j = 3;
++ }
++ opt1 = dhcpv6_option_alloc(reply, D6_OPTION_DNS_SERVERS, j * sizeof(addr));
++ addr_ptr = (struct in6_addr *)opt1->hdr->data;
++ list_for_each_entry(dns, &ses->ipv6_dns->addr_list, entry) {
++ if (k < j) {
++ memcpy(addr_ptr, &dns->addr, sizeof(addr));
++ k++;
++ addr_ptr++;
++ } else {
++ break;
++ }
++ }
++
++ } else {
++ if (conf_dns_count) {
++ opt1 = dhcpv6_option_alloc(reply, D6_OPTION_DNS_SERVERS, conf_dns_count * sizeof(addr));
++ for (j = 0, addr_ptr = (struct in6_addr *)opt1->hdr->data; j < conf_dns_count; j++, addr_ptr++)
++ memcpy(addr_ptr, conf_dns + j, sizeof(addr));
++ }
+ }
+ } else if (ntohs(*ptr) == D6_OPTION_DOMAIN_LIST) {
+ if (conf_dnssl_size) {
+@@ -434,7 +456,10 @@ static void dhcpv6_send_reply(struct dhcpv6_packet *req, struct dhcpv6_pd *pd, i
+
+ // Option Request
+ } else if (ntohs(opt->hdr->code) == D6_OPTION_ORO) {
+- insert_oro(reply, opt);
++ if (ses->ipv6_dns &&!list_empty(&ses->ipv6_dns->addr_list)) {
++ log_ppp_info2("User specific IPv6 DNS entries\n");
++ }
++ insert_oro(reply, opt, ses);
+
+ } else if (ntohs(opt->hdr->code) == D6_OPTION_RAPID_COMMIT) {
+ if (req->hdr->type == D6_SOLICIT)
+@@ -594,7 +619,7 @@ static void dhcpv6_send_reply2(struct dhcpv6_packet *req, struct dhcpv6_pd *pd,
+ }
+ // Option Request
+ } else if (ntohs(opt->hdr->code) == D6_OPTION_ORO)
+- insert_oro(reply, opt);
++ insert_oro(reply, opt, ses);
+ }
+
+ opt1 = dhcpv6_option_alloc(reply, D6_OPTION_PREFERENCE, 1);
+diff --git a/accel-pppd/ipv6/nd.c b/accel-pppd/ipv6/nd.c
+index 297e4d63..b3054274 100644
+--- a/accel-pppd/ipv6/nd.c
++++ b/accel-pppd/ipv6/nd.c
+@@ -174,7 +174,32 @@ static void ipv6_nd_send_ra(struct ipv6_nd_handler_t *h, struct sockaddr_in6 *ds
+ rinfo++;
+ }*/
+
+- if (conf_dns_count) {
++ if (ses->ipv6_dns && !list_empty(&ses->ipv6_dns->addr_list)) {
++ int i = 0, j = 0;
++ struct ipv6db_addr_t *dns;
++
++ list_for_each_entry(dns, &ses->ipv6_dns->addr_list, entry) {
++ i++;
++ }
++ if (i >= 3) {
++ i = 3;
++ }
++ rdnssinfo = (struct nd_opt_rdnss_info_local *)pinfo;
++ memset(rdnssinfo, 0, sizeof(*rdnssinfo));
++ rdnssinfo->nd_opt_rdnssi_type = ND_OPT_RDNSS_INFORMATION;
++ rdnssinfo->nd_opt_rdnssi_len = 1 + 2 * i;
++ rdnssinfo->nd_opt_rdnssi_lifetime = htonl(conf_rdnss_lifetime);
++ rdnss_addr = (struct in6_addr *)rdnssinfo->nd_opt_rdnssi;
++ list_for_each_entry(dns, &ses->ipv6_dns->addr_list, entry) {
++ if (j < i) {
++ memcpy(rdnss_addr, &dns->addr, sizeof(*rdnss_addr));
++ j++;
++ rdnss_addr++;
++ } else {
++ break;
++ }
++ }
++ } else if (conf_dns_count) {
+ rdnssinfo = (struct nd_opt_rdnss_info_local *)pinfo;
+ memset(rdnssinfo, 0, sizeof(*rdnssinfo));
+ rdnssinfo->nd_opt_rdnssi_type = ND_OPT_RDNSS_INFORMATION;
+diff --git a/accel-pppd/radius/radius.c b/accel-pppd/radius/radius.c
+index 786faa56..1379b0b2 100644
+--- a/accel-pppd/radius/radius.c
++++ b/accel-pppd/radius/radius.c
+@@ -403,6 +403,12 @@ int rad_proc_attrs(struct rad_req_t *req)
+ case Framed_IPv6_Route:
+ rad_add_framed_ipv6_route(attr->val.string, rpd);
+ break;
++ case DNS_Server_IPv6_Address:
++ a = _malloc(sizeof(*a));
++ memset(a, 0, sizeof(*a));
++ a->addr = attr->val.ipv6addr;
++ list_add_tail(&a->entry, &rpd->ipv6_dns.addr_list);
++ break;
+ }
+ }
+
+@@ -420,6 +426,9 @@ int rad_proc_attrs(struct rad_req_t *req)
+ if (!rpd->ses->ipv6_dp && !list_empty(&rpd->ipv6_dp.prefix_list))
+ rpd->ses->ipv6_dp = &rpd->ipv6_dp;
+
++ if (!rpd->ses->ipv6_dns && !list_empty(&rpd->ipv6_dns.addr_list))
++ rpd->ses->ipv6_dns = &rpd->ipv6_dns;
++
+ return res;
+ }
+
+@@ -584,10 +593,12 @@ static void ses_starting(struct ap_session *ses)
+ INIT_LIST_HEAD(&rpd->plugin_list);
+ INIT_LIST_HEAD(&rpd->ipv6_addr.addr_list);
+ INIT_LIST_HEAD(&rpd->ipv6_dp.prefix_list);
++ INIT_LIST_HEAD(&rpd->ipv6_dns.addr_list);
+
+ rpd->ipv4_addr.owner = &ipdb;
+ rpd->ipv6_addr.owner = &ipdb;
+ rpd->ipv6_dp.owner = &ipdb;
++ rpd->ipv6_dns.owner = &ipdb;
+
+ list_add_tail(&rpd->pd.entry, &ses->pd_list);
+
+@@ -764,6 +775,12 @@ static void ses_finished(struct ap_session *ses)
+ _free(a);
+ }
+
++ while (!list_empty(&rpd->ipv6_dns.addr_list)) {
++ a = list_entry(rpd->ipv6_dns.addr_list.next, typeof(*a), entry);
++ list_del(&a->entry);
++ _free(a);
++ }
++
+ fr6 = rpd->fr6;
+ while (fr6) {
+ struct framed_ip6_route *next = fr6->next;
+diff --git a/accel-pppd/radius/radius_p.h b/accel-pppd/radius/radius_p.h
+index 988f154f..eaa5acb0 100644
+--- a/accel-pppd/radius/radius_p.h
++++ b/accel-pppd/radius/radius_p.h
+@@ -65,6 +65,7 @@ struct radius_pd_t {
+ struct ipv4db_item_t ipv4_addr;
+ struct ipv6db_item_t ipv6_addr;
+ struct ipv6db_prefix_t ipv6_dp;
++ struct ipv6db_item_t ipv6_dns;
+ int acct_interim_interval;
+ int acct_interim_jitter;
+
diff --git a/scripts/package-build/node_exporter/package.toml b/scripts/package-build/node_exporter/package.toml
index b0070278..4540bc82 100644
--- a/scripts/package-build/node_exporter/package.toml
+++ b/scripts/package-build/node_exporter/package.toml
@@ -1,6 +1,6 @@
[[packages]]
name = "node_exporter"
-commit_id = "v1.8.2"
+commit_id = "v1.9.1"
scm_url = "https://github.com/prometheus/node_exporter"
build_cmd = """
diff --git a/scripts/package-build/radvd/package.toml b/scripts/package-build/radvd/package.toml
index e44afa18..83b9936b 100644
--- a/scripts/package-build/radvd/package.toml
+++ b/scripts/package-build/radvd/package.toml
@@ -1,6 +1,6 @@
[[packages]]
name = "radvd"
-commit_id = "f2de4764559"
+commit_id = "v2.20"
scm_url = "https://github.com/radvd-project/radvd"
#build_cmd = "cd ..; ./build.sh"