Pregunta

Quiero saber cómo comando iwlist escanea las redes inalámbricas disponibles en Linux. He leído su código fuente y no había una llamada ioctl usando SIOCSIWSCAN para activar la exploración y SIOCGIWSCAN para obtener los resultados del análisis. Pero, ¿cómo las tramas de señalización son capturados y analizados por estas llamadas al sistema?

¿Fue útil?

Solución

iwlist (8) y las otras herramientas inalámbricas proporcionan un extremo delantero comunes a diferentes controladores de dispositivos inalámbricos que admiten Linux Wireless Extensions ( WEXT). Cada conductor registrar manejadores con WEXT que implementan las operaciones específicas de dispositivos definidos por esta interfaz. Para la exploración, los dos manipuladores son Gatillo de lectura (comando SIOCSIWSCAN) y obtener los resultados del análisis (comando SIOCGIWSCAN). Después de que el dispositivo se completa un análisis, se envía un evento SIOCGIWSCAN a través de la interfaz WEXT netlink un . Una aplicación de escuchar a esta toma puede emitir un comando SIOCGIWSCAN para obtener los resultados del análisis del dispositivo. Tenga en cuenta que el dispositivo es libre de implementar la exploración cómo cada vez que elija. Por ejemplo, se puede escuchar pasivamente a que las balizas o escanear de forma activa mediante el envío de solicitudes de sondeo.

Lo anterior es deliberadamente vaga en la mecánica de enviar comandos a un dispositivo ya que es la forma tradicional (ioctl) y la nueva forma (netlink - cfg80211). Sin embargo, para tomar un ejemplo concreto, considere la forma tradicional. Las llamadas ioctl se implementan en el módulo WEXT pero el código que se encarga de este comando se implementa en el controlador de dispositivo. Cuando una aplicación de espacio de usuario hace un ioctl, WEXT mira hacia arriba controlador del controlador de dispositivo y lo ejecuta.

scroll top