qosify: add qosify-status script
This will show detailed status for all devices/interfaces Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
		| @@ -46,7 +46,10 @@ endef | |||||||
| define Package/qosify/install | define Package/qosify/install | ||||||
| 	$(INSTALL_DIR) $(1)/lib/bpf $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/config $(1)/etc/hotplug.d/net $(1)/etc/qosify | 	$(INSTALL_DIR) $(1)/lib/bpf $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/config $(1)/etc/hotplug.d/net $(1)/etc/qosify | ||||||
| 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/qosify-bpf.o $(1)/lib/bpf | 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/qosify-bpf.o $(1)/lib/bpf | ||||||
| 	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/qosify $(1)/usr/sbin/ | 	$(INSTALL_BIN) \ | ||||||
|  | 		$(PKG_INSTALL_DIR)/usr/bin/qosify \ | ||||||
|  | 		./files/qosify-status \ | ||||||
|  | 		$(1)/usr/sbin/ | ||||||
| 	$(INSTALL_BIN) ./files/qosify.init $(1)/etc/init.d/qosify | 	$(INSTALL_BIN) ./files/qosify.init $(1)/etc/init.d/qosify | ||||||
| 	$(INSTALL_DATA) ./files/qosify-defaults.conf $(1)/etc/qosify/00-defaults.conf | 	$(INSTALL_DATA) ./files/qosify-defaults.conf $(1)/etc/qosify/00-defaults.conf | ||||||
| 	$(INSTALL_DATA) ./files/qosify.conf $(1)/etc/config/qosify | 	$(INSTALL_DATA) ./files/qosify.conf $(1)/etc/config/qosify | ||||||
|   | |||||||
							
								
								
									
										70
									
								
								package/network/config/qosify/files/qosify-status
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								package/network/config/qosify/files/qosify-status
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,70 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | . /usr/share/libubox/jshn.sh | ||||||
|  |  | ||||||
|  | dev_status() { | ||||||
|  | 	tc -s qdisc sh dev "$1" root | ||||||
|  | 	echo | ||||||
|  | } | ||||||
|  |  | ||||||
|  | common_status() { | ||||||
|  | 	json_get_vars ifname ingress egress | ||||||
|  |  | ||||||
|  | 	[ -n "$ifname" ] || return | ||||||
|  |  | ||||||
|  | 	[ "$egress" -gt 0 ] && { | ||||||
|  | 		echo "egress status:" | ||||||
|  | 		dev_status "$ifname" | ||||||
|  | 	} | ||||||
|  | 	[ "$ingress" -gt 0 ] && { | ||||||
|  | 		echo "ingress status:" | ||||||
|  | 		dev_status "$(printf %.16s "ifb-$ifname")" | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | is_active() { | ||||||
|  | 	json_get_vars active | ||||||
|  |  | ||||||
|  | 	[ "${active:-0}" -gt 0 ] | ||||||
|  | } | ||||||
|  |  | ||||||
|  | device_status() { | ||||||
|  | 	local name="$2" | ||||||
|  |  | ||||||
|  | 	json_select "$name" | ||||||
|  |  | ||||||
|  | 	if is_active; then | ||||||
|  | 		status="active" | ||||||
|  | 	else | ||||||
|  | 		status="not found" | ||||||
|  | 	fi | ||||||
|  |  | ||||||
|  | 	echo "===== device $name: $status =====" | ||||||
|  |  | ||||||
|  | 	is_active && common_status | ||||||
|  |  | ||||||
|  | 	json_select .. | ||||||
|  | } | ||||||
|  |  | ||||||
|  | interface_status() { | ||||||
|  | 	local name="$2" | ||||||
|  |  | ||||||
|  | 	json_select "$name" | ||||||
|  |  | ||||||
|  | 	if is_active; then | ||||||
|  | 		status="active" | ||||||
|  | 	elif ubus -S -t 0 wait_for "network.interface.$name"; then | ||||||
|  | 		status="down" | ||||||
|  | 	else | ||||||
|  | 		status="not found" | ||||||
|  | 	fi | ||||||
|  |  | ||||||
|  | 	echo "===== interface $name: $status =====" | ||||||
|  |  | ||||||
|  | 	is_active && common_status | ||||||
|  |  | ||||||
|  | 	json_select .. | ||||||
|  | } | ||||||
|  |  | ||||||
|  | json_load "$(ubus call qosify status)" | ||||||
|  | json_for_each_item device_status devices | ||||||
|  | json_for_each_item interface_status interfaces | ||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau