Les balises d'utilisation des données expliquées

Les balises représentent l'une des métriques par rapport auxquelles les compteurs d'utilisation des données seront suivis. Par défaut, et implicitement, une balise est uniquement basée sur l'UID. L'UID est utilisé comme base pour le maintien de l'ordre et ne peut pas être ignoré. Ainsi, une balise représentera toujours au moins un UID (uid_tag). Une balise peut être explicitement augmentée d'une "balise comptable" qui est associée à un UID. L'espace utilisateur peut utiliser TrafficStats.setThreadStatsTag() pour définir la partie acct_tag de la balise qui est ensuite utilisée avec les sockets : toutes les données appartenant à cette socket seront comptées dans la balise. Le maintien de l'ordre est alors basé sur la partie uid_tag ​​de la balise, et les statistiques sont collectées séparément pour la partie acct_tag.

Sans balisage explicite, le module qtaguid assumera le 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… représentent des balises explicites associées à des sockets spécifiques.

default_tag (acct_tag=0) est la balise de comptabilité par défaut qui contient le trafic total pour cet uid, y compris tout le trafic non balisé, et est généralement utilisée pour appliquer les règles de maintien de l'ordre/de quota.

Ces balises peuvent être utilisées pour profiler le trafic réseau d'une application en catégories logiques distinctes (au niveau du socket réseau). Ces balises peuvent être supprimées, réappliquées ou modifiées pendant l'exécution.

Le module qtaguid a été implémenté sur la branche kernel/common d'android-3.0