lldpd: extended interface(s) parsing to handle patterns
authorPaul Donald <newtwen+github@gmail.com>
Fri, 12 Apr 2024 19:27:56 +0000 (21:27 +0200)
committerChristian Marangi <ansuelsmth@gmail.com>
Sun, 21 Apr 2024 15:57:03 +0000 (17:57 +0200)
commit4a81d868db85a7954a73bc6dc4a957bbd6abc813
treeaaaf2a3232d2bedc8d09b740eb2cfff027e49823
parentea609fe486a99af6540dcc7a18f0827481d0c4b0
lldpd: extended interface(s) parsing to handle patterns

For interface type parameters, the man page documents patterns:
```
*,!eth*,!!eth1

uses all interfaces, except interfaces starting with "eth",
but including "eth1".
```

* Renamed `_ifname` to `_l2dev`.
* get the l2dev via network_get_physdev (and not l3dev)
* Glob pattern `*` is also valid - use noglob for this

The net result is that now interface 'names' including globs '*' and '!'
inversions are included in the generated lldpd configs.

Temporarily `set -o noglob` and then `set +o noglob` to disable & enable
globbing respectively, because when we pass `*` as an interface choice,
other file and pathnames get sucked in from where the init script runs,
and the `*` never makes it to lldpd.

Tested extensively on: 22.03.6, 23.05.3

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
[ squash with commit bumping release version ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
package/network/services/lldpd/Makefile
package/network/services/lldpd/files/lldpd.init