recherche

Quel processus est Linux Linkwatch ?

Mar 14, 2023 am 10:30 AM
linuxlinkwatch

Linux linkwatch est un processus de « changement d'état de lien » ; dans la pile de protocole réseau Linux, le module linkwatch est utilisé pour indiquer à la carte réseau si elle peut actuellement transmettre des données ; la fonction « netif_carrier_on/netif_carrier_off » est appelée dans le pilote pour notifier le changement d’état du réseau.

Quel processus est Linux Linkwatch ?

L'environnement d'exploitation de ce tutoriel : système linux5.9.8, ordinateur Dell G3.

Quel est le processus de Linux Linkwatch ?

Changement d'état du lien (linkwatch)

Dans la pile de protocole réseau Linux, le module linkwatch est utilisé pour notifier à la carte réseau si elle peut actuellement transmettre des données.

Le pilote appelle la fonction netif_carrier_on/netif_carrier_off pour notifier le changement d'état du réseau.

Fonction principale :

  • Activer/désactiver la fonction de contrôle de flux de la file d'attente TX

  • Initier le message netlink NETDEV_CHANGE vers l'espace utilisateur

void netif_carrier_on(struct net_device *dev)
{
         if (test_and_clear_bit(__LINK_STATE_NOCARRIER, &dev->state)) {
                   if (dev->reg_state == NETREG_UNINITIALIZED)
                            return;
                   linkwatch_fire_event(dev);
                   if (netif_running(dev))
                            __netdev_watchdog_up(dev);
         }
}
void netif_carrier_off(struct net_device *dev)
{
         if (!test_and_set_bit(__LINK_STATE_NOCARRIER, &dev->state)) {
                   if (dev->reg_state == NETREG_UNINITIALIZED)
                            return ;
                   linkwatch_fire_event(dev);
         }
}
linwatch模块,只需要知道状态改变了,不需要知道具体是on还是off
void linkwatch_fire_event(struct net_device *dev)
{
   /*判断是否为紧急事件, 内核规定两次事件的间隔至少为1个HZ*/
         bool urgent = linkwatch_urgent_event(dev);
         if (!test_and_set_bit(__LINK_STATE_LINKWATCH_PENDING, &dev->state)) {
                   linkwatch_add_event(dev);//把dev添加到lweventlist链表
         } else if (!urgent)
                   return;
   /*调用工作队列linkwatch_event */
         linkwatch_schedule_work(urgent);
}
 
static void __linkwatch_run_queue(int urgent_only)
{
         struct net_device *dev;
         LIST_HEAD(wrk);
         while (!list_empty(&wrk)) {
                   dev = list_first_entry(&wrk, struct net_device, link_watch_list);
                   list_del_init(&dev->link_watch_list);
      /*判断是否只执行紧急事件 */
                   if (urgent_only && !linkwatch_urgent_event(dev)) {
                            list_add_tail(&dev->link_watch_list, &lweventlist);
                            continue;
                   }       
                   spin_unlock_irq(&lweventlist_lock);
                   linkwatch_do_dev(dev);
                   spin_lock_irq(&lweventlist_lock);
         }
         if (!list_empty(&lweventlist)){
                   linkwatch_schedule_work(0);
         }
         spin_unlock_irq(&lweventlist_lock);
}
 
static void linkwatch_do_dev(struct net_device *dev)
{
         rfc2863_policy(dev);
         if (dev->flags & IFF_UP) {
                   if (netif_carrier_ok(dev))
                            dev_activate(dev);//启动tx队列流量控制功能
                   else
                            dev_deactivate(dev);//禁止tx队列流量控制功能
                   netdev_state_change(dev);//发起Netlink事件:NETDEV_CHANGE
         }
         dev_put(dev);
}

Recommandations associées : " Linux Tutoriel vidéo"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Comprendre le mode de maintenance de Linux: l'essentielComprendre le mode de maintenance de Linux: l'essentielApr 14, 2025 am 12:04 AM

Le mode de maintenance Linux est entré en ajoutant init = / bin / bash ou paramètres uniques au démarrage. 1. Entrez le mode de maintenance: modifiez le menu Grub et ajoutez des paramètres de démarrage. 2. Remontez le système de fichiers en mode de lecture et d'écriture: Mount-Oremount, RW /. 3. Réparer le système de fichiers: utilisez la commande fsck, telle que FSCK / DEV / SDA1. 4. Sauvegardez les données et opérez avec prudence pour éviter la perte de données.

Comment Debian améliore la vitesse de traitement des données HadoopComment Debian améliore la vitesse de traitement des données HadoopApr 13, 2025 am 11:54 AM

Cet article examine comment améliorer l'efficacité du traitement des données Hadoop sur les systèmes Debian. Les stratégies d'optimisation couvrent les mises à niveau matérielle, les ajustements des paramètres du système d'exploitation, les modifications de configuration de Hadoop et l'utilisation d'algorithmes et d'outils efficaces. 1. Le renforcement des ressources matérielles garantit que tous les nœuds ont des configurations matérielles cohérentes, en particulier en faisant attention aux performances du CPU, de la mémoire et de l'équipement réseau. Le choix des composants matériels de haute performance est essentiel pour améliorer la vitesse de traitement globale. 2. Réglage des paramètres JVM: Ajustez dans le fichier hadoop-env.sh

Comment apprendre Debian SyslogComment apprendre Debian SyslogApr 13, 2025 am 11:51 AM

Ce guide vous guidera pour apprendre à utiliser Syslog dans Debian Systems. Syslog est un service clé dans les systèmes Linux pour les messages du système de journalisation et du journal d'application. Il aide les administrateurs à surveiller et à analyser l'activité du système pour identifier et résoudre rapidement les problèmes. 1. Connaissance de base de Syslog Les fonctions principales de Syslog comprennent: la collecte et la gestion des messages journaux de manière centralisée; Prise en charge de plusieurs formats de sortie de journal et des emplacements cibles (tels que les fichiers ou les réseaux); Fournir des fonctions de visualisation et de filtrage des journaux en temps réel. 2. Installer et configurer syslog (en utilisant RSYSLOG) Le système Debian utilise RSYSLOG par défaut. Vous pouvez l'installer avec la commande suivante: SudoaptupDatesud

Comment choisir la version Hadoop dans DebianComment choisir la version Hadoop dans DebianApr 13, 2025 am 11:48 AM

Lors du choix d'une version Hadoop adaptée au système Debian, les facteurs clés suivants doivent être pris en compte: 1. Stabilité et support à long terme: pour les utilisateurs qui poursuivent la stabilité et la sécurité, il est recommandé de choisir une version stable Debian, comme Debian11 (Bullseye). Cette version a été entièrement testée et a un cycle de support allant jusqu'à cinq ans, ce qui peut assurer le fonctionnement stable du système. 2. Package Mise à jour: Si vous avez besoin d'utiliser les dernières fonctionnalités et fonctionnalités Hadoop, vous pouvez considérer la version instable de Debian (SID). Cependant, il convient de noter que les versions instables peuvent avoir des problèmes de compatibilité et des risques de stabilité. 3. Soutien et ressources communautaires: Debian a un énorme soutien communautaire, qui peut fournir une documentation riche et

TiGervnc Partager Fichier Méthode sur DebianTiGervnc Partager Fichier Méthode sur DebianApr 13, 2025 am 11:45 AM

Cet article décrit comment utiliser TiGervnc pour partager des fichiers sur Debian Systems. Vous devez d'abord installer le serveur Tigervnc, puis le configurer. 1. Installez le serveur Tigervnc et ouvrez le terminal. Mettez à jour la liste des packages logiciels: SudoaptupDate pour installer le serveur TiGervnc: SudoaptInstallTiGervnc-standalone-servertigervnc-Common 2. Configurez le serveur TiGervnc pour définir le serveur VNC: VNCPasswd Démarrer le serveur VNC: VNCServer: 1-localHostNo

Conseils de configuration du pare-feu Debian Mail ServerConseils de configuration du pare-feu Debian Mail ServerApr 13, 2025 am 11:42 AM

La configuration du pare-feu d'un serveur de courrier Debian est une étape importante pour assurer la sécurité du serveur. Voici plusieurs méthodes de configuration de pare-feu couramment utilisées, y compris l'utilisation d'iptables et de pare-feu. Utilisez les iptables pour configurer le pare-feu pour installer iptables (sinon déjà installé): Sudoapt-getUpDaSuDoapt-getinstalliptableView Règles actuelles iptables: Sudoiptable-L Configuration

Méthode d'installation du certificat de Debian Mail Server SSLMéthode d'installation du certificat de Debian Mail Server SSLApr 13, 2025 am 11:39 AM

Les étapes pour installer un certificat SSL sur le serveur de messagerie Debian sont les suivantes: 1. Installez d'abord la boîte à outils OpenSSL, assurez-vous que la boîte à outils OpenSSL est déjà installée sur votre système. Si ce n'est pas installé, vous pouvez utiliser la commande suivante pour installer: Sudoapt-getUpDaSuDoapt-getInstallOpenSSL2. Générer la clé privée et la demande de certificat Suivant, utilisez OpenSSL pour générer une clé privée RSA 2048 bits et une demande de certificat (RSE): OpenSS

Méthode de configuration de Debian Mail Server Virtual HostMéthode de configuration de Debian Mail Server Virtual HostApr 13, 2025 am 11:36 AM

La configuration d'un hôte virtuel pour les serveurs de messagerie sur un système Debian implique généralement l'installation et la configuration des logiciels de serveur de messagerie (tels que PostFix, EXIM, etc.) plutôt que Apache HttpServer, car Apache est principalement utilisé pour les fonctions de serveur Web. Voici les étapes de base pour configurer un hôte virtuel de serveur de messagerie: installer Postfix Mail Server Update System Pack

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP