1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #!/bin/sh
- print_help () {
- printf "babeld-cli [interfaces|neighbors|routes|xroutes|version]\n"
- }
- get_babeld_dump () {
- printf "dump\nquit\n" | nc ::1 33123
- }
- if [ ! "$1" ]
- then
- print_help
- elif [ "$1" = "interfaces" ]
- then
- dump=$(get_babeld_dump)
- printf "Interface\tState\tNext hop\n"
- printf '%s' "$dump" | grep "^add interface" | awk '{ split($0,a," "); print a[3], "\t", a[5], "\t", a[7] }'
- elif [ "$1" = "neighbors" ]
- then
- dump=$(get_babeld_dump)
- printf "Neighbor ID\tIP address\tInterface\tReach\tRX cost\tTX cost\tRTT\tRTT cost\tCost\n"
- printf '%s' "$dump" | grep "^add neighbour" | awk '{ split($0,a," "); print a[3], "\t", a[5], "\t", a[7], "\t", a[9], "\t", a[13], "\t", a[15], "\t", a[17], "\t", a[19], "\t", a[21] }'
- elif [ "$1" = "routes" ]
- then
- dump=$(get_babeld_dump)
- printf "Route ID\tPrefix\t\t\tInstalled\tID\t\t\tMetric\tRefmetric\tNext hop\tInterface\n"
- printf '%s' "$dump" | grep "^add route" | awk '{ split($0,a," "); print a[3], "\t", a[5], "\t", a[9], "\t", a[11], "\t", a[13], "\t", a[15], "\t", a[17], "\t", a[19] }'
- elif [ "$1" = "xroutes" ]
- then
- dump=$(get_babeld_dump)
- printf "Prefix\t\t\tMetric\n"
- printf '%s' "$dump" | grep "^add xroute" | awk '{ split($0,a," "); print a[5], "\t", a[9] }'
- elif [ "$1" = "version" ]
- then
- dump=$(get_babeld_dump)
- version=$(printf '%s' "$dump" | grep "^version" | awk '{ split($0,a," "); print a[2] }')
- host=$(printf '%s' "$dump" | grep "^host" | awk '{ split($0,a," "); print a[2] }')
- id=$(printf '%s' "$dump" | grep "^my-id" | awk '{ split($0,a," "); print a[2] }')
- printf 'Version: %s\n' "$version"
- printf 'Host: %s\n' "$host"
- printf 'Router ID: %s\n' "$id"
- else
- print_help
- fi
|