Files
documentation/API.md
T
Denys Fedoryshchenko 782eb80d85 Add docs for shaper
Signed-off-by: Denys Fedoryshchenko <denys.f@collabora.com>
2024-06-11 08:37:28 +03:00

2.8 KiB

GlobalOS API

Setting up

To enable API, you need to add following file /etc/api.conf

# set API key
apikey=ZZZZZ
# disable API key check
# disableapikey=1

allowip=1.2.3.4,2.4.5.6

API key should be present in header X-Auth-Token: ZZZZZ

Hooks

API hook: /hooks/counters

Available counters for a given interface GET parameters: iface - interface name source - source of data (tc, ip, ethtool) type - type of data (for source tc: qdisc, class, filter; for source ip: link, addr; for source ethtool: statistics, module)

Example: /hook/counters?iface=ppp100&source=ip&type=link

API hook: /ppp/list

Optional GET params: &tag=XXXX - filter by radattr tag &tag=XXXX&value=YYYY - filter by radattr tag and value (full match) X-Auth-Token: XXXX Login-LAT-Service gaming curl -H "X-Auth-Token: XXXX" http://localhost:8080/ppp/list?tag=Login-LAT-Service&value=gaming

Work in progress...

	http.HandleFunc("/hooks/counters", counters_hook)
	http.HandleFunc("/hooks/radattr", radattr_hook)
	http.HandleFunc("/hooks/ping", ping_hook)
	http.HandleFunc("/hooks/proc_data", proc_hook)
	http.HandleFunc("/hooks/sessions", sessions_hook)
	http.HandleFunc("/hooks/tcpdump", tcpdump_hook)
	http.HandleFunc("/hooks/diag_counters", diag_counters_hook)
	// /shaper/download - retrieve /etc/config.json
	// /shaper/upload - upload /etc/config.json
	http.HandleFunc("/shaper/download", shaper_download_hook)
	http.HandleFunc("/shaper/upload", shaper_upload_hook)
	http.HandleFunc("/accel/vlans", accel_vlans_hook)
	// returns interface, ip, username
	http.HandleFunc("/ppp/list", ppp_data_hook)
	http.HandleFunc("/", unknown)

Availaible hooks:

TC:

IP:

ETHTOOL:

RADIUS ATTRIBUTES

TRAFFIC DUMP

PING

PROC FS DATA

SESSIONS

Show all sessions

Show selected user session

Show defined fields (ifname,username,inbound-if,service-name)