PDA

View Full Version : Possible solution to cross-subnet video transfers...



Maeglin
12-06-2006, 11:56 AM
...but I need some help in testing it.

Over the last week I've been working on a way to forward TiVo beacon and Multicast DNS packets across subnets in a complex home network (mine has 3 subnets, so I guess this proves necessity is the mother of invention :) ). I finally have something resembling a finished product, and it does forward packets properly (TiVo Desktop has shown that it can see the TiVo), but I can't do any testing beyond that until the S3 has video transfer capabilities and even a thorough test is impossible without a second box.

What I'm here asking is if anyone has such a setup or can set something like that up, and has any interest in testing this thing out. The program was developed on Linux, but should work with most Unix-ish machines (I've made the source code as portable as I can). The test scenarios I'd need tested would involve a transfer-capable S2 on either side of a router (on different subnets) and a computer on one side running TiVo Desktop. If, using the program, transfer between any two of them (a total of 6 possibilities to test) becomes possible, I'd consider it a success.

I've already tested the Multicast DNS side pretty thoroughly (I have a Roku SoundBridge as well which is pretty darned picky when it comes to that), so you wouldn't need to worry about that. I'd just need to see if transfers actually work if things can see each others TiVo discovery beacons.

If anyone can and will try this out, and help me get the testing done that I need to do before an official release, let me know and I'll PM a download link.

Thanks!

TerminalE
12-17-2006, 11:03 PM
I too have a multi-subnet network setup with *nix, W2K DC's, etc. I have had luck with forwarding broadcast traffic across subnets and TivoDesktop is showing the tivo on the remote subnet but haven't had a chance to test it yet. Of course I just started playing with this last night.

PM me and I'll compile the source and test!
TerminalE

ronnythunder
12-18-2006, 10:30 PM
i've already created a program to do this based on a ruby script created by someone here (sorry, can't remember who). i might release it some day, but it's somewhat rough right now.

it's basically just a specialized "tunnel" program that i run on a windows or linux box at each end, and the pc posts listens on the right ports and shuttles stuff back and forth. the ruby script created threads for each connection (several are required as you probably know); being a 17 year systems programmer doing event driven software, i did it in non-blocking mode using select(). it's very compact, portable (c only, no c++, no java, no threads, no scripting) and has a low memory footprint.

good luck with your project!

ronny

Maeglin
02-12-2007, 04:35 PM
It's out of the bag now:
http://www.smittyware.com/linux/tivobridge/

I still haven't managed to get anyone to confirm that it allows video transfers across subnets, and only having an S3 I can't test that myself, but I can confirm that it does what it's designed to do (TiVo Desktop sees my S3, the S3 sees Galleon, and my SoundBridge sees the music server on my Linux box). If anyone can confirm that transfers work, though, please let me know.

ronnythunder
02-12-2007, 06:13 PM
unless there's something i'm missing, i don't think it will work for mrv. the mrv setups occur on 2191/tcp and the data transfer happens on 2300/tcp (there are some odd exceptions, but those are the main ports). this code doesn't seem to provide tunnel capabilities for those ports.

looks like it could be built on fairly easily, though. the problem i ran into is that you have to have an ip address on your local net for every remote tivo that you want to address. for example, if i have 5 tivos and my buddy has 6, i have to have 6 ip addresses on my side to be able to "map" to his boxes, and he has to have 5 to map to mine. both linux and windows have simple ways to add "virtual" adapters to one physical adapter, so i went that route. my tunnel then listens on the configured virtual adapters and passes data to the tunnel prog on the other side.

ronny

Maeglin
02-12-2007, 08:33 PM
unless there's something i'm missing, i don't think it will work for mrv. the mrv setups occur on 2191/tcp and the data transfer happens on 2300/tcp (there are some odd exceptions, but those are the main ports). this code doesn't seem to provide tunnel capabilities for those ports.
It's not designed to tunnel TCP traffic... that's not the intent. It forwards UDP traffic for discovery only, and assumes that there's already a routed network there to carry TCP once both ends know where to find each other. If it works with HME in that regard, which it does, I don't see why it couldn't work with MRV/TTG/TTCB, but I have no way to fully test it. TiVo Desktop will at least bounce an HTTP request off of the S3, but obviously it doesn't get anywhere because video transfer is currently disabled for that model.

hacker_chip
09-26-2007, 12:19 PM
If anyone can confirm that transfers work, though, please let me know.

I'm building it for OpenWRT today and will be able to test MRV this weekend across a VPN. I'll report status back.

If you will make it available for download via a direct link that wget can understand I'll publish the package for inclusion to OpenWRT.

Maeglin
09-27-2007, 12:04 PM
The normal download link is workable with wget, as long as you do the proper escaping of the query string. If you don't want to mess with that, though, then this should work...

http://www.smittyware.com/linux/tivobridge/openwrt.php

It redirects to the latest tarball at the time, which wget can handle.

hacker_chip
09-27-2007, 05:07 PM
It builds great with OpenWRT. I've attached the build package for use with OpenWRT buildroot or SDK. I'll also submit this for inclusion to OpenWRT.

I'll be testing it in the next couple days as I put my hacked Tivo's in place.

hacker_chip
10-01-2007, 12:09 PM
I have tivobridge running at both ends of my VPN now and the broadcast packets are making to all the TiVos, however only the local TiVo still shows up in the Now Playing list.

I've confirmed with out a doubt the broadcasts are making it by putting tcpdump on all my TiVos and even executing "iptables -F" to make sure the TiVo didn't have a firewall dropping the packets.

My guess is MRV is rejecting packets outside of it's subnet.

It looks like my next step is to convert my VPN from routed to bridged if I want to get this to work.

ronnythunder
10-01-2007, 12:33 PM
i can confirm that tivo rejects everything not from it's own subnet. bridging makes things stickier obviously.

ronny

Maeglin
10-24-2007, 03:38 PM
That's odd, because I was able to successfully transfer from the Tivo to my laptop last night (now that they've turned it on for the HD models) with no problems at all, and they're on separate subnets. I haven't tried transferring anything TO the box yet, but if the mechanisms for MRV and TTG transfers are as similar as they seem to be... unfortunately, I don't have a 2nd box to try MRV with.

Of course, there's always the gotcha that both sides have to have the same Media Access Key for things to work.

I do know that the Tivo (at least with current versions of the software) will accept beacon packets from other subnets, as it once discovered my Linux server from two subnets away and listed it in the HME menu.

ronnythunder
10-24-2007, 03:51 PM
the beacon isn't the problem - it's the actual tcp based transfer code. it won't do transfers between machines on different subnets.

as for the mak, this would only be an issue with unhacked boxes, and even then, i don't think the mak is related to mrv; i think it's ttg only.

ronny