estática vecino en línea struct * __ neigh_lookup (struct neigh_table * TBL, const void * p, y struct net_device * dev, int creat) {struct vecino * n = neigh_lookup (TBL , p, y dev), si (n |
|
! Creat) de retorno n;
//añadir interés se añadirá a la tabla de vecinos n = neigh_create (TBL, p, y dev); return IS_ERR (n) NULL :? N;} int neigh_update (vecino struct * neigh , U8 const * lladdr, U8 nueva, banderas U32) {U8 de edad; int err; #ifdef CONFIG_ARPDint notificar = 0; #endifstruct net_device * dev; int update_isrouter = 0; write_lock_bh (&neigh- > cerradura); dev = neigh- > dev; edad = neigh- > nud_state; err = -EPERM; if ((banderas &NEIGH_UPDATE_F_ADMIN) &&
(antiguo &(NUD_NOARP |!
NUD_PERMANENT))) goto a cabo; //si se cambia a un estado activo si ((nueva &! NUD_VALID)) {//eliminar el neigh_del_timer temporizador (neigh); //si el estado anterior se NUD_CONNECTED //ajustar vecinos correspondiente a la entrada a cabo puntero de función si (antiguo &NUD_CONNECTED) neigh_suspect (neigh); neigh- > nud_state = nuevo; err = 0; #ifdef CONFIG_ARPDnotify = edad &NUD_VALID; #endifgoto a cabo;} /* comparación de nuevo lladdr con caché uno * /if (dev- > addr_len!) {/* primer caso :. dispositivo necesita ninguna dirección * /lladdr = neigh- > ha;} else if (lladdr) {/* El segundo caso: si algo se ya cachedand se propone una nueva dirección: - comparar nueva &Antiguo- si son diferentes, echa un indicador de anulación * /if ((antiguo & y;; NUD_VALID) &
memcmp (lladdr, neigh-! > ha, dev- > addr_len)) = lladdr neigh- > ha;} else {/* No se suministra dirección; si sabemos algo, utilizar, de lo contrario desechar la petición * /err = -EINVAL;. si ((antiguo &! NUD_VALID)) Goto fuera; lladdr = neigh- > ha;} //si se convierte en el estado conectado, el tiempo se pone a cero se confirma si (a new &pf; NUD_CONNECTED) neigh- > = confirmó jiffies; actualizada //restablecimiento neigh- > actualizada = unidades de tiempo; /* Si la entrada es válida y dirección no se cambia, no cambie el estado de entrada, si es nuevo es rancio. * /err = 0; update_isrouter = banderas &NEIGH_UPDATE_F_OVERRIDE_ISROUTER; //actualizar vecino de la dirección de L2 vecino correspondiente si (antiguo &NUD_VALID) {if (lladdr = neigh- >! hA &&! (banderas &NEIGH_UPDATE_F_OVERRIDE)) {update_isrouter = 0; if ((banderas &NEIGH_UPDATE_F_WEAK_OVERRIDE) y amp; &(antiguo &NUD_CONNECTED)) {lladdr = neigh- > ha; nueva = NUD_STALE;} elsegoto a cabo;} else {if (lladdr == neigh- > & hectáreas; &NUD_STALE nueva == &&((banderas &NEIGH_UPDATE_F_WEAK_OVERRIDE) |
|
(Antiguo &NUD_CONNECTED))) = nueva edad;}} if (= nueva edad) {neigh_del_timer (neigh);! Si (nueva &NUD_IN_TIMER) {neigh_hold (neigh); neigh- > = timer.expires jiffies +
((nueva &NUD_REACHABLE)
neigh- > > parms-; reachable_time :? 0); add_timer (&neigh- > temporizador);} neigh- > nud_state = nuevo;} //establecer ja artículo si (lladdr = neigh- >! ha) {memcpy (&neigh- > ha, lladdr, dev- > addr_len); //hh artículos de actualización neigh_update_hhs (neigh); if (! (new &NUD_CONNECTED)) neigh- > confirmó = jiffies - (neigh- > parms- > base_reachable_time y lt; < 1); #ifdef CONFIG_ARPDnotify = 1; #endif} if (nuevos == edad ) Goto cabo; //Si el estado de la conexión se transfiere, se establece (nueva & a connect_outpif; NUD_CONNECTED) neigh_connect (neigh); elseneigh_suspect (neigh); //si la entrada es válida, vaya vecino del inactiva, puesto en arp_queue transmisión correspondiente //skbzh-CN"],null,[0.9693771],zh-CN"]]]
Aquí hablaré sobre cómo usar el comando en Linux para probar la entrada de lectura y escritura del d
suave interrumpir introducir El proceso se puede retrasar de un manejador de interrupciones disc
Principio básico Después de que la instalación de mysql se haya realizado correctamente, el valor p
. vmstat es una herramienta para ver el uso de la memoria virtual. Formato general: vmstat [-V] [
El proceso nrpe de Nagios no puede iniciar el problema
Enlace de tarjeta de red dual de Linux (enlace) para equilibrio de carga o failover
Cómo arreglar Linux no puede iniciar el fallo
LVS ipvsadm Comando Guía de referencia
Apache reescribir la explicación del elemento de configuración
Linux cómo ver el tamaño del sector
Modo de usuario único de Linux Suse para modificar la contraseña de root
Muchos rzsz el tutorial bajo Linux
El comando dirs de Linux muestra los registros en la pila de directorios
soluciones gráficas NVIDIA resolución Ubuntu Linux del problema
Win10 cualquier botón super abierto
Cómo deshabilitar el dispositivo especificado
¿Dónde está el sistema Win7 360 favorito del navegador?
Cómo abrir el escáner en el sistema win7
Sistema de Windows es lento? Esto no es por razones técnicas
Error de tiempo de ejecución de instalación vc ++: 1935
XP "Power Usage Plan" muestra una solución gris (no utilizable)
¿Cómo utiliza el sistema win7 la voz para controlar la computadora?