Guía de Programación de PPP
Síncrono y Cisco HDLC
Alan Cox
[email protected]
Guía de Programación de PPP Síncrono y Cisco HDLC
por Alan Cox
Copyright © 2000 por Alan Cox
Esta documentación es software libre; puedes redistrubuirla y/o modificarla bajo los términos de la GNU General Public License tal como ha sido
publicada por la Free Software Foundation; por la versión 2 de la licencia, o (a tu elección) por cualquier versión posterior.
Este programa es distribuido con la esperanza de que sea útil, pero SIN NINGUNA GARANTIA; sin incluso la garantía implicada de
COMERCIABILIDAD o ADECUACCION PARA UN PROPOSITO PARTICULAR. Para más detalles refiérase a la GNU General Public
License.
Debería de haber recibido una copia de la GNU General Public License con este programa; si no es así, escriba a la Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Para más detalles véase el archivo COPYING en la distribución fuente de Linux.
Tabla de contenidos
1. Introducción ...........................................................................................................................................1
2. Bugs Conocidos y Suposiciones ............................................................................................................2
3. Funciones Públicas Suministradas.......................................................................................................3
sppp_input..........................................................................................................................................3
sppp_close..........................................................................................................................................3
sppp_open ..........................................................................................................................................4
sppp_reopen .......................................................................................................................................5
sppp_change_mtu...............................................................................................................................5
sppp_do_ioctl .....................................................................................................................................6
sppp_attach.........................................................................................................................................7
sppp_detach........................................................................................................................................7
4. Sobre la Traducción...............................................................................................................................9
iii
Capítulo 1. Introducción
Los controladores syncppp en Linux suministran una implementación bastante completa del HDLC de
Cisco y una mínima implementación de PPP. La meta última es cambiar la capa PPP a la interface
genérica PPP que es nueva en Linux 2.3.x. La API debería de permanecer sin cambios cuando esto haya
sido realizado, pero el soporte estará entonces disponible para IPX, compresión y otras características de
PPP.
1
Capítulo 2. Bugs Conocidos y Suposiciones
PPP es mínimo
La actual implementación de PPP es muy básica, aunque suficiente para la mayoría de los usos de
una red wan.
Sutilezas del HDLC de Cisco
Actualmente no finalizamos todos los paquetes con las banderas correctas unicast o multicast de
Cisco. No aparenta importar mucho pero debería de ser corregido.
2
Capítulo 3. Funciones Públicas Suministradas
sppp_input
Nombre
sppp_input — recibe y procesa un frame PPP WAN
Sinopsis
void sppp_input (struct net_device * dev, struct sk_buff * skb);
Argumentos
El dispositivo en el que ha llegado
dev
skb
El buffer a procesar
Descripción
Puede ser llamado directamente por tarjetas que no tienen restricciones de tiempo, pero normalmente es
llamado desde la capa de red después de servir la interrupción para procesar frames encolados a través de
netif_rx.
Procesamos las opciones en la tarjeta. Si el frame está destinado para la pila de protocolos entonces
reencola el frame al nivel superior del protocolo. Si es un control para él, entonces es procesado y
descargado aquí.
sppp_close
Nombre
sppp_close — cierra un enlace del HDLC de Cisco o de PPP síncrono
3
Sinopsis
int sppp_close (struct net_device * dev);
Capítulo 3. Funciones Públicas Suministradas
Argumentos
dev
El dispositivo de red de donde tirar el enlace
Descripción
Tira la interface lógica al canal. No es realizado de forma educada ya que asumimos que también
estaremos tirando el DTR. Cualesquiera timeouts pendientes son eliminados.
sppp_open
Nombre
sppp_open — abre un enlace del HDLC de Cisco o PPP síncrono
Sinopsis
int sppp_open (struct net_device * dev);
Argumentos
dev
Dispositivo de red a activar
Descripción
Cierra cualquier sesión síncrona existente y comienza desde el principio. En el caso de PPP esto significa
el negociado de LCP/IPCP y compañía, mientras que para el HDLC de Cisco simplemente necesitamos
comenzar a enviar keepalives
4
Capítulo 3. Funciones Públicas Suministradas
sppp_reopen
Nombre
sppp_reopen — notificación de pérdida de enlace físico
Sinopsis
int sppp_reopen (struct net_device * dev);
Argumentos
dev
Dispositivo que perdió el enlace
Descripción
Esta función informa al código del protocolo síncrono que el enlace subyacente murió (por ejemplo se
tiró el transporte en X.21)
Incrementamos los números mágicos para asegurarnos de que si el otro extremo falló en la notificación
empezaremos de forma correcta una nueva sesión. Esto sucede debido a la naturaleza de los dispositivos
de telecomunicaciones en los que puedes perder el transporte en un sólo extremo.
Habiendo realizado esto volvemos a la negociación. Esta función quizás sea llamada desde un contexto
de interrupciones.
sppp_change_mtu
Nombre
sppp_change_mtu — Cambia el MTU del enlace
5
Sinopsis
int sppp_change_mtu (struct net_device * dev, int new_mtu);
Capítulo 3. Funciones Públicas Suministradas
Argumentos
dev
new_mtu
Dispositivo en el cual cambiamos el MTU
Nuevo MTU
Descripción
Cambia el MTU en el enlace. Esto sólo puede ser llamado con el enlace caído. Devuelve un error si el
enlace está activo o si el mtu está fuera de rango.
sppp_do_ioctl
Nombre
sppp_do_ioctl — Manejador Ioctl para ppp/hdlc
Sinopsis
int sppp_do_ioctl (struct net_device * dev, struct ifreq * ifr, int cmd);
Argumentos
dev
ifr
Dispositivo en el cual se realizará la operación ioctl
Bloque de petición de la interface del usuario
6
Capítulo 3. Funciones Públicas Suministradas
cmd
Comando que está siendo emitido
Descripción
Esta función maneja las ioctls que quizás sean emitidas por el usuario para controlar los parámetros de
un enlace PPP/HDLC. Realiza chequeos de seguridad y de si está ocupado. Esta función está diseñada
para ser envolvida por llamantes que desean añadir llamadas ioctls adicionales.
sppp_attach
Nombre
sppp_attach — vincula el PPP/HDLC síncrono a un dispositivo
Sinopsis
void sppp_attach (struct ppp_device * pd);
Argumentos
pd
Dispositivo PPP a inicializar
Descripción
Inicializa el soporte PPP/HDLC en una interfaz. En el momento de llamada el elemento dev debe de
apuntar al dispositivo de red al cual está enlazado esta interfaz. La interfaz aún no debería de estar
registrada.
7
sppp_detach
Capítulo 3. Funciones Públicas Suministradas
Nombre
sppp_detach — libera los recursos PPP de un dispositivo
Sinopsis
void sppp_detach (struct net_device * dev);
Argumentos
dev
Dispositivo de red a liberar
Descripción
Para y libera cualesquiera recursos PPP/HDLC usados por esta interfaz. Debe de ser llamado antes de
que el dispositivo sea liberado.
8
Capítulo 4. Sobre la Traducción
Este documento es la traducción de "Synchronous PPP and Cisco HDLC Programming Guide",
documento que acompaña al código del núcleo de Linux, versión 2.4.18.
Este documento ha sido traducido por Rubén Melcón <
[email protected]>; y es publicado por el
Proyecto Lucas (http://lucas.hispalinux.es)
Versión de la tradución 0.04 ( Julio de 2002 ).
Si tienes comentarios sobre la traducción, ponte en contacto con Rubén Melcón <
[email protected]>
9
Comentarios de: doc manual linux wan (0)
No hay comentarios