Set Up QoS in Tomato or DD-WRT for AT&T 3G MicroCell 1


If you’re using an AT&T 3G MicroCell to help boost your cell phone range, and you have your 3G MicroCell set up behind a firewall, you should set up the Quality of Service settings (more commonly referred to as QoS settings) on your router to give your voice calls the highest priority on your network. This will protect the call quality for your cell phone calls even if someone else on your network is downloading files, video conferencing, or doing anything else that uses a lot of bandwidth.

A few modern routers come straight from the factory with QoS built in, but most of today’s power users install aftermarket firmware on their router, the two most popular being Tomato and DD-WRT. Either of these two free firmwares will run on a number of router models, but the most ubiquitous are the Linksys WRT54G, WRT54GL, and WRT54GS. However, there are many different versions of those routers out there, so be sure to RTFM (or these days, RTFW… W=Wiki) before installing either of these firmwares on your device, as you could end up turning your router into a doorstop.

This tutorial assumes that you already have Tomato or DD-WRT set up on your router, as well as a functioning 3G MicroCell plugged into one of the Ethernet ports on that router.

Why Not Just Use Priority Mode Configuration?

Before you start, you should be aware that AT&T explains in their documentation how to set up the 3G MicroCell in Priority Mode, meaning you connect the 3G MicroCell between your modem and your router and allow the 3G MicroCell to manage its own network priority settings. While some users have experienced success with this straightforward approach, others have complained that it’s still not effective.

Personally, I chose not to use Priority Mode for three reasons:

  1. I don’t like the idea of placing a device with no user-accessible configuration between my network and Internet, especially if the modem assigns it a public IP address.
  2. Priority Mode assigns your router an internal 192.168.x.x IP address, which can interfere with settings such as VPN, NAT, VoIP, and will prevent you from using any Dynamic DNS service.
  3. Many ISPs look for a specific MAC address from their router to authenticate you on their network, and putting the 3G MicroCell in front of the router may cause problems because there is no user interface to configure MAC spoofing.

You can achieve the same (and perhaps better) network efficiency, and have more control over your network, by simply setting up QoS on your router for your 3G MicroCell, so let’s get started!

Step 1: Set up a DHCP Reservation for your 3G MicroCell

Technically, you don’t necessarily have to use a reserved IP address to enable QOS, but it’s generally a good idea to do so when possible. You’re going to be messing with the router settings anyway, so you may as well do this now.

Setting up a DHCP Reservation for your 3G MicroCell in Tomato

  1. Go to Status then Device List in the Tomato web GUI. The 3G MicroCell will be on Interface br0 and its MAC Address will most likely start with 44:58:29, which is assigned to Cisco.
  2. Click the [static] link to jump to the Static DHCP page and pre-populate the MAC address of the 3G MicroCell.
  3. Enter an unused IP address on your network and choose a name for the reservation (such as 3G MicroCell).
  4. Press Save.
  5. Once your router is done saving, disconnect then reconnect the power to your 3G MicroCell so that it requests a new DHCP lease.

Within a few minutes, you should see the newly reserved IP address assigned to your 3G MicroCell in Tomato’s Device List.

Setting up a DHCP Reservation for your 3G MicroCell in DD-WRT

  1. To find your 3G MicroCell’s MAC address, go to the Status tab in the DD-WRT web GUI then click the LAN sub-tab. The 3G MicroCell should appear in the Active Clients list and have a MAC Address that most likely starts with 44:58:29, which is assigned to Cisco. You can also look on the bottom of your 3G MicroCell to find the MAC Address right above the serial number. Write down the MAC Address to use in the next steps.
  2. Go to the Services tab.
  3. In the DHCP Server section, if there is no blank slot under Static Leases, click Add.
  4. Enter the MAC address of the 3G MicroCell, choose a hostname for it (such as 3GMicroCell), and type in an unused IP address on your network.
  5. Scroll to the bottom of the page and press Save then Apply Settings.
  6. Once your router is done saving, disconnect then reconnect the power to your 3G MicroCell so that it requests a new DHCP lease.

Within a few minutes, you should see the newly reserved IP address assigned to your 3G MicroCell in DD-WRT’s Active Clients List (under Status, LAN).

Step 2: Determine your Maximum Upload and Download Rates

In order to setup up QoS properly, you’ll need to know the actual maximum upload and download speeds for your current connection. Don’t always trust what your ISP tells you it’s providing you. In most cases, your actual upload and download speeds will be somewhat less than the advertised rates due to network overhead, oversold connections, network latency issues, or a number of other factors. The best way to determine your actual rates is to test them periodically and record the results. There are a number of popular (and free!) speed tests available online, including:

For the most accurate results, exit any programs on any computers on your network that may be using the Internet during the test – this includes email clients, downloading or file-sharing programs, and any other web browsers other than the one you’re using for the test.

To be consistent, record your maximum upload and download speeds in kilobits per second (Kb/s). If you use a speed test that displays results in megabits per second (Mb/s) then multiply your results by 1024 to convert to Kb/s.

I recommend performing a few tests from different providers, and then figuring out an average max download and upload speed for your connection based on all the tests. Later on, when you’re asked to enter your max upload and download speeds in your router’s QoS settings, I recommend using 90% of the average results from your tests. That will be a good starting place for your QoS settings that allows for network overhead and minimizes your network latency by not saturating your connection.

For example, if your speed test says you’re running at 10Mb per second:

10Mb per second x 1024 = 10240Kb per second

10240Kb per second x .9 = 9216 Kb per second

So start with 9216 Kb/s in your QoS settings. It’s always easy to go back and tweak them later.

Step 3: Enable and Configure QoS On Your Router

Most routers (or router firmwares) that support QoS allow you to set up various classes of service (also known as priorities) based a combination of any number of factors, including: IP address, MAC addresses, source and/or destination ports and/or port ranges, which physical Ethernet port on the router a device is plugged into, and more. Once the classes are set up, when multiple network resources try to use the bandwidth at the same time, the router knows how to prioritize them and give more resources to the resources you’ve told it are the most important.

So, in order to ensure maximum call quality for your 3G MicroCell, you should tell your router to assign it the highest priority or class of service so that it will always take priority over other resources. Of course, you should feel free to adjust these settings based on your own individual needs and priorities, but following is how to assign the highest priority to the 3G MicroCell.

Enabling QoS in Tomato

  1. Go to QoS then Basic Settings.
  2. Check the Enable QoS checkbox.
  3. Leave the rest of the top settings at their defaults.
  4. Under Outbound Rate/Limit, enter 90% of your maximum Upload speed in kilobits per second from your test results in the Max Bandwidth field. Leave the rest of the Outbound Rate/Limit settings at their defaults.
  5. Under Inbound Limit, enter 90% of your maximum Download speed from your test results in the Max Bandwidth field. Leave the rest of the Inbound Limit settings at their defaults.
  6. Press Save.

Configuring QoS in Tomato

  1. Go to QoS then Classification. You should see a number of default QoS settings already in place. For most situations, these are fine, but you can come back and tweak them later if you want to.
  2. Find the default blank rule at the bottom of the list (it has all the drop-downs available).
  3. In the Match Rule column, select the drop down that says “Any Address” and set it to Src MAC. Enter the MAC address of the 3G MicroCell in the field immediately to the right (if you didn’t write it down you can find it back in Step 1). Select Any Protocol in the drop down immediately below Src MAC (which should also grey out the Any Port option).
  4. In the Class column, select Highest.
  5. In the Description column, enter something like 3G MicroCell.
  6. Press Add
  7. Since your new QoS rule is at the bottom of the rules list, it could potentially be ignored if its traffic matches a rule that is higher in the list. Use the green UP arrow that appears on the right edge of your rule when you hover to move the rule to the top of the list.
  8. Press Save.

Alternatively, you could have used Src IP instead of Src MAC and entered the reserved IP address you set up previously. However, using the MAC Address allows you to change the IP reservation if you ever need to in the future, while still keeping the QoS settings intact for your 3G MicroCell.

Enabling and Configuring QoS in DD-WRT

  1. Go to the NAT/QoS tab then the QoS sub-tab.
  2. In the QoS Settings section, select Enable under Start QoS.
  3. Under Port select WAN.
  4. Leave Packet Scheduler at the default of HTB.
  5. Under Uplink (kbps), enter 90% of your maximum Upload speed inkilobits per second from your test results.
  6. Under Downlink (kbps), enter 90% your maximum Download speed from your test results.
  7. Leave the Optimize for Gaming option unchecked.
  8. Scroll down to the MAC Priority section, enter your 3G MicroCell’s MAC Address (if you didn’t write it down you can find it back in Step 1), then press Add.
  9. Under Priority select Premium.
  10. Scroll to the bottom of the page and press Save then Apply Settings.

Alternatively, you could have used the Netmask Priority instead of the MAC Priority entered the reserved IP address you set up previously. However, using the MAC Address allows you to change the IP reservation if you ever need to in the future, while still keeping the QoS settings intact for your 3G MicroCell.

If you have an older model Linksys router, you may have also been able to use the Ethernet Port Priority for the physical port that the 3G MicroCell is plugged into, however most routers models do not support this option, even if it’s displayed (read the QoS section of the DD-WRT Wiki for more details).

Step 4: Make a Test Call

If you followed the above steps exactly, your QoS should now be set up and working properly. One way to test things out is to start the download of a large file (you could try an HP printer driver or OpenOffice.org) and then make a test call. The voice quality should still be good.

If you’re using Tomato firmware, you can forget the file download test and simply select the View Graphs option under QoS then make a test call. During the call you should see the pie section for Highest under the Bandwidth Distribution (Outbound) chart grow substantially, then shrink again after you hang up. You can also click on View Details to see exactly how the QoS is working.

Congratulations! You’ve just set up QoS for your AT&T 3G MicroCell!