iproute2: separate tc into tiny and full variants
This change was investigated previously [1] but not deemed necessary. With
the recent addition [2] of modern BPF loader support, however, tc gained
dependencies on libelf and libbpf, with a larger installation footprint.
Similar to ip-tiny/ip-full, split tc into tc-full and tc-tiny variants,
where the latter excludes the eBPF loader, uses a smaller executable, and
avoids libelf and libbpf package dependencies. Both variants provide the
'tc' virtual package, with tc-tiny as the default.
The previous tc package included a loadable module for iptables actions.
Separate this out into a common package, tc-mod-iptables, which both
variants depend on. Some package sizes on mips_24kc:
Before:
  148343  tc_5.11.0-1_mips_24kc.ipk
After:
  144833  tc-full_5.11.0-2_mips_24kc.ipk
  138430  tc-tiny_5.11.0-2_mips_24kc.ipk  (and no libelf or libbpf)
    4115  tc-mod-iptables_5.11.0-2_mips_24kc.ipk
Also fix up some Makefile indentation.
[1] https://github.com/openwrt/openwrt/pull/1627#issuecomment-447619962
[2] b048a305a3 ("iproute2: update to 5.11.0")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
(cherry picked from commit 72885e9608)
			
			
This commit is contained in:
		 Tony Ambardar
					Tony Ambardar
				
			
				
					committed by
					
						 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
			
				
	
			
			
			 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
						parent
						
							0d5e308664
						
					
				
				
					commit
					3e9d639e8f
				
			| @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk | |||||||
|  |  | ||||||
| PKG_NAME:=iproute2 | PKG_NAME:=iproute2 | ||||||
| PKG_VERSION:=5.11.0 | PKG_VERSION:=5.11.0 | ||||||
| PKG_RELEASE:=1 | PKG_RELEASE:=2 | ||||||
|  |  | ||||||
| PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz | PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz | ||||||
| PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2 | PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2 | ||||||
| @@ -33,8 +33,8 @@ endef | |||||||
|  |  | ||||||
| define Package/ip-tiny | define Package/ip-tiny | ||||||
| $(call Package/iproute2/Default) | $(call Package/iproute2/Default) | ||||||
|  TITLE:=Routing control utility (Minimal) |   TITLE:=Routing control utility (minimal) | ||||||
|  VARIANT:=tiny |   VARIANT:=iptiny | ||||||
|   DEFAULT_VARIANT:=1 |   DEFAULT_VARIANT:=1 | ||||||
|   PROVIDES:=ip |   PROVIDES:=ip | ||||||
|   ALTERNATIVES:=200:/sbin/ip:/usr/libexec/ip-tiny |   ALTERNATIVES:=200:/sbin/ip:/usr/libexec/ip-tiny | ||||||
| @@ -43,19 +43,36 @@ endef | |||||||
|  |  | ||||||
| define Package/ip-full | define Package/ip-full | ||||||
| $(call Package/iproute2/Default) | $(call Package/iproute2/Default) | ||||||
|  TITLE:=Routing control utility (Full) |   TITLE:=Routing control utility (full) | ||||||
|  VARIANT:=full |   VARIANT:=ipfull | ||||||
|   PROVIDES:=ip |   PROVIDES:=ip | ||||||
|   ALTERNATIVES:=300:/sbin/ip:/usr/libexec/ip-full |   ALTERNATIVES:=300:/sbin/ip:/usr/libexec/ip-full | ||||||
|   DEPENDS:=+libnl-tiny +libbpf +(PACKAGE_devlink||PACKAGE_rdma):libmnl |   DEPENDS:=+libnl-tiny +libbpf +(PACKAGE_devlink||PACKAGE_rdma):libmnl | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Package/tc | define Package/tc-tiny | ||||||
| $(call Package/iproute2/Default) | $(call Package/iproute2/Default) | ||||||
|   TITLE:=Traffic control utility |   TITLE:=Traffic control utility (minimal) | ||||||
|   VARIANT:=tc |   VARIANT:=tctiny | ||||||
|  |   DEFAULT_VARIANT:=1 | ||||||
|   PROVIDES:=tc |   PROVIDES:=tc | ||||||
|   DEPENDS:=+kmod-sched-core +libxtables +libbpf +(PACKAGE_devlink||PACKAGE_rdma):libmnl |   ALTERNATIVES:=200:/sbin/tc:/usr/libexec/tc-tiny | ||||||
|  |   DEPENDS:=+kmod-sched-core +libxtables +tc-mod-iptables +(PACKAGE_devlink||PACKAGE_rdma):libmnl | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/tc-full | ||||||
|  | $(call Package/iproute2/Default) | ||||||
|  |   TITLE:=Traffic control utility (full) | ||||||
|  |   VARIANT:=tcfull | ||||||
|  |   PROVIDES:=tc | ||||||
|  |   ALTERNATIVES:=300:/sbin/tc:/usr/libexec/tc-full | ||||||
|  |   DEPENDS:=+kmod-sched-core +libxtables +tc-mod-iptables +libbpf +(PACKAGE_devlink||PACKAGE_rdma):libmnl | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/tc-mod-iptables | ||||||
|  | $(call Package/iproute2/Default) | ||||||
|  |   TITLE:=Traffic control module - iptables action | ||||||
|  |   DEPENDS:=+libxtables | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Package/genl | define Package/genl | ||||||
| @@ -94,18 +111,22 @@ $(call Package/iproute2/Default) | |||||||
|   DEPENDS:=+libmnl |   DEPENDS:=+libmnl | ||||||
| endef | endef | ||||||
|  |  | ||||||
| ifeq ($(BUILD_VARIANT),tiny) | ifeq ($(BUILD_VARIANT),iptiny) | ||||||
|   IP_CONFIG_TINY:=y |   IP_CONFIG_TINY:=y | ||||||
|   LIBBPF_FORCE:=off |   LIBBPF_FORCE:=off | ||||||
| endif | endif | ||||||
|  |  | ||||||
| ifeq ($(BUILD_VARIANT),full) | ifeq ($(BUILD_VARIANT),ipfull) | ||||||
|   HAVE_ELF:=y |   HAVE_ELF:=y | ||||||
|   LIBBPF_FORCE:=on |   LIBBPF_FORCE:=on | ||||||
|   HAVE_CAP:=n |  | ||||||
| endif | endif | ||||||
|  |  | ||||||
| ifeq ($(BUILD_VARIANT),tc) | ifeq ($(BUILD_VARIANT),tctiny) | ||||||
|  |   LIBBPF_FORCE:=off | ||||||
|  |   SHARED_LIBS:=y | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | ifeq ($(BUILD_VARIANT),tcfull) | ||||||
|   HAVE_ELF:=y |   HAVE_ELF:=y | ||||||
|   LIBBPF_FORCE:=on |   LIBBPF_FORCE:=on | ||||||
|   SHARED_LIBS:=y |   SHARED_LIBS:=y | ||||||
| @@ -163,13 +184,19 @@ define Package/ip-full/install | |||||||
| 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/ip/ip $(1)/usr/libexec/ip-full | 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/ip/ip $(1)/usr/libexec/ip-full | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Package/tc/install | define Package/tc-tiny/install | ||||||
| 	$(INSTALL_DIR) $(1)/usr/sbin | 	$(INSTALL_DIR) $(1)/usr/libexec | ||||||
| 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/tc/tc $(1)/usr/sbin/ | 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/tc/tc $(1)/usr/libexec/tc-tiny | ||||||
| ifeq ($(SHARED_LIBS),y) | endef | ||||||
|  |  | ||||||
|  | define Package/tc-full/install | ||||||
|  | 	$(INSTALL_DIR) $(1)/usr/libexec | ||||||
|  | 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/tc/tc $(1)/usr/libexec/tc-full | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | define Package/tc-mod-iptables/install | ||||||
| 	$(INSTALL_DIR) $(1)/usr/lib/tc | 	$(INSTALL_DIR) $(1)/usr/lib/tc | ||||||
| 	$(CP) $(PKG_BUILD_DIR)/tc/*.so $(1)/usr/lib/tc | 	$(CP) $(PKG_BUILD_DIR)/tc/m_xt.so $(1)/usr/lib/tc | ||||||
| endif |  | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define Package/genl/install | define Package/genl/install | ||||||
| @@ -204,7 +231,9 @@ endef | |||||||
|  |  | ||||||
| $(eval $(call BuildPackage,ip-tiny)) | $(eval $(call BuildPackage,ip-tiny)) | ||||||
| $(eval $(call BuildPackage,ip-full)) | $(eval $(call BuildPackage,ip-full)) | ||||||
| $(eval $(call BuildPackage,tc)) | $(eval $(call BuildPackage,tc-tiny)) | ||||||
|  | $(eval $(call BuildPackage,tc-full)) | ||||||
|  | $(eval $(call BuildPackage,tc-mod-iptables)) | ||||||
| $(eval $(call BuildPackage,genl)) | $(eval $(call BuildPackage,genl)) | ||||||
| $(eval $(call BuildPackage,ip-bridge)) | $(eval $(call BuildPackage,ip-bridge)) | ||||||
| $(eval $(call BuildPackage,ss)) | $(eval $(call BuildPackage,ss)) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user