Skip to content

Commit

Permalink
Merge pull request #639 from kernelkit/ipv4ll-request-address
Browse files Browse the repository at this point in the history
IPv4 autoconf request-address support

Signed-off-by: Joachim Wiberg <[email protected]>
  • Loading branch information
troglobit authored Sep 26, 2024
2 parents c39a63e + d9fa4d9 commit 5bd8e99
Show file tree
Hide file tree
Showing 53 changed files with 2,820 additions and 1,480 deletions.
120 changes: 47 additions & 73 deletions board/common/rootfs/etc/avahi/avahi-autoipd.action
Original file line number Diff line number Diff line change
@@ -1,24 +1,4 @@
#!/bin/sh

# This file is part of avahi.
#
# avahi is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# avahi is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
# License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with avahi; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA.

set -e

# Command line arguments:
# $1 event that happened:
# BIND: Successfully claimed address
Expand All @@ -29,60 +9,54 @@ set -e
# $3 IP adddress

PATH="$PATH:/usr/bin:/usr/sbin:/bin:/sbin"

# Use a different metric for each interface, so that we can set
# identical routes to multiple interfaces.

METRIC=$((1000 + `cat "/sys/class/net/$2/ifindex" 2>/dev/null || echo 0`))

if [ -x /bin/ip -o -x /sbin/ip ] ; then

# We have the Linux ip tool from the iproute package

case "$1" in
BIND)
ip addr flush dev "$2" label "$2:avahi"
ip addr add "$3"/16 brd 169.254.255.255 label "$2:avahi" scope link dev "$2" proto 6
ip route add default dev "$2" metric "$METRIC" scope link proto zeroconf ||:
;;

CONFLICT|UNBIND|STOP)
ip route del default dev "$2" metric "$METRIC" scope link ||:
ip addr del "$3"/16 brd 169.254.255.255 label "$2:avahi" scope link dev "$2"
;;

*)
echo "Unknown event $1" >&2
exit 1
;;
NAME="/etc/frr/static.d/$2-zeroconf.conf"
NEXT="${NAME}+"

log()
{
logger -I $$ -t zeroconf -p user.notice "$*"
}

# Reduce changes needed by comparing with previous route(s)
act()
{
case $1 in
add)
echo "! Generated by avahi-autoipd" > "$NEXT"
echo "ip route 0.0.0.0/0 $2 254" >> "$NEXT"
cmp -s "$NAME" "$NEXT" && return
mv "$NEXT" "$NAME"
;;
del)
[ -f "$NAME" ] || return
rm "$NAME"
;;
*)
return
;;
esac

elif [ -x /bin/ifconfig -o -x /sbin/ifconfig ] ; then

# We have the old ifconfig tool

case "$1" in
BIND)
ifconfig "$2:avahi" inet "$3" netmask 255.255.0.0 broadcast 169.254.255.255 up
route add default dev "$2:avahi" metric "$METRIC" ||:
;;

CONFLICT|STOP|UNBIND)
route del default dev "$2:avahi" metric "$METRIC" ||:
ifconfig "$2:avahi" down
;;

*)
echo "Unknown event $1" >&2
exit 1
;;
esac

else

echo "No network configuration tool found." >&2
exit 1

fi
initctl -nbq restart staticd
}

case "$1" in
BIND)
ip addr flush dev "$2" proto random
ip addr add "$3"/16 brd 169.254.255.255 scope link dev "$2" proto random
act add "$2"
log "set ipv4ll $3 on iface $2"
;;

CONFLICT|UNBIND|STOP)
act del "$2"
ip addr flush dev "$2" proto random
log "clr ipv4ll on iface $2"
;;

*)
log "Unknown event $1 on iface $2"
exit 1
;;
esac

exit 0
Empty file.
9 changes: 9 additions & 0 deletions board/common/rootfs/etc/frr/static.d/00default.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
! Default settings for staticd, used for both
! confd generated routes, udhcpc and zeroconf
frr defaults traditional
hostname Router
password zebra
enable password zebra
no log unique-id
log syslog informational
log facility local2
5 changes: 5 additions & 0 deletions board/common/rootfs/etc/mg
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
# Micro GNU Emacs default configuration file
auto-indent-mode
auto-fill-mode
make-backup-files 0
require-final-newline T
set-fill-column 72
3 changes: 3 additions & 0 deletions board/common/rootfs/etc/ssh/sshd_config
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
# Allow client to pass locale environment
AcceptEnv LANG LC_*

Include /etc/ssh/sshd_config.d/*.conf
1 change: 0 additions & 1 deletion board/common/rootfs/etc/ssh/sshd_config.d/cli.conf

This file was deleted.

1 change: 1 addition & 0 deletions board/common/rootfs/etc/ssh/sshd_config.d/sftp.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Subsystem sftp /usr/libexec/sftp-server
Loading

0 comments on commit 5bd8e99

Please sign in to comment.