Wanpipe Linux Wan /API FAQ
Wanpipe is connected to a remote cisco router via Frame Relay, the Pings work, but why do HTTP and DNS requests fail?
Why does Running Zebra OSPF over WANPIPE produce inactive routes?
How do I enable ip_forwarding on RedHat 8.0 and greater?
How do I loadbalance multiple T1/E1/56K Wanpipe lines?
How to bind an irq to a single or multiple CPUs?
Wanpipe interfaces don't come up on wanrouter start?
Q1. Wanpipe is connected to a remote cisco router via Frame Relay, the Pings work, but why do HTTP and DNS requests fail?
A1. Make sure that Frame-Relay payload compression is OFF on the Cisco Router.
Q2. When Running Zebra OSPF over WANPIPE, when I start zebra, OSPF has inactive routes, why?
A2. If OSPF comes back with inactive routes, problem lies with the wanpipe netmask address.
The Netmask address has to be set to
255.255.255.255 for pointopoint links.
Q3. How do I enable ip_forwarding on RedHat 8.0 or greater?
A3.
Edit /etc/sysctl.conf
To enable ip forwarding on boot up set variable
net.ipv4.ip_forward to 1.
net.ipv4.ip_forward = 1
Q4. How do I loadbalance multiple T1/E1/56K WANPIPE® lines?
A4: Linux offers numberous ways to loadbalance multiple WAN lines.
Available Options: TEQL, PPP Multilink, IPROUTE2
TEQL: Round robin packet equalization between multiple links.
Refer to README.loadbalancing
PPP MULTILINK: True loadbalancing protocol.
However, MULITLINK protocol must be supported by both sides of the link.
Refer to README.multilink
IPROUTE2: Equal Cost Multi-Path routing. Attaches weights to each path,
useful when two lines are not the same baud rate.
Q5. How do I bind an irq to a single or multiple CPUs?
A5. SMP Affinity Bit Map
The /proc/irq directory contains all available IRQ's. Each IRQ directory contains a irq to cpu mapping file called 'smp_affinity'. For example to view irq to cpu mapping for irq 20 (irq 20 is a virtually mapped irq):
cat /proc/irq/20/smp_affinity
(eg: output) ffffffff
The smp_affinity contains the CPU bitmap. Each bit is used to enable or disable a specific CPU.
eg: bit 1 : enables/disables CPU0
bit 2 : enables/disables CPU1
... etc
By default, for all IRQ's all CPUs are enabled. As we can see from
the above smp_affinity output (ffffffff) all CPUs are enabled.
NOTE: One first 8 bits are used. i.e. XXXXXXff (X is not used)
Bind IRQ 20 to CPU 0
echo 1 > /proc/irq/20/smp_affinity
Bind IRQ 20 to CPU1
echo 2 > /proc/irq/20/smp_affinity
Bind IRQ 20 to both CPUs
echo 3 > /proc/irq/20/smp_affinity
A good idea would be to bind eth0 irq and wanpipe irq to a different CPUs. By running a interrupt on a single CPU instead of multiple CPUs a cache coherency can be improved, thus a boost in performance can be achieved by reducing cache misses.
Note: if you are runing irqbalance daemon, the smp_affinity will be overwritten by irqbalance daemon.
Q6. Wanpipe interfaces don't come up on wanrouter start?
A6.
Problem: HOTPLUG
The hotplug driver, automatically starts up the
interface and then brings it down. This conflicts
with our driver.
Possible Solutions:
1) Insert wanpipe interface name into the hotplug
interface list, and restart hotplug.
vi /etc/hotplug/net.agent
Insert wanpipe interface name into
the ignore list:
...ppp*|lo*|w*)
Where w* relates to all wanpipe interfaces
starting with letter "w"
|