diff --git a/package/gluon-simple-tc/Makefile b/package/gluon-simple-tc/Makefile
index c496682d94bd3d2f83712e0dcb8988340cf15ec1..9c194f903fa076344e69a78a2c5c48d59ee62a66 100644
--- a/package/gluon-simple-tc/Makefile
+++ b/package/gluon-simple-tc/Makefile
@@ -27,10 +27,13 @@ define Build/Configure
 endef
 
 define Build/Compile
+	$(GLUON_CONFIGURE) initial.pl > $(PKG_BUILD_DIR)/initial.sh
 endef
 
 define Package/gluon-simple-tc/install
 	$(CP) ./files/* $(1)/
+	$(INSTALL_DIR) $(1)/lib/gluon/upgrade/simple-tc/initial
+	$(INSTALL_BIN) $(PKG_BUILD_DIR)/initial.sh $(1)/lib/gluon/upgrade/simple-tc/initial/010-site-defaults
 endef
 
 $(eval $(call BuildPackage,gluon-simple-tc))
diff --git a/package/gluon-simple-tc/initial.pl b/package/gluon-simple-tc/initial.pl
new file mode 100644
index 0000000000000000000000000000000000000000..820029f757a2441997d2dfc1f01dea77ba66f766
--- /dev/null
+++ b/package/gluon-simple-tc/initial.pl
@@ -0,0 +1,21 @@
+my $cfg = $CONFIG->{simple_tc};
+
+print <<'END';
+#/bin/sh
+
+uci -q batch <<EOF
+END
+
+while (($name, $interface) = each %{$cfg}) {
+  print "set gluon-simple-tc.$name=interface\n";
+
+  for (qw(ifname enabled limit_egress limit_ingress)) {
+    print "set gluon-simple-tc.$name.$_=$interface->{$_}\n";
+  }
+}
+
+print <<END;
+
+commit gluon-simple-tc
+EOF
+END