RTL wireless lan card2500
- Type:
- Applications > Windows
- Files:
- 1
- Size:
- 10.72 MiB (11236612 Bytes)
- Uploaded:
- 2009-02-04 21:18 GMT
- By:
- sHaKiS455
- Seeders:
- 2
- Leechers:
- 0
- Info Hash: 67DFBF45D5683C0B6F2655C8AB0EECE8B08EE420
000 DRIVER wirelessLAN haRDware RtL v2500--- trunk/lorcon.3 ¶ r123 r137 1 1 ." $Id: $ 2 .TH LORCON 3 "01 November 2006" 2 .TH LORCON 3 "22 March 2007" 3 3 .SH NAME 4 4 LORCON - 802.11 Wireless Packet Injection Library … … 7 7 .ft B 8 8 #include <tx80211.h> 9 #include <tx80211_packet.h> 10 9 .ft 11 10 .LP 12 11 .nf 13 12 .ft B 14 struct tx80211_cardlist *tx80211_getcardlist() 13 tx80211_cardlist_t *tx80211_getcardlist() 15 14 void tx80211_freecardlist(struct tx80211_cardlist *in_list) 16 15 .ft … … 25 24 .LP 26 25 .ft B 27 int tx80211_init(struct tx80211 *in_tx, const char *in_ifname, 26 int tx80211_init(tx80211_t *in_tx, const char *in_ifname, 28 27 .ti +8 29 28 int in_injector) … … 31 30 .LP 32 31 .ft B 33 char * tx80211_geterrstr(struct tx80211 *in_tx) 34 .ft 35 .LP 36 .ft B 37 int tx80211_getcapabilities(struct tx80211 *in_tx) 38 .ft 39 .LP 40 .ft B 41 int tx80211_open(struct tx80211 *in_tx) 42 .ft 43 .LP 44 .ft B 45 int tx80211_setmode(struct tx80211 *in_tx, int in_mode) /* superceded */ 46 int tx80211_getmode(struct tx80211 *in_tx) 47 int tx80211_setfunctionalmode(struct tx80211 *in_tx, int in_fmode) 48 .ft 49 .LP 50 .ft B 51 int tx80211_setchannel(struct tx80211 *in_tx, int in_chan) 52 int tx80211_getchannel(struct tx80211 *in_tx) 53 .ft 54 .LP 55 .ft B 56 int tx80211_txpacket(struct tx80211 *in_tx, 32 char * tx80211_geterrstr(tx80211_t *in_tx) 33 .ft 34 .LP 35 .ft B 36 int tx80211_getcapabilities(tx80211_t *in_tx) 37 .ft 38 .LP 39 .ft B 40 int tx80211_open(tx80211_t *in_tx) 41 .ft 42 .LP 43 .ft B 44 int tx80211_setmode(tx80211_t *in_tx, int in_mode) /* superceded */ 45 int tx80211_getmode(tx80211_t *in_tx) 46 int tx80211_setfunctionalmode(tx80211_t *in_tx, int in_fmode) 47 .ft 48 .LP 49 .ft B 50 int tx80211_setchannel(tx80211_t *in_tx, int in_chan) 51 int tx80211_getchannel(tx80211_t *in_tx) 52 .ft 53 .LP 54 .ft B 55 int tx80211_settxrate(tx80211_t *in_tx, tx80211_packet_t *in_packet, 57 56 .ti +8 58 struct tx80211_packet *in_packet) 59 .ft 60 .LP 61 .ft B 62 int tx80211_close(struct tx80211 *in_tx) 57 int rate) 58 .ft 59 .ft B 60 int tx80211_gettxrate(tx80211_packet_t *in_packet) 61 .ft 62 .LP 63 .ft B 64 int tx80211_setmodulation(tx80211_t *in_tx, tx80211_packet_t *in_packet, 65 .ti +8 66 int modulation) 67 .ft 68 .ft B 69 int tx80211_getmodulation(tx80211_packet_t *in_packet) 70 .ft 71 .LP 72 .ft B 73 int tx80211_initpacket(tx80211_packet_t *in_packet) 74 .ft 75 .LP 76 .ft B 77 int tx80211_txpacket(tx80211_t *in_tx, 78 .ti +8 79 tx80211_packet_t *in_packet) 80 .ft 81 .LP 82 .ft B 83 int tx80211_close(tx80211_t *in_tx) 63 84 .ft 64 85 .fi … … 91 112 architecture, with a driver description and capability information. This 92 113 function allocates memory to populate a pointer of type 93 .I tx80211_cardlist 114 .I tx80211_cardlist_t 94 115 , returning NULL on error. 95 116 … … 97 118 .BR tx80211_freecardlist() 98 119 is used to free the 99 .I tx80211_cardlist 120 .I tx80211_cardlist_t 100 121 pointer populated by 101 122 .B tx80211_getcardlist(). 102 123 .I in_list 103 is the populated tx80211_cardlist pointer. 124 is the populated tx80211_cardlist_t pointer. 104 125 105 126 .PP … … 115 136 Indicates the wlan-ng driver available at 116 137 .I ftp://ftp.linux-wlan.org/pub/linux-wlan-ng. 117 The string "wlanng" or "wlan-ng" may be used to indicate the use of this driver. 138 The strings "wlanng" or "wlan-ng" may be used to indicate the use of this driver. 118 139 .TP 119 140 .B INJ_HOSTAP 120 141 Indicated the HostAP driver available at 121 142 .I http://hostap.epitest.fi. 122 The string "host-ap" or "hostap" may be used to indicate the use of this driver. 143 The strings "host-ap" or "hostap" may be used to indicate the use of this driver. 123 144 .TP 124 145 .B INJ_AIRJACK … … 136 157 Indicates the Prism54 driver, available at 137 158 .I http://prism54.org. 138 The string "prismgt" or "prism54" may be used to indicate the use of this driver. 159 The strings "prismgt" or "prism54" may be used to indicate the use of this driver. 139 160 .TP 140 161 .B INJ_MADWIFING 141 162 Indicates the MADWIFI-ng drivers, available at 142 163 .I http://www.madwifi.org. 143 The string "madwifi-ng" may be used to indicate the use of this driver. 164 The strings "madwifi-ng" or "madwifing" may be used to indicate the use of this driver. 144 165 .TP 145 166 .B INJ_MADWIFIOLD … … 151 172 Indicates the Realtek RTL8180 driver, available at 152 173 .I http://sourceforge.net/projects/rtl8180-sa2400. 153 The string "rtl8180" or "rt8180" may be used to indicate the use of this driver. 174 The strings "rtl8180" or "rt8180" may be used to indicate the use of this driver. 154 175 .TP 155 176 .B INJ_RT2500 156 177 Indicates the Ralink RT2500 driver, available at 157 .I http://sourceforge.net/projects/rt2400. 158 The string "rt2500" or "rtl2500" or "rt25k" or "rtl25k" may be used to indicate the use of this driver. 178 .I http://rt2x00.serialmonkey.com. 179 The strings "rt2500" or "rtl2500" or "rt25k" or "rtl25k" may be used to indicate the use of this driver. 159 180 .TP 160 181 .B INJ_RT2750 161 182 Indicates the Ralink RT2570 USB driver, available at 162 .I http://sourceforge.net/projects/rt2400. 163 The string "rt2750" or "rtl2570" may be used to indicate the use of this driver. 183 .I http://rt2x00.serialmonkey.com. 184 The strings "rt2750" or "rtl2570" may be used to indicate the use of this driver. 185 .TP 186 .B INJ_RT73 187 Indicates the Ralink RT73 USB driver, available at 188 .I http://rt2x00.serialmonkey.com. 189 The strings "rt73" or "rtl2571" may be used to indicate the use of this driver. 190 .TP 191 .B INJ_RT61 192 Indicates the Ralink RT61 PCI/PC-Card driver, available at 193 .I http://rt2x00.serialmonkey.com. 194 The strings "rt61" or "rt2561" may be used to indicate the use of this driver. 195 .TP 196 .B INJ_AIRPCAP 197 Indicates the CACE Technologies AirPcap USB adapter for Windows, available at 198 .I http://www.cacetech.com/products/airpcap.htm. This is a commercial adapter for Windows. The string "airpcap" may be used to indicate the use of this driver. 164 199 .TP 165 200 .B INJ_NODRIVER … … 167 202 .I in_str 168 203 is not recognized. This can be due to a typo, or due to lack of support for 169 the specified driver in the installed version of LORCON. 204 the specified driver in the installed version of LORCON for the current operating system. 170 205 .RE 171 206 .LP … … 270 305 TX80211_CAP_SNIFFACK 271 306 Indicates the capability to observe the presence of ACK frames in monitor mode. 272 .B NOTE: 273 This is not a TX-related capability, and may be replaced with a separate 274 capability bitmask for RX-related capabilities in a future release. 275 307 .TP 276 308 .B … … 300 332 Indicates the capability to transmit frames using OFDM modulation. This is 301 333 appropriate for cards that support 802.11g or 802.11a networking. 302 .B NOTE: 303 It is possible to differentiate between 802.11g and 802.11a networking by 304 specifying the appropriate channel in the 2.4 GHz or 5 GHz spectrums with the 305 334 .B tx80211_setchannel() 306 335 function. … … 315 344 TX80211_CAP_SETRATE 316 345 Indicates the capability to set the data transmission rate using the 317 .B tx80211_setrate() 346 .B tx80211_settxrate() 347 function. 348 .TP 349 .B 350 TX80211_CAP_SETMODULATION 351 Indicates the capability to set the data modulation mechanism using the 352 .B tx80211_setmodulation() 318 353 function. 319 354 .RE … … 337 372 .B tx80211_open() 338 373 function before transmitting packets. 374 .B tx80211_open() 375 returns 376 .B 377 TX80211_ENOERR 378 on success and < 0 on failure. 339 379 340 380 .PP … … 390 430 .RE 391 431 .B tx80211_setmode() 392 returns 0 on success, -1 on error. 432 returns 433 .B 434 TX80211_ENOERR 435 on success, < 0 on error. 393 436 394 437 .PP … … 421 464 .RE 422 465 .B tx80211_setfunctionalmode() 423 returns 0 on success, < 0 on error. 466 returns 467 .B 468 TX80211_ENOERR 469 on success, < 0 on error. 424 470 425 471 .B NOTE: … … 434 480 .PP 435 481 .BR tx80211_getmode() 436 is used to identify the current operating mode, returning the operating mode or -1 on error. 482 is used to identify the current operating mode, returning the operating mode or < 0 on error. 437 483 .I in_tx 438 484 is the structure populated by the … … 442 488 .PP 443 489 .BR tx80211_setchannel() 444 is used to set card channel, returning 0 on success and -1 on error. 490 is used to set card channel, returning 491 .B 492 TX80211_ENOERR 493 on success and -1 on error. 445 494 .I in_tx 446 495 is the structure populated by the … … 448 497 function. 449 498 .I in_chan is the desired channel number. 499 .B tx80211_setchannel() 500 returns 501 .B 502 TX80211_ENOERR 503 on success, and < 0 on failure. 450 504 451 505 .PP 452 506 .BR tx80211_getchannel() 453 507 is used to identify the current channel number, returning the channel number 454 or -1 on error. 455 .I in_tx 456 is the structure populated by the 457 .B tx80211_init 458 function. 508 or < 0 on error. 509 .I in_tx 510 is the structure populated by the 511 .B tx80211_init 512 function. 513 514 .PP 515 .BR tx80211_settxrate() 516 is used to specify the transmit rate for the frame. This parameter is per-packet specific (e.g. specified in the 517 .I 518 in_packet 519 structure, allowing you to create and transmit multiple frames with different rates without having to call 520 .B 521 tx80211_settxrate() 522 successively for each transmission. 523 .I in_tx 524 is the structure populated by the 525 .B tx80211_init 526 function. The 527 .B rate 528 specifiers are defined as follows: 529 .RS 530 .TP 531 .B 532 TX80211_RATE_DEFAULT 533 Transmission at the default driver rate, typically 1 Mbps 534 .TP 535 .B 536 TX80211_RATE_1MB 537 Transmission at 1 Mbps 538 .TP 539 .B 540 TX80211_RATE_2MB 541 Transmission at 2 Mbps 542 .TP 543 .B 544 TX80211_RATE_5_5MB 545 Transmission at 5.5 Mbps 546 .TP 547 .B 548 TX80211_RATE_6MB 549 Transmission at 6 Mbps 550 .TP 551 .B 552 TX80211_RATE_9MB 553 Transmission at 9 Mbps 554 .TP 555 .B 556 TX80211_RATE_11MB 557 Transmission at 11 Mbps 558 .TP 559 .B 560 TX80211_RATE_22MB 561 Transmission at 22 Mbps 562 .TP 563 .B 564 TX80211_RATE_24MB 565 Transmission at 24 Mbps 566 .TP 567 .B 568 TX80211_RATE_36MB 569 Transmission at 36 Mbps 570 .TP 571 .B 572 TX80211_RATE_48MB 573 Transmission at 48 Mbps 574 .TP 575 .B 576 TX80211_RATE_72MB 577 Transmission at 72 Mbps 578 .TP 579 .B 580 TX80211_RATE_96MB 581 Transmission at 96 Mbps 582 .TP 583 .B 584 TX80211_RATE_108MB 585 Transmission at 108 Mbps 586 .RE 587 .LP 588 589 .B 590 NOTE: 591 This function is only available for drivers with the 592 .B 593 TX80211_CAP_SETRATE 594 capability. 595 .B 596 tx80211_settxrate() 597 returns 598 .B 599 TX80211_ENOERR 600 on success, < 0 on failure. 601 602 .PP 603 .BR tx80211_gettxrate() 604 returns the configured data rate for the 605 .B 606 in_packet 607 context. Returns the rate as specified with the 608 .B tx80211_settxrate() 609 function, or 610 .B TX80211_RATE_DEFAULT 611 . 612 613 .PP 614 .BR tx80211_setmodulation() 615 is used to specify the modulation mechanism rate for the frame. This parameter is per-packet specific (e.g. specified in the 616 .I 617 in_packet 618 structure, allowing you to create and transmit multiple frames with different rates without having to call 619 .B 620 tx80211_setmodulation() 621 successively for each transmission. 622 .I in_tx 623 is the structure populated by the 624 .B tx80211_init 625 function. The 626 .B rate 627 specifiers are defined as follows: 628 .RS 629 .TP 630 .B 631 TX80211_MOD_DEFAULT 632 Transmission using the default driver modulation mechanism for the configured channel. 633 .TP 634 .B 635 TX80211_MOD_FHSS 636 Transmission using Frequency Hopping Spread Spectrum (FHSS). Currently, no LORCON supported drivers accommodate FHSS transmission. 637 .TP 638 .B 639 TX80211_MOD_DSSS 640 Transmission using Distributed Sequence Spread Spectrum (DSSS). This is the common modulation mechanism for IEEE 802.11b networks. 641 .TP 642 .B 643 TX80211_MOD_OFDM 644 Transmission using Orthogonal Frequency Division Multiplexing (OFDM). This is the common modulation mechanism for IEEE 802.11g and IEEE 802.11a networks. 645 .TP 646 .B 647 TX80211_MOD_TURBO 648 Transmission using the proprietary Atheros Turbo modulation mechanism. 649 .TP 650 .B 651 TX80211_MOD_MIMO 652 Transmission using the Multiple Input Multiple Output (MIMO) mechanism specified in IEEE 802.11n. This modulation mechanism uses a preamble that is backward-compatible with IEEE 802.11a/b/g cards. 653 .TP 654 .B 655 TX80211_MOD_MIMOGF 656 Transmission using the Multiple Input Multiple Output (MIMO) Greenfield mode specified in IEEE 802.11n. This modulation mechanism uses a preamble that is NOT backward-compatible with IEEE 802.11a/b/g cards. 657 .RE 658 .LP 659 .B 660 NOTE: 661 This function is only available for drivers with the 662 .B 663 TX80211_CAP_SETMODODULATION 664 capability. 665 .B 666 tx80211_setmodulation() 667 returns 668 .B 669 TX80211_ENOERR 670 on success, < 0 on failure. 671 672 .PP 673 .BR tx80211_initpacket() 674 is used to initialize the per-packet context. Must be called before 675 .B tx80211_txpacket(). 676 .I in_packet 677 is the structure declared with tx80211_packet_t. 459 678 460 679 .PP … … 488 707 is the structure populated by the 489 708 .B tx80211_init 490 function. The return value is zero on success, or -1 if an error occurred. 709 function. The return value is 710 .B 711 TX80211_ENOERR 712 on success, or < 0 if an error occured. 491 713 492 714 .PP … … 499 721 500 722 #include <tx80211.h> 501 #include <tx80211_packet.h> 502 723 #include <linux/wireless.h> 503 724 … … 508 729 { 509 730 510 struct tx80211_cardlist *cardlist = NULL; 731 tx80211_cardlist_t *cardlist = NULL; 511 732 int i; 512 733 … … 535 756 }; 536 757 537 struct tx80211 in_tx; 538 struct tx80211_packet in_packet; 758 tx80211_t in_tx; 759 tx80211_packet_t in_packet; 539 760 int drivertype; 540 761 … … 557 778 if (tx80211_init(&in_tx, IFACE, drivertype) < 0) { 558 779 fprintf(stderr, "Error initializing driver " 559 "\"%s\".\n", argv[1]); 780 "\"%s\": %s.\n", argv[1], 781 tx80211_geterrstr(&in_tx)); 560 782 return -1; 561 783 } … … 572 794 if (tx80211_setfunctionalmode(&in_tx, TX80211_FUNCMODE_INJMON) != 0) { 573 795 fprintf(stderr, "Error setting monitor/inject mode: %s.\n", 574 tx80211_geterrstr(in_tx)); 796 tx80211_geterrstr(&in_tx)); 575 797 return 1; 576 798 } … … 579 801 if (tx80211_setchannel(&in_tx, CHANNEL) < 0) { 580 802 fprintf(stderr, "Error setting channel: %s.\n", 581 tx80211_geterrstr(in_tx)); 803 tx80211_geterrstr(&in_tx)); 582 804 return 1; 583 805 } … … 586 808 if (tx80211_open(&in_tx) < 0) { 587 809 fprintf(stderr, "Unable to open interface %s: %s.\n", 588 in_tx.ifname, tx80211_geterrstr(in_tx)); 810 in_tx.ifname, tx80211_geterrstr(&in_tx)); 589 811 return 1; 590 812 } 591 813 592 /* Initialized in_packet with packet contents and length of 814 /* Initialize in_packet and set packet contents and length of 593 815 the packet */ 816 tx80211_initpacket(&in_packet); 594 817 in_packet.packet = packet; 595 818 in_packet.plen = sizeof(packet); … … 598 821 if (tx80211_txpacket(&in_tx, &in_packet) < 0) { 599 822 fprintf(stderr, "Unable to transmit packet: %s.\n", 600 tx80211_geterrstr(in_tx)); 823 tx80211_geterrstr(&in_tx)); 601 824 return 1; 602 825 } … … 621 844 .LP 622 845 .RS 623 [email protected] 846 [email protected] 847 848 .SH RESOURCES 849 Please see http://802.11ninja.net/lorcon for updates to LORCON, documentation and the bug database. 624 850 .RE TabularUnifiedtrunk/tx80211.c ¶ r135 r137 135 135 ret->cardnames[ret->num_cards] = strdup("rt61"); 136 136 ret->descriptions[ret->num_cards] = strdup("Raylink 61 pre-N PC Card"); 137 ret->capabilities[ret->num_cards] = tx80211_rt2570_capabilities(); 137 ret->capabilities[ret->num_cards] = tx80211_rt61_capabilities(); 138 138 ret->num_cards++; 139 139 … … 204 204 return INJ_RT2500; 205 205 206 if (!strcasecmp(in_str, "rt2570") || !strcasecmp(in_str, "rtl2570")) 206 if (!strcasecmp(in_str, "rt2570") || !strcasecmp(in_str, "rtl2570") || 207 !strcasecmp(in_str, "rt2570")) 207 208 return INJ_RT2570; 208 209 209 if (!strcasecmp(in_str, "rt73") || !strcasecmp(in_str, "rtl73")) 210 if (!strcasecmp(in_str, "rt73") || !strcasecmp(in_str, "rtl73") || 211 !strcasecmp(in_str, "rt2571")) 210 212 return INJ_RT73; 211 213 212 if (!strcasecmp(in_str, "rt61") || !strcasecmp(in_str, "rtl61")) 214 if (!strcasecmp(in_str, "rt61") || !strcasecmp(in_str, "rt2561")) 213 215 return INJ_RT61; 214 216 TabularUnifiedtrunk/tx80211.h ¶ r135 r137 214 214 #define INJ_ZD1211RW 13 215 215 /* 216 * No-one should be testing for INJ_MAX, test for TX80211_ENOSUCHINJ instead 216 * No-one should test for INJ_MAX, test for INJ_NODRIVER instead 217 217 */ 218 218 #define INJ_MAX 14 TabularUnifiedtrunk/tx80211_packet.h ¶ r123 r137 66 66 67 67 /* Values are in a quantity of 500 Kbps increments */ 68 #define TX80211_RATE_DEFAULT 0 68 69 #define TX80211_RATE_1MB 2 69 70 #define TX80211_RATE_2MB 4