From eba8e21d72b2a664c1b5f750bd877cd5ff40bec5 Mon Sep 17 00:00:00 2001 From: Isaac Hermida Date: Tue, 29 Aug 2023 12:58:09 +0200 Subject: [PATCH] p2p scripts: generalize support getting name from configuration The P2P interface may have a different name, for instance, in the ccimx93 it is wfd (wifi direct). Generalize Digi P2P scripts to use the name from the platform config file. https://onedigi.atlassian.net/browse/DEL-8468 Signed-off-by: Isaac Hermida --- .../networkmanager/networkmanager/p2pbridge | 16 +++++++++------- .../networkmanager/networkmanager_%.bbappend | 1 + .../init-ifupdown/init-ifupdown-1.0/p2plink | 10 +++++----- .../init-ifupdown/init-ifupdown_1.0.bbappend | 1 + 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/meta-digi-dey/recipes-connectivity/networkmanager/networkmanager/p2pbridge b/meta-digi-dey/recipes-connectivity/networkmanager/networkmanager/p2pbridge index 5e3599868..a095b8bfa 100644 --- a/meta-digi-dey/recipes-connectivity/networkmanager/networkmanager/p2pbridge +++ b/meta-digi-dey/recipes-connectivity/networkmanager/networkmanager/p2pbridge @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright 2019, Digi International Inc. +# Copyright 2019-2023, Digi International Inc. # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this @@ -18,9 +18,11 @@ # # This script is specific to create a P2P (BATMAN) bridge, so -# require the CONNECTION_ID to be "p2p-bridge" +# requires the CONNECTION_ID to be "p2p-bridge" [ "${CONNECTION_ID}" = "p2p-bridge" ] || exit 0 +P2P_IFACE="##WLAN_P2P_INTERFACE##" + log() { if type "systemd-cat" >/dev/null 2>/dev/null; then systemd-cat -p "${1}" -t p2pbridge printf "%s" "${2}" @@ -32,13 +34,13 @@ log() { case "${NM_DISPATCHER_ACTION}" in pre-up) # Reset virtual interfaces - { batctl if destroy; ifdown -f p2p0; } >/dev/null 2>&1 + { batctl if destroy; ifdown -f "${P2P_IFACE}"; } >/dev/null 2>&1 # Bring P2P link up log info "bring P2P link UP" - ifup p2p0 || { log err "p2p link NOT created"; exit 1; } - for P2P_IFNAME in $(basename $(echo /sys/class/net/p2p-p2p0-*)); do - echo "${P2P_IFNAME}" | grep -qs 'p2p-p2p0-\*' && continue + ifup "${P2P_IFACE}" || { log err "p2p link NOT created"; exit 1; } + for P2P_IFNAME in $(basename $(echo /sys/class/net/p2p-"${P2P_IFACE}"-*)); do + echo "${P2P_IFNAME}" | grep -qs "p2p-${P2P_IFACE}-\*" && continue ifconfig "${P2P_IFNAME}" 0.0.0.0 p2p_iface_found="1" break @@ -61,7 +63,7 @@ down) batctl if destroy log info "bring P2P link DOWN" - ifdown -f p2p0 || { log err "unable to bring P2P link DOWN"; exit 1; } + ifdown -f "${P2P_IFACE}" || { log err "unable to bring P2P link DOWN"; exit 1; } ;; *) # Do nothing diff --git a/meta-digi-dey/recipes-connectivity/networkmanager/networkmanager_%.bbappend b/meta-digi-dey/recipes-connectivity/networkmanager/networkmanager_%.bbappend index 8614945d7..e13caeebb 100644 --- a/meta-digi-dey/recipes-connectivity/networkmanager/networkmanager_%.bbappend +++ b/meta-digi-dey/recipes-connectivity/networkmanager/networkmanager_%.bbappend @@ -104,6 +104,7 @@ do_install:append() { install -m 0755 ${WORKDIR}/01dispatcher ${D}${sysconfdir}/NetworkManager/dispatcher.d/ install -m 0755 ${WORKDIR}/ifdownup ${D}${sysconfdir}/NetworkManager/dispatcher.d/device-connectivity-change.d/ install -m 0755 ${WORKDIR}/p2pbridge ${D}${sysconfdir}/NetworkManager/dispatcher.d/pre-up.d/ + sed -i -e 's,##WLAN_P2P_INTERFACE##,${WLAN_P2P_INTERFACE},g' ${D}${sysconfdir}/NetworkManager/dispatcher.d/pre-up.d/p2pbridge ln -s ../pre-up.d/p2pbridge ${D}${sysconfdir}/NetworkManager/dispatcher.d/down.d/p2pbridge # Disable terminal colors by default diff --git a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/p2plink b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/p2plink index f0f617962..aded43cc4 100644 --- a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/p2plink +++ b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/p2plink @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright 2019, Digi International Inc. +# Copyright 2019-2023, Digi International Inc. # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this @@ -27,8 +27,8 @@ # p2p-network-id # -# Execute only for the p2p0 interface -[ "${IFACE}" = "p2p0" ] || exit 0 +# Execute only for the P2P interface +[ "${IFACE}" = "##WLAN_P2P_INTERFACE##" ] || exit 0 log() { if type "systemd-cat" >/dev/null 2>/dev/null; then @@ -68,8 +68,8 @@ if [ "${MODE}" = "start" ]; then if [ -n "${p2p_link_found}" ]; then # Configure the newly created interface if [ -n "${IF_P2P_LOCAL_ADDRESS}" ]; then - for P2P_IFNAME in $(basename $(echo /sys/class/net/p2p-p2p0-*)); do - echo "${P2P_IFNAME}" | grep -qs 'p2p-p2p0-\*' && continue + for P2P_IFNAME in $(basename $(echo /sys/class/net/p2p-"${IFACE}"-*)); do + echo "${P2P_IFNAME}" | grep -qs "p2p-${IFACE}-\*" && continue ifconfig "${P2P_IFNAME}" "${IF_P2P_LOCAL_ADDRESS}" ${IF_P2P_LOCAL_NETMASK:+netmask ${IF_P2P_LOCAL_NETMASK}} up break done diff --git a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown_1.0.bbappend b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown_1.0.bbappend index c5d6ca29d..cb08becd3 100644 --- a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown_1.0.bbappend +++ b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown_1.0.bbappend @@ -47,6 +47,7 @@ do_install:append() { cat ${WORKDIR}/interfaces.p2p >> ${D}${sysconfdir}/network/interfaces [ -n "${WLAN_P2P_AUTO}" ] && sed -i -e 's/^#auto ##WLAN_P2P_INTERFACE##/auto ##WLAN_P2P_INTERFACE##/g' ${D}${sysconfdir}/network/interfaces sed -i -e 's,##WLAN_P2P_INTERFACE##,${WLAN_P2P_INTERFACE},g' ${D}${sysconfdir}/network/interfaces + sed -i -e 's,##WLAN_P2P_INTERFACE##,${WLAN_P2P_INTERFACE},g' ${D}${sysconfdir}/network/if-up.d/p2plink fi fi