My xbox proxy doesn't know anything about anything above layer 3 with
respect to xbox system link. This means you don't need to know anything
either, if you want to write a proxy.
All traffic from the xbox comes from IP 0.0.0.1. The general idea is that I
take the entire layer2 (ethernet) packet and send it in an UDP packet to
another proxy. That proxy receives it and dumps it, unchanged, on the
remote network. That's it. That's the whole deal.
Let me reiterate. It doesn't matter what happens above the UDP layer. You
don't care. The proxy just forwards the raw packets, and your xbox gets
them unchanged. Works like a charm and is game agnostic.
This works through the magic of switches learning mac addresses. Your local
network starts to learn that all of the remote xboxes are coming from your
machine. The xboxproxy itself also tries to be a bit smarter. It learns
which mac addresses (xboxes) are coming from what proxies and only sends
unicast packets to the correct proxy housing that xbox.
That's pretty much all of the proxy. It could be done in much fewer lines
in Java or Python (Scapy for example) becuase 70% of the code is just
setting up and managing the list of known proxies and xboxes as well as
fancy packet checking. I'm reasonably certain that if you were to implement
my xboxproxy in scapy, it would be around 20 lines of code if not less.