Spiegazione dei tag di utilizzo dei dati

I tag rappresentano una delle metriche in base alle quali verranno tracciati i contatori di utilizzo dei dati. Per impostazione predefinita, e implicitamente, un tag si basa solo sull'UID. L'UID viene utilizzato come base per il controllo e non può essere ignorato. Quindi un tag rappresenterà sempre almeno un UID (uid_tag). Un tag può essere ampliato in modo esplicito con un "tag di contabilità" associato a un UID. Lo spazio utente può utilizzare TrafficStats.setThreadStatsTag() per impostare la parte acct_tag del tag che viene poi utilizzato con i socket: tutti i dati appartenenti a quel socket verranno conteggiati rispetto al tag. Il controllo si basa quindi sulla parte uid_tag ​​del tag e le statistiche vengono raccolte separatamente per la parte acct_tag.

Senza tagging esplicito, il modulo qtaguid assumerà il default_tag: {acct_tag=0, uid_tag=10003}

    a:  {acct_tag=1, uid_tag=10003}
    b:  {acct_tag=2, uid_tag=10003}
    c:  {acct_tag=3, uid_tag=10003}

a, b, c… rappresentano tag espliciti associati a socket specifici.

default_tag (acct_tag=0) è il tag di contabilità predefinito che contiene il traffico totale per quell'uid, incluso tutto il traffico senza tag, e viene in genere utilizzato per applicare regole di polizia/quota.

Questi tag possono essere utilizzati per profilare il traffico di rete di un'applicazione in categorie logiche separate (a livello di socket di rete). Tali tag possono essere rimossi, riapplicati o modificati durante il runtime.

Il modulo qtaguid è stato implementato sul kernel/ramo comune di Android-3.0