
This page describes the Agere Systems (previously Lucent) ORiNOCO RG-1000 Residential Gateway. HP co-brands this device, selling it as the HP 802.11b Wireless LAN Small Business Access Point (p/n P1981A).
The RG-1000, by some accounts, is the same as the Apple AirPort Base Station, but placed in a different package. I've never opened up an AirPort Base Station, so I cannot verify this claim.
Like any good engineer, the first thing I did with my RG-100 was to open it up.
The radio in the RG-1000 is based on a stock ORiNOCO 802.11b Silver PC card that is plugged into a small motherboard containing a PC card connector and an AMD chipset. The modem in the RG-1000 lives on a daughter board that plugs into the under side of the motherboard.
In the HP co-branded device, the PC card, which no ordinary user would ever see, amusingly is the co-branded variety, as can be seen in the picture below.

The "silver" card used in the RG-1000 only supports 64-bit WEP (40-bit RC4), and therefore the RG-1000 only supports 64-bit WEP.
The trick to modify an Apple AirPort Base Station from 64-bit WEP to 128-bit WEP (104-bit RC4) works fine on the RG-1000.
The best thing about the RG-1000 is that it is relatively cheap. The street price is under $300 (US). The Apple AirPort Base Station, with arguably better industrial design, is priced similarly.
Good
| Price | |
| Works in BSS mode as a bridge | |
| Contains a 56k modem (if one cares about such a thing ... see below) |
Bad
| Single 10Base-T port | |
| 64-bit WEP (40-bit RC4) | |
| 15 dBm power output (~30 mW) |
The RG-1000 can operate in a few different modes. It can act as a residential gateway in several limited configurations. If you presently use a modem to dial out to an ISP, the RG-1000 can do that automagically and can NAT your internal network of wired and 802.11b hosts. If you have a broadband 10/100Base-T connection, e.g. DSL modem or cable modem, the RG-1000 can connect to your modem. However, as the single 10Base-T port must be used to connect to your modem, all of your internal hosts must connect via 802.11b. (It may be possible to operate the RG-1000 in "lollipop" fashion to allow connectivity for both wired and wireless internal hosts, but this would not advisable as it would not be secure.) I am not using my RG-1000 in any of these modes, so I cannot comment on how well the RG-1000 works in these fashions.
The RG-1000 can act as a straightforward 802.11b access point. In this mode, the RG-1000 behaves as an IEEE 802 bridge. If you have an existing residential gateway/firewall and existing 10/100Base-T hosts, this is the best mode to use, as it simply "extends" your internal network with 802.11b connectivity.
N.B., other 802.11b products exist on the market that contain a pair of 10/100Base-T ports. These can properly act as a residential gateway for both wired and wireless internal hosts.
With a good or excellent radio connection, I get a reliable 400 KB/s of throughput to the other hosts on my home network, as measured by ttcp/wsttcp.
The test setup involved an HP OmniBook 60000 running Windows 2000 Professional with an ORiNOCO Gold PC Card, an Intel Express 460T switch, a 700 MHz Pentium III server with an Intel PCI EtherExpress Pro100 NIC running RedHat 7.0, and (of course) the RG-1000 operating in AP/bridge mode. By comparison, I get 110 KB/sec with the same machines with a full-duplex 100Base-T connection, using the 3Com 10/100 Mini PCI card in the OmniBook in lieu of the ORiNOCO Gold PC Card.
[ch@heavens ch]$ ttcp -t snaggle-wired ttcp-t: buflen=8192, nbuf=2048, align=16384/+0, port=5001 tcp -> snaggle-wired ttcp-t: socket ttcp-t: connect ttcp-t: 16777216 bytes in 1.44 real seconds = 11341.02 KB/sec +++ ttcp-t: 2048 I/O calls, msec/call = 0.72, calls/sec = 1417.63 ttcp-t: 0.0user 0.1sys 0:01real 11% 0i+0d 0maxrss 0+2pf 0+0csw [ch@heavens ch]$ ttcp -t snaggle-wifi ttcp-t: buflen=8192, nbuf=2048, align=16384/+0, port=5001 tcp -> snaggle-wifi ttcp-t: socket ttcp-t: connect ttcp-t: 16777216 bytes in 39.06 real seconds = 419.46 KB/sec +++ ttcp-t: 2048 I/O calls, msec/call = 19.53, calls/sec = 52.43 ttcp-t: 0.0user 0.1sys 0:39real 0% 0i+0d 0maxrss 0+2pf 0+0csw [ch@heavens ch]$
Performance becomes very poor if power management is enable on the card in the OmniBook. I haven't yet investigated why.
Configuration is accomplished via SNMP. You may use either the ORiNOCO RG Setup Utility or a GPL'ed configurator written by Jon Sevy.
It is worthwhile starting with the ORiNOCO RG Setup Utility, for the simple reason that it will flash the RG-1000 firmware (and presumably the PC card firmware, but I'm not certain) with the latest bits, with very little fuss. The downside is the need to use a Windows PC. I highly recommend discarding the CD-ROM that comes with the RG-1000 and downloading the latest software from ORiNOCO before proceeding. The ORiNOCO software is wizard-based and designed to be as simple as possible to use. As such, it doesn't let you configure all the options in the device.
Alternatively, you can use the Apple AirPort Base Station Configurator by Jon Sevy. This is a Java program that should run under any JRE. The AABS Configurator allows you to tweak all the options in the RG-1000 and is certainly the way to go if you are familiar with IPv4 networking. If you perform the 128-bit WEP upgrade, you will have to use the AABS Configurator (and specifically the 128-bit version) as the ORiNOCO RG Setup Utility simply won't let you specify a 128-bit WEP key.
The RG-1000 supports SNMP, which is a good thing even for home environments.
Here's a walk through the MIB's.
[ch@heavens ch]$ snmpwalk rg1000 secret system.sysDescr.0 = RG-1000 V3.79 SN-00UT52260791 V3.65 system.sysObjectID.0 = OID: enterprises.762.2 system.sysUpTime.0 = Timeticks: (23981638) 2 days, 18:36:56.38 system.sysContact.0 = system.sysName.0 = ORINOCO RG-1000 secret system.sysLocation.0 = system.sysServices.0 = 2 interfaces.ifNumber.0 = 3 interfaces.ifTable.ifEntry.ifIndex.1 = 1 interfaces.ifTable.ifEntry.ifIndex.2 = 2 interfaces.ifTable.ifEntry.ifIndex.3 = 3 interfaces.ifTable.ifEntry.ifDescr.1 = AMD PCNetISA interfaces.ifTable.ifEntry.ifDescr.2 = WaveLAN/IEEE interfaces.ifTable.ifEntry.ifDescr.3 = V.90 Modem: AMBIT KITTY VERSIO interfaces.ifTable.ifEntry.ifType.1 = ethernetCsmacd(6) interfaces.ifTable.ifEntry.ifType.2 = ethernetCsmacd(6) interfaces.ifTable.ifEntry.ifType.3 = propPointToPointSerial(22) interfaces.ifTable.ifEntry.ifMtu.1 = 1522 interfaces.ifTable.ifEntry.ifMtu.2 = 1522 interfaces.ifTable.ifEntry.ifMtu.3 = 1522 interfaces.ifTable.ifEntry.ifSpeed.1 = Gauge: 10000000 interfaces.ifTable.ifEntry.ifSpeed.2 = Gauge: 11000000 interfaces.ifTable.ifEntry.ifSpeed.3 = Gauge: 115200 interfaces.ifTable.ifEntry.ifPhysAddress.1 = secret interfaces.ifTable.ifEntry.ifPhysAddress.2 = secret interfaces.ifTable.ifEntry.ifPhysAddress.3 = 0:0:0:0:0:0 interfaces.ifTable.ifEntry.ifAdminStatus.1 = up(1) interfaces.ifTable.ifEntry.ifAdminStatus.2 = up(1) interfaces.ifTable.ifEntry.ifAdminStatus.3 = down(2) interfaces.ifTable.ifEntry.ifOperStatus.1 = up(1) interfaces.ifTable.ifEntry.ifOperStatus.2 = up(1) interfaces.ifTable.ifEntry.ifOperStatus.3 = down(2) interfaces.ifTable.ifEntry.ifLastChange.1 = Timeticks: (0) 0:00:00.00 interfaces.ifTable.ifEntry.ifLastChange.2 = Timeticks: (0) 0:00:00.00 interfaces.ifTable.ifEntry.ifLastChange.3 = Timeticks: (0) 0:00:00.00 interfaces.ifTable.ifEntry.ifInOctets.1 = 624144534 interfaces.ifTable.ifEntry.ifInOctets.2 = 49301682 interfaces.ifTable.ifEntry.ifInOctets.3 = 0 interfaces.ifTable.ifEntry.ifInUcastPkts.1 = 551867 interfaces.ifTable.ifEntry.ifInUcastPkts.2 = 389586 interfaces.ifTable.ifEntry.ifInUcastPkts.3 = 0 interfaces.ifTable.ifEntry.ifInNUcastPkts.1 = 6073 interfaces.ifTable.ifEntry.ifInNUcastPkts.2 = 6750 interfaces.ifTable.ifEntry.ifInNUcastPkts.3 = 0 interfaces.ifTable.ifEntry.ifInDiscards.1 = 0 interfaces.ifTable.ifEntry.ifInDiscards.2 = 0 interfaces.ifTable.ifEntry.ifInDiscards.3 = 0 interfaces.ifTable.ifEntry.ifInErrors.1 = 2374 interfaces.ifTable.ifEntry.ifInErrors.2 = 2231 interfaces.ifTable.ifEntry.ifInErrors.3 = 0 interfaces.ifTable.ifEntry.ifInUnknownProtos.1 = 0 interfaces.ifTable.ifEntry.ifInUnknownProtos.2 = 0 interfaces.ifTable.ifEntry.ifInUnknownProtos.3 = 0 interfaces.ifTable.ifEntry.ifOutOctets.1 = 49442637 interfaces.ifTable.ifEntry.ifOutOctets.2 = 624156054 interfaces.ifTable.ifEntry.ifOutOctets.3 = 0 interfaces.ifTable.ifEntry.ifOutUcastPkts.1 = 389475 interfaces.ifTable.ifEntry.ifOutUcastPkts.2 = 549544 interfaces.ifTable.ifEntry.ifOutUcastPkts.3 = 0 interfaces.ifTable.ifEntry.ifOutNUcastPkts.1 = 9212 interfaces.ifTable.ifEntry.ifOutNUcastPkts.2 = 8552 interfaces.ifTable.ifEntry.ifOutNUcastPkts.3 = 0 interfaces.ifTable.ifEntry.ifOutDiscards.1 = 0 interfaces.ifTable.ifEntry.ifOutDiscards.2 = 0 interfaces.ifTable.ifEntry.ifOutDiscards.3 = 0 interfaces.ifTable.ifEntry.ifOutErrors.1 = 2 interfaces.ifTable.ifEntry.ifOutErrors.2 = 1558 interfaces.ifTable.ifEntry.ifOutErrors.3 = 0 interfaces.ifTable.ifEntry.ifOutQLen.1 = Gauge: 0 interfaces.ifTable.ifEntry.ifOutQLen.2 = Gauge: 0 interfaces.ifTable.ifEntry.ifOutQLen.3 = Gauge: 0 interfaces.ifTable.ifEntry.ifSpecific.1 = OID: transmission.7 interfaces.ifTable.ifEntry.ifSpecific.2 = OID: .iso.2.840.10036 interfaces.ifTable.ifEntry.ifSpecific.3 = OID: transmission.33 ip.ipForwarding.0 = notForwarding(2) ip.ipDefaultTTL.0 = 255 ip.ipInReceives.0 = 945509 ip.ipInHdrErrors.0 = 0 ip.ipInAddrErrors.0 = 0 ip.ipForwDatagrams.0 = 0 ip.ipInUnknownProtos.0 = 0 ip.ipInDiscards.0 = 0 ip.ipInDelivers.0 = 162 ip.ipOutRequests.0 = 175 ip.ipOutDiscards.0 = 0 ip.ipOutNoRoutes.0 = 0 ip.ipReasmTimeout.0 = 0 ip.ipReasmReqds.0 = 0 ip.ipReasmOKs.0 = 0 ip.ipReasmFails.0 = 0 ip.ipFragOKs.0 = 0 ip.ipFragFails.0 = 0 ip.ipFragCreates.0 = 0 ip.ipAddrTable.ipAddrEntry.ipAdEntAddr.10.0.0.10 = IpAddress: 10.0.0.10 ip.ipAddrTable.ipAddrEntry.ipAdEntIfIndex.10.0.0.10 = 1 ip.ipAddrTable.ipAddrEntry.ipAdEntNetMask.10.0.0.10 = IpAddress: 0.0.0.0 ip.ipAddrTable.ipAddrEntry.ipAdEntBcastAddr.10.0.0.10 = 1 ip.ipAddrTable.ipAddrEntry.ipAdEntReasmMaxSize.10.0.0.10 = 0 ip.ipRouteTable.ipRouteEntry.ipRouteDest.0.0.0.0 = IpAddress: 0.0.0.0 ip.ipRouteTable.ipRouteEntry.ipRouteIfIndex.0.0.0.0 = 1 ip.ipRouteTable.ipRouteEntry.ipRouteMetric1.0.0.0.0 = 0 ip.ipRouteTable.ipRouteEntry.ipRouteMetric2.0.0.0.0 = -1 ip.ipRouteTable.ipRouteEntry.ipRouteMetric3.0.0.0.0 = -1 ip.ipRouteTable.ipRouteEntry.ipRouteMetric4.0.0.0.0 = -1 ip.ipRouteTable.ipRouteEntry.ipRouteNextHop.0.0.0.0 = IpAddress: 10.0.0.254 ip.ipRouteTable.ipRouteEntry.ipRouteType.0.0.0.0 = direct(3) ip.ipRouteTable.ipRouteEntry.ipRouteProto.0.0.0.0 = local(2) ip.ipRouteTable.ipRouteEntry.ipRouteAge.0.0.0.0 = 0 ip.ipRouteTable.ipRouteEntry.ipRouteMask.0.0.0.0 = IpAddress: 0.0.0.0 ip.ipRouteTable.ipRouteEntry.ipRouteMetric5.0.0.0.0 = -1 ip.ipRouteTable.ipRouteEntry.ipRouteInfo.0.0.0.0 = OID: .ccitt.nullOID ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaIfIndex.1.10.0.0.1 = 1 ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaIfIndex.1.10.0.0.254 = 1 ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaPhysAddress.1.10.0.0.1 = secret ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaPhysAddress.1.10.0.0.254 = secret ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaNetAddress.1.10.0.0.1 = IpAddress: 10.0.0.1 ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaNetAddress.1.10.0.0.254 = IpAddress: 10.0.0.254 ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaType.1.10.0.0.1 = dynamic(3) ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaType.1.10.0.0.254 = dynamic(3) ip.ipRoutingDiscards.0 = 0 icmp.icmpInMsgs.0 = 0 icmp.icmpInErrors.0 = 0 icmp.icmpInDestUnreachs.0 = 0 icmp.icmpInTimeExcds.0 = 0 icmp.icmpInParmProbs.0 = 0 icmp.icmpInSrcQuenchs.0 = 0 icmp.icmpInRedirects.0 = 0 icmp.icmpInEchos.0 = 0 icmp.icmpInEchoReps.0 = 0 icmp.icmpInTimestamps.0 = 0 icmp.icmpInTimestampReps.0 = 0 icmp.icmpInAddrMasks.0 = 0 icmp.icmpInAddrMaskReps.0 = 0 icmp.icmpOutMsgs.0 = 0 icmp.icmpOutErrors.0 = 0 icmp.icmpOutDestUnreachs.0 = 0 icmp.icmpOutTimeExcds.0 = 0 icmp.icmpOutParmProbs.0 = 0 icmp.icmpOutSrcQuenchs.0 = 0 icmp.icmpOutRedirects.0 = 0 icmp.icmpOutEchos.0 = 0 icmp.icmpOutEchoReps.0 = 0 icmp.icmpOutTimestamps.0 = 0 icmp.icmpOutTimestampReps.0 = 0 icmp.icmpOutAddrMasks.0 = 0 icmp.icmpOutAddrMaskReps.0 = 0 udp.udpInDatagrams.0 = 226 udp.udpNoPorts.0 = 0 udp.udpInErrors.0 = 0 udp.udpOutDatagrams.0 = 241 udp.udpTable.udpEntry.udpLocalAddress.0.0.0.0.161 = IpAddress: 0.0.0.0 udp.udpTable.udpEntry.udpLocalPort.0.0.0.0.161 = 161 transmission.7.2.1.1.1 = 1 transmission.7.2.1.1.2 = 2 transmission.7.2.1.2.1 = 1218 transmission.7.2.1.2.2 = 0 transmission.7.2.1.3.1 = 1218 transmission.7.2.1.3.2 = 2231 transmission.7.2.1.4.1 = 210 transmission.7.2.1.4.2 = 35954 transmission.7.2.1.5.1 = 330 transmission.7.2.1.5.2 = 6529 transmission.7.2.1.6.1 = 0 transmission.7.2.1.6.2 = 0 transmission.7.2.1.7.1 = 2725 transmission.7.2.1.7.2 = 0 transmission.7.2.1.8.1 = 0 transmission.7.2.1.8.2 = 0 transmission.7.2.1.9.1 = 2 transmission.7.2.1.9.2 = 1558 transmission.7.2.1.10.1 = 0 transmission.7.2.1.10.2 = 0 transmission.7.2.1.11.1 = 0 transmission.7.2.1.11.2 = 0 transmission.7.2.1.13.1 = 0 transmission.7.2.1.13.2 = 0 transmission.7.2.1.16.1 = 1156 transmission.7.2.1.16.2 = 0 snmp.snmpInPkts.0 = 238 snmp.snmpOutPkts.0 = 238 snmp.snmpInBadVersions.0 = 0 snmp.snmpInBadCommunityNames.0 = 0 snmp.snmpInBadCommunityUses.0 = 2 snmp.snmpInASNParseErrs.0 = 0 snmp.snmpInTooBigs.0 = 0 snmp.snmpInNoSuchNames.0 = 0 snmp.snmpInBadValues.0 = 0 snmp.snmpInReadOnlys.0 = 0 snmp.snmpInGenErrs.0 = 0 snmp.snmpInTotalReqVars.0 = 212 snmp.snmpInTotalSetVars.0 = 34 snmp.snmpInGetRequests.0 = 23 snmp.snmpInGetNexts.0 = 193 snmp.snmpInSetRequests.0 = 36 snmp.snmpInGetResponses.0 = 0 snmp.snmpInTraps.0 = 0 snmp.snmpOutTooBigs.0 = 0 snmp.snmpOutNoSuchNames.0 = 2 snmp.snmpOutBadValues.0 = 0 snmp.snmpOutGenErrs.0 = 0 snmp.snmpOutGetRequests.0 = 0 snmp.snmpOutGetNexts.0 = 0 snmp.snmpOutSetRequests.0 = 0 snmp.snmpOutGetResponses.0 = 262 snmp.snmpOutTraps.0 = 0 snmp.snmpEnableAuthenTraps.0 = enabled(1) 17.1.1.0 = Hex: 00 02 2D 15 2D D0 17.1.2.0 = 3 17.1.3.0 = 2 17.1.4.1.1.1 = 1 17.1.4.1.1.2 = 2 17.1.4.1.1.3 = 3 17.1.4.1.2.1 = 1 17.1.4.1.2.2 = 2 17.1.4.1.2.3 = 3 17.1.4.1.3.1 = OID: .ccitt.nullOID 17.1.4.1.3.2 = OID: .ccitt.nullOID 17.1.4.1.3.3 = OID: .ccitt.nullOID 17.1.4.1.4.1 = 0 17.1.4.1.4.2 = 0 17.1.4.1.4.3 = 0 17.1.4.1.5.1 = 0 17.1.4.1.5.2 = 0 17.1.4.1.5.3 = 0 17.4.1.0 = 0 17.4.2.0 = 300 17.4.3.1.1.0.2.45.12.148.153 = Hex: secret 17.4.3.1.1.0.48.193.10.147.196 = Hex: secret 17.4.3.1.1.0.128.200.248.71.2 = Hex: secret 17.4.3.1.1.0.144.39.246.170.35 = Hex: secret 17.4.3.1.1.0.160.204.59.40.207 = Hex: secret 17.4.3.1.2.0.2.45.12.148.153 = 2 17.4.3.1.2.0.48.193.10.147.196 = 1 17.4.3.1.2.0.128.200.248.71.2 = 1 17.4.3.1.2.0.144.39.246.170.35 = 1 17.4.3.1.2.0.160.204.59.40.207 = 1 17.4.3.1.3.0.2.45.12.148.153 = 3 17.4.3.1.3.0.48.193.10.147.196 = 3 17.4.3.1.3.0.128.200.248.71.2 = 3 17.4.3.1.3.0.144.39.246.170.35 = 3 17.4.3.1.3.0.160.204.59.40.207 = 3 17.4.4.1.1.1 = 1 17.4.4.1.1.2 = 2 17.4.4.1.1.3 = 3 17.4.4.1.2.1 = 0 17.4.4.1.2.2 = 0 17.4.4.1.2.3 = 0 17.4.4.1.3.1 = 555476 17.4.4.1.3.2 = 396165 17.4.4.1.3.3 = 0 17.4.4.1.4.1 = 396165 17.4.4.1.4.2 = 555477 17.4.4.1.4.3 = 0 17.4.4.1.5.1 = 0 17.4.4.1.5.2 = 0 17.4.4.1.5.3 = 0
There is also an undocumented 1.3.6.1.4.1.762.2.5.* MIB that is used for link testing.
![]()
Written by Christopher Hoover <ch@murgatroid.com>. Comments and corrections welcome. Last edited 03/04/2002 .
|
|
|