Third-party schemes importing

54 views
Skip to first unread message

李锤子

unread,
Sep 18, 2021, 6:38:38 AM9/18/21
to Pantheon
Hi,
    I'm an engineer from China. Pantheon is indeed a good platform, and it really benefits my work. But I met some problems when importing my congestion control schemes.
    The background is that I have finished my demo which runs well between client and server. I can watch the flows using "nload".
    But when I import it into pantheon, it can only works for little time. Like these below, it seems client or server didn't work after little time which really confuse me.
791631869866_.pic.jpg1021631875417_.pic.jpg

李锤子

unread,
Sep 18, 2021, 6:45:58 AM9/18/21
to Pantheon
截屏2021-09-18 下午6.45.32.png

Francis Y. Yan

unread,
Sep 19, 2021, 6:59:51 PM9/19/21
to 李锤子, Pantheon
Hello -- Thanks for your email!

Did you follow our instructions at https://github.com/stanfordsnr/pantheon#how-to-add-your-own-congestion-control? Please make sure your sender and receiver wrappers (in src/wrappers) function correctly first, and then manually follow the commands (such as running mm-tunnelserver/mm-tunnelclient) printed as log messages in your terminal until you can locate the issue.

Best,
Francis

--
You received this message because you are subscribed to the Google Groups "Pantheon" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pantheon-stanf...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pantheon-stanford/cf4893ea-1310-4d00-9eae-62b7b7e69033n%40googlegroups.com.

李锤子

unread,
Sep 19, 2021, 11:37:14 PM9/19/21
to Pantheon
Hi,so glad to receiver your reply.
When I run ' src/experiments/test.py local --schemes "mycc" -t 10 ',I think it work well, but when I draw the graphs it shows that 
" Warning: "tunnel_graph /home/pantheon/src/experiments/data/democc_datalink_run1.log" had duration 1.96 seconds but should have been around 10 seconds. Ignoring this run. "

And the method I import my cc is that I add my excutable client and serve file into /third_party. My wrapper file is like this:

def main():
    args = arg_parser.receiver_first()
    sys.stderr.write('[demo] start demo.py, args = %s\n' % args)
    cc_repo = path.join(context.third_party_dir, 'demo')
    send_dir = path.join(cc_repo, 'client')
    recv_dir = path.join(cc_repo, 'server')
    send_src = path.join(send_dir, 'client')
    recv_src = path.join(recv_dir, 'server')

    if args.option == 'receiver':
        cmd = [recv_src, args.port]
sys.stderr.write('[demo] cmd to run receiver: %s\n' % cmd)
        check_call(cmd)
        return

    if args.option == 'sender':
        cmd = [send_src, args.ip, args.port]
sys.stderr.write('[demo] cmd to run sender: %s\n' % cmd)
        check_call(cmd)
        return

And without using pantheon-tunnel, I run my client and server well when using local terminal (client sends packets, and server responses ack...). So I suspect if my demo CC doesn't match the tunnel.
I want to know whether the tunnel server can response the packets through the tunnel to client side.

Best
Carlos

Francis Y. Yan

unread,
Sep 30, 2021, 3:09:28 PM9/30/21
to 李锤子, Pantheon
Hi Carlos,

When I run ' src/experiments/test.py local --schemes "mycc" -t 10 ',I think it work well, but when I draw the graphs it shows that
Hmm it doesn't sound like a successful run if the log indicates a 2-second duration. You might have to use tcpdump to verify if there is actually traffic going through the Pantheon-tunnel.

Specifically, when you run `mm-tunnelserver` in one terminal and execute its output in another terminal (something like "mm-tunnelclient localhost XXX 100.64.0.2 100.64.0.1"), a Pantheon-tunnel will be established. Then you could run tcpdump inside/outside the tunnelserver/tunnelclient, which gives you four .pcap files. You could verify if your sender is sending traffic to the `tunnel` interface constantly and if the packets are dropped by it (I can't think of any reason why this could happen). Then see if the other end of the tunnel receives packets correctly and forwards them to your receiver.

Best,
Francis

Reply all
Reply to author
Forward
0 new messages