0

トラフィック制御オプションを使用して、Android フォンでトラフィックをあるインターフェイスから別のインターフェイスにリダイレクトしようとしていました。

コマンドを試すと、

tc qdisc add dev wlan0 root handle 1: prio

次のエラーが表示されます

Android does not support qdisc 'prio'
  • prioAndroid で qdisc サポートを 取得する方法はありますか?
  • prioAndroid がqdisc をサポートしていない場合、他にどのような選択肢がありますか?
  • また、全体的に Android はクラスフル qdiss をサポートしていますか?
4

2 に答える 2

1

これを今調べている人にとっては、Android 開発者は実際に特定のモジュールを tc にハードコーディングし、prio を含むそれらの多く/ほとんどを除外しました。ルートから AOSP の/external/iproute2/tc/tc.c (kitkat にリンク)にある tc.c ファイルを調べる と、特定の qdisc タイプがチェックにハードコードされていることがわかります。

#ifdef ANDROID
    if (!strcmp(str, "cbq"))
        return &cbq_qdisc_util;
    else if (!strcmp(str, "htb"))
        return &htb_qdisc_util;
    else if (!strcmp(str, "ingress"))
        return &ingress_qdisc_util;
    else {
        fprintf(stderr, "Android does not support qdisc '%s'\n", str);
        return NULL;
    }
#endif

prio などの残りの機能を復活させるために、これらのファイルに実際にパッチを適用した cynaogenmod のコミットを見つけました。そのコード コミットはこちらにあります(diff をダウンロードしてパッチを適用してください)。

それが役立つことを願っています!

于 2016-03-22T06:28:13.807 に答える
-1

CONFIG_NET_SCH_PRIOprioLinux カーネルで qdisc のサポートを有効にします。ほとんどの場合、これはカーネルがビルドされたときに有効になっていませんでした。これは、次の Linux カーネル構成ツリーにリストされています。

-> Networking support
  -> Networking options
    -> QoS and/or fair queueing 
      -> Multi Band Priority Queueing (PRIO)
于 2013-09-12T06:56:32.407 に答える