Download presentation
Presentation is loading. Please wait.
Published byMatilda Walker Modified over 5 years ago
1
Who’s listening? Some experiments with an ‘echo’ service on our anchor-cluster’s local network of 82573L nic’s
2
‘nicecho.c’ Module uses a set of eight packet-buffers
Same buffer is used for both RX and TX The NIC operates in “promiscuous” mode Interrupt-hander ‘reflects’ each received packet back to the station it came from Pseudo-file shows both descriptor-queues
3
Memory-layout #define KMEM_SIZE (4<<12) // 16KB kernel memory allocation 12KB 4KB rxring txring kmem Each of the 8 packet-buffers has size 1536 bytes (=0x600) Each of descriptor-table occupies 8*(16 bytes) =128 bytes
4
Sharing of packet-buffers
Rx-descriptors Tx-descriptors
5
Interrupt-processing
irqreturn_t my_isr(int irq, void *dev_id ) { int intr_cause = ioread32( io + E1000_ICR ); if ( intr_cause == 0 ) return IRQ_NONE; if ( intr_cause & (1<<7) ) // receiver timeout: a new packet arrived int index = ioread32( io + E1000_TDT ); unsigned long where = txring[ index ].base_address; unsigned char *cp = phys_to_virt( where ); memcpy( cp+0, cp+6, 6 ); // source becomes destination memcpy( cp+6, mac, 6 ); // our station becomes source txring[ index ].desc_status = 0; txring[ index ].packet_length = rxring[ index ].packet_length; index = (1 + index) % 8;’ // ring-buffer index advances iowrite32( io + E1000_TDT ); // start sending packet back } iowrite32( intr_cause, io + E1000_ICR ); // clear the interrupts return IRQ_HANDLED;
6
Packet-processing …then our station becomes source
source becomes destination… mac[6] destn-address source-address TYPE/ LENGTH -- data -- -- data -- -- data – -- data -- -- data -- -- data --
7
In-class experiments Let’s compile and install our ‘nicecho.c’ module on one (or more) anchor stations Then let’s transmit a ‘broadcast’ packet from a different anchor station, while we simultaneously listen for any replies Then let’s see what happens if we ‘omit’ our processing of the station-addresses
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.