[prev in list] [next in list] [prev in thread] [next in thread]
List: cipe
Subject: Re: packet flow through CIPE.
From: Olaf Titz <olaf () bigred ! inka ! de>
Date: 1998-11-08 15:43:26
[Download RAW message or body]
> Can someone explain the flow of a message through CIPE from the time it
> hits the computer until it's before your eyes?
In short:
1. Interrupt handler of NIC (or serial, whatever)
Hardware driver picks up data and queues it up internally.
Bottom half is activated.
2. Bottom half handler
Hardware driver queues packet:
netif_rx() (net/core/dev.c)
Packet gets injected into IP engine:
ip_rcv() (net/ipv4/ip_input.c)
Packet gets distributed to UDP
(this is handled in different ways in 2.0 and 2.1)
Packet is queued to the UDP socket:
udp_rcv() (net/ipv4/udp.c)
sock_queue_rcv_skb() (include/net/sock.h)
ciped process is woken up:
sock_def_wakeup() (net/core/sock.c)
3. CIPE's replaced UDP recvmsg routine, called from user mode
cipe_recvmsg() (cipe/sock.c)
Packet is dequeued:
skb_recv_datagram() (net/core/datagram.c)
Packet gets decrypted:
cipe_decrypt_skb() (cipe/sock.c)
If it is a data packet, it is re-injected into the kernel IP engine:
netif_rx()
Otherwise, it gets passed to ciped:
return from cipe_recvmsg()
which then processes it as a key exchange packet.
Olaf
--
-Message sent by the cipe-l mailing list. To unsubscribe mail majordomo@inka.de
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic