[LiSA-Devel] basic message passing
Radu Rendec
radu.rendec at ines.ro
Wed Mar 25 14:03:28 EET 2009
Programelul respectiv este pentru testat functionalitatea de socket *de
tip LiSA* (familia AF_SWITCH). Este un tip special de sockets
implementat de modulul switch, care permite pasarea anumitor pachete
speciale (ex CDP - aici ar trebui sa intre si BPDU pentru STP).
Ideea este ca pentru a putea primi aceste pachete, ele trebuie
identificate si deviate din codul de kernel:
* codul general de tratare a frame-urilor este in
lisa/linux-2.6/net/switch/sw.c, functia sw_handle_frame();
* codul de identificare de pachete este in
lisa/linux-2.6/net/switch/sw_socket.c, functia sw_socket_filter();
Scopul final este de a folosi acest mecanism pentru a captura pachetele
de STP. Pentru asta, ar trebui sa faci cateva modificari in modulul de
kernel:
* sa adaugi in struct net_switch_port (sw_private.h) un membru de tip
struct list_head pentru stp;
* sa modifici bind_switch_port() si sw_socket_filter() pentru pachetele
de stp;
* sa adaugi o constanta simbolica pentru tipul de pachete (stp).
Este ciudat ca nu ai vazut pachetele cu tcpdump pana nu ai schimbat
mac-ul. In mod normal, tcpdump pune placa in promiscuous mode, deci ar
trebui sa vezi _orice_ pachet.
Cele doua masini sunt legate direct cu cablu cross sau ai un switch
intre ele?
Radu
On Wed, 2009-03-25 at 04:17 -0700, Faur Andrei wrote:
> Ok, am setat doua masini virtuale cu kernelul configurat anterior. Pasii
> urmariti sunt :
>
> pe fiecare masina :
> modprobe switch
> cd /lisa/userspace/cli
> LD_LIBRARY_PATH=. ./swcli
> configure terminal
> interface eth0
>
> Acum, am gasit in directorul /lisa/userspace/tests un program numit
> test_sock in care se face un receive si un send. Am impartit programul
> in doua, astfel ca pe una din masini fac send in timp ce pe cealalta fac
> receive. Am interceptat cu tcpdump (pe masina sender) pachetul transmis
> de programul send si imi arata :
> 06:07:08:09:0a:0b (oui Unknown) > 00:01:02:03:04:05 (oui Unknown).
> Pe masina receiver, tcpdump nu imi arata nimic. Am schimbat MAC-ul
> de pe receiver in 00:01:02:03:04:05 si acum tcpdump imi arata ca primeste
> pachetul insa programul recv tot nu il receptioneaza. Any ideeas?
>
> On a side note : de unde isi ia programul test_recv respectivele adrese MAC?
>
> Andrei.
>
>
>
> _______________________________________________
> LiSA-Devel mailing list
> LiSA-Devel at lisa.ines.ro
> http://lisa.ines.ro/mailman/listinfo/lisa-devel
More information about the LiSA-Devel
mailing list