Linux: bridging for the Ceton card

unhappy_mage

[H]ard|DCer of the Month - October 2005
Joined
Jun 29, 2004
Messages
11,455
I have a Ceton 4-tuner card in my ESXi virtual environment. It's PCI passthrough-ed to an Ubuntu VM, which has the linux drivers installed. I have the following in my /etc/network/interfaces:
Code:
$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
allow-hotplug ctn0
iface ctn0 inet static

auto br0
iface br0 inet dhcp
        bridge_ports eth0 ctn0
        bridge_fd 10
        bridge_stp off
When the system comes up fresh, ifconfig shows this:
Code:
$ ifconfig -a
br0       Link encap:Ethernet  HWaddr 00:0c:29:14:6f:82
          inet addr:192.168.0.22  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe14:6f82/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:194 errors:0 dropped:0 overruns:0 frame:0
          TX packets:45 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:53761 (53.7 KB)  TX bytes:6661 (6.6 KB)

ctn0      Link encap:Ethernet  HWaddr 6a:4b:0c:14:25:d2
          inet6 addr: fe80::684b:cff:fe14:25d2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:422 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:149586 (149.5 KB)  TX bytes:1014 (1.0 KB)
          Interrupt:18

eth0      Link encap:Ethernet  HWaddr 00:0c:29:14:6f:82
          inet6 addr: fe80::20c:29ff:fe14:6f82/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:67 errors:0 dropped:0 overruns:0 frame:0
          TX packets:185 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:7509 (7.5 KB)  TX bytes:56487 (56.4 KB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
and brctl show:
Code:
$ brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.000c29146f82       no              ctn0
                                                        eth0
So the bridge seems to be up, and I can ping the Ceton card (192.168.0.23) from the VM. However, it doesn't seem to be getting any traffic through to it from other machines. Everything's on 192.168.0.0/24, and from another machine on the network, I can ping the VM, but not the Ceton card.

Suggestions? How do I debug this?
 
An interesting point: arp on other machines on the network sees the Ceton card. Here's a ping request from newly booted FreeBSD VM:
Code:
vm$ tcpdump -i br0 \( arp or icmp \)
ARP, Request who-has ceton.midgard tell 192.168.0.224, length 46
ARP, Reply ceton.midgard is-at <mac> (oui Unknown), length 28
No ICMP packets get through, but the ARP request does.

Also of possible interest: I have a "smart" switch, a Linksys SRW-2024. Might I have to mess with its configuration?
 
i tried the same thing. after i got it working live tv did not work for a long period of time. If possible.. get the USB version. PCI-e version was hard for pass through.
 
i tried the same thing. after i got it working live tv did not work for a long period of time. If possible.. get the USB version. PCI-e version was hard for pass through.

Did it eventually start working? How do you have the USB version hooked up? Was it easier to configure with Linux?
 
Okay, the Linksys switch knows where to send packets for that address. The system->forwarding database has multiple entries for the port the VM server is on, and one is the Ceton card's MAC.

Aha! The problem seems to be that the vSwitch is allowing packets to VMs by the MAC address it expects, so it's dropping the traffic that should go to the bridge inside the VM. The hit-it-with-a-big-stick solution is to set the vSwitch to allow promiscuous mode:
host->configuration->networking->vSwitch0 Properties->Internal (or the name of your network)->Edit->Security->Promiscuous Mode->Check box, and select "Accept" from dropdown.

Next question: how can I make the switch allow only the two MAC addresses to the one VM? I'd rather not allow promisc on all the machines just for this.
 
turn on promiscuous mode on the vswitch portgroup
edit: Oh, you don't want to do that. Put them on a separate portgroup (vm network) with prom enabled :) Leave the others on a normal portgroup without it enabled.

Or upgrade to a nexus. Sadly, the vswitch doesn't have any control for that on a standard vswitch.
 
turn on promiscuous mode on the vswitch portgroup
edit: Oh, you don't want to do that. Put them on a separate portgroup (vm network) with prom enabled :) Leave the others on a normal portgroup without it enabled.
Nice, that works perfectly. Thanks!
 
im interested in knowing how your setup is working.

My issue was that i could not stream more then 5 minutes of live TV. Getting the card to be seen by windows was the easy part.... But when the xboxes tried to use the card is where I had my issues...

OP: Whats your setup like and how stable is it?
 
im interested in knowing how your setup is working.

My issue was that i could not stream more then 5 minutes of live TV. Getting the card to be seen by windows was the easy part.... But when the xboxes tried to use the card is where I had my issues...

OP: Whats your setup like and how stable is it?

I haven't had time to set up an extender yet (my non-virtual HTPC's power supply just died :( and I haven't managed to get the Ceton reset so I can set it up with the virtual WMC). However, I did stream TV for a solid two hours the other day with no hiccups. It only works over wired network (watching tcpdump, it seems to try streaming the video at the access point rather than the wireless client), but aside from that TV worked impeccably during the test.

So, in the one test I ran, I had no issues.
 
are you using an Intel processor or AMD?

why did you decide to connect the card to a Linux host verse a str8 up windows VM?

Lastly.. I assume the device you streamed the tv too was a windows computer that saw the tuner on the network via ceton's new network driver's?
 
are you using an Intel processor or AMD?
AMD Opteron 4170.
why did you decide to connect the card to a Linux host verse a str8 up windows VM?
The Digital Cable Advisor thing said my VM wouldn't be able to get digital TV. I may revisit this now that I've found one can override the DCA.
Lastly.. I assume the device you streamed the tv too was a windows computer that saw the tuner on the network via ceton's new network driver's?
Yep. Windows 7 laptop. I dedicated a tuner to its use.
 
Back
Top