Lines 476-481
Link Here
|
476 |
struct ifreq ifr; |
476 |
struct ifreq ifr; |
477 |
int rate; |
477 |
int rate; |
478 |
|
478 |
|
|
|
479 |
if (ic->ic_opmode == IEEE80211_M_MONITOR) { |
480 |
rate = rrq->value / 1000; |
481 |
if (rate != 1000 && rate != 2000 && rate != 5500 && |
482 |
rate != 11000 && rate != 6000 && rate != 9000 && |
483 |
rate != 12000 && rate != 18000 && rate != 24000 && |
484 |
rate != 36000 && rate != 48000 && rate != 54000 ) |
485 |
return -EINVAL; |
486 |
printk(KERN_DEBUG "setting xmit rate to %d\n", rate); |
487 |
ic->inject_rate = rate; |
488 |
return 0; |
489 |
} |
490 |
|
479 |
if (!ic->ic_media.ifm_cur) |
491 |
if (!ic->ic_media.ifm_cur) |
480 |
return -EINVAL; |
492 |
return -EINVAL; |
481 |
memset(&ifr, 0, sizeof(ifr)); |
493 |
memset(&ifr, 0, sizeof(ifr)); |
Lines 502-507
Link Here
|
502 |
struct ifmediareq imr; |
514 |
struct ifmediareq imr; |
503 |
int rate; |
515 |
int rate; |
504 |
|
516 |
|
|
|
517 |
if (ic->ic_opmode == IEEE80211_M_MONITOR) { |
518 |
rrq->value = ic->inject_rate * 1000; |
519 |
return 0; |
520 |
} |
521 |
|
505 |
memset(&imr, 0, sizeof(imr)); |
522 |
memset(&imr, 0, sizeof(imr)); |
506 |
(*ic->ic_media.ifm_status)(ic->ic_dev, &imr); |
523 |
(*ic->ic_media.ifm_status)(ic->ic_dev, &imr); |
507 |
|
524 |
|
Lines 942-947
Link Here
|
942 |
#if WIRELESS_EXT >= 15 |
959 |
#if WIRELESS_EXT >= 15 |
943 |
case IW_MODE_MONITOR: |
960 |
case IW_MODE_MONITOR: |
944 |
ifr.ifr_media |= IFM_IEEE80211_MONITOR; |
961 |
ifr.ifr_media |= IFM_IEEE80211_MONITOR; |
|
|
962 |
ic->inject_rate = 5500; /* default = 5.5M CCK */ |
945 |
break; |
963 |
break; |
946 |
#endif |
964 |
#endif |
947 |
default: |
965 |
default: |