tc: Hotwire cbq/u32 support and include traffic policers
Change-Id: I98a02e52d83dfb953fa7a09a17b01f3852d96374
Signed-off-by: San Mehat <san@google.com>
diff --git a/tc/Android.mk b/tc/Android.mk
index da2b358..4a63875 100644
--- a/tc/Android.mk
+++ b/tc/Android.mk
@@ -3,7 +3,7 @@
include $(CLEAR_VARS)
LOCAL_SRC_FILES := tc.c tc_qdisc.c q_cbq.c tc_util.c tc_class.c tc_core.c m_action.c \
m_estimator.c tc_filter.c tc_monitor.c tc_stab.c tc_cbq.c \
- tc_estimator.c
+ tc_estimator.c f_u32.c m_police.c
LOCAL_MODULE := tc
diff --git a/tc/tc.c b/tc/tc.c
index eccd84d..68a6a75 100644
--- a/tc/tc.c
+++ b/tc/tc.c
@@ -44,6 +44,11 @@
static struct qdisc_util * qdisc_list;
static struct filter_util * filter_list;
+#ifdef ANDROID
+extern struct qdisc_util cbq_qdisc_util;
+extern struct filter_util u32_filter_util;
+#endif
+
static int print_noqopt(struct qdisc_util *qu, FILE *f,
struct rtattr *opt)
{
@@ -97,6 +102,14 @@
char buf[256];
struct qdisc_util *q;
+#ifdef ANDROID
+ if (!strcmp(str, "cbq"))
+ return &cbq_qdisc_util;
+ else {
+ fprintf(stderr, "Android does not support '%s'\n", str);
+ return NULL;
+ }
+#endif
for (q = qdisc_list; q; q = q->next)
if (strcmp(q->id, str) == 0)
return q;
@@ -142,6 +155,14 @@
void *dlh;
char buf[256];
struct filter_util *q;
+#ifdef ANDROID
+ if (!strcmp(str, "u32"))
+ return &u32_filter_util;
+ else {
+ fprintf(stderr, "Android does not support '%s'\n", str);
+ return NULL;
+ }
+#endif
for (q = filter_list; q; q = q->next)
if (strcmp(q->id, str) == 0)