void read_rts(struct params *p, struct ieee80211_frame *wh, int len) { if (memcmp(wh->i_addr1, p->mac, 6) != 0) return; send_cts(p, wh->i_addr2); }
void rtscts_sink_thread(){ comBuf *recv_pkt; //give us a packet pointer com_mode(IFACE_RADIO, IF_LISTEN); printf("before entering the while loop\n"); while(1) { recv_pkt = com_recv(IFACE_RADIO); //blocking recv a packet printf("Src = %C Seq = %C Type = %C Size = %C TS = %l TCNT = %C RSSI = %l\n", recv_pkt->data[0], recv_pkt->data[1], recv_pkt->data[2], recv_pkt->size, recv_pkt->ts, recv_pkt->tcnt, recv_pkt->signal); if(recv_pkt->data[2] == RTS_TYPE) { mos_thread_sleep(100); send_cts(recv_pkt->data[0], recv_pkt->data[1], &ctrl_pkt); printf("Send out CTS to %C\n", recv_pkt->data[0]); } com_free_buf(recv_pkt); //free the recv'd packet to the pool mos_led_toggle(0); } }