hc
2023-11-22 f743a7adbd6e230d66a6206fa115b59fec2d88eb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/bin/bash
 
EBTABLES="/usr/sbin/ebtables-legacy"
 
[ -x "$EBTABLES" ] || exit 1
 
echo "# Generated by ebtables-save v1.0 on $(date)"
 
cnt=""
[ "x$EBTABLES_SAVE_COUNTER" = "xyes" ] && cnt="--Lc"
 
for table_name in $(grep -E '^ebtable_' /proc/modules | cut -f1 -d' ' | sed s/ebtable_//); do
    table=$($EBTABLES -t $table_name -L $cnt)
    [ $? -eq 0 ] || { echo "$table"; exit -1; }
 
    chain=""
    rules=""
    while read line; do
   [ -z "$line" ] && continue
 
   case "$line" in 
       Bridge\ table:\ *)
       echo "*${line:14}"
       ;;
       Bridge\ chain:\ *)
       chain="${line:14}"
       chain="${chain%%,*}"
       policy="${line##*policy: }"
       echo ":$chain $policy"
       ;;
       *)
       if [ "$cnt" = "--Lc" ]; then
           line=${line/, pcnt \=/ -c}
           line=${line/-- bcnt \=/}
       fi
       rules="$rules-A $chain $line\n"
       ;;
   esac
    done <<EOF
$table
EOF
    echo -e $rules
done