dr|z3d
[…Handler 2/4] …dp.PeerTestEvent: PeerTestEvent setLastTested() - v6? [✘]
dr|z3d
java.lang.Exception
dr|z3d
at net.i2p.router.transport.udp.PeerTestEvent.setLastTested(PeerTestEvent.java:168)
dr|z3d
at net.i2p.router.transport.udp.UDPTransport.locked_setReachabilityStatus(UDPTransport.java:3658)
dr|z3d
at net.i2p.router.transport.udp.UDPTransport.setReachabilityStatus(UDPTransport.java:3647)
dr|z3d
at net.i2p.router.transport.udp.PeerTestManager.honorStatus(PeerTestManager.java:606)
dr|z3d
at net.i2p.router.transport.udp.PeerTestManager.receiveTestReply(PeerTestManager.java:486)
dr|z3d
at net.i2p.router.transport.udp.PeerTestManager.receiveTest(PeerTestManager.java:671)
dr|z3d
at net.i2p.router.transport.udp.PacketHandler$Handler.handlePacket(PacketHandler.java:731)
dr|z3d
at net.i2p.router.transport.udp.PacketHandler$Handler.receivePacket(PacketHandler.java:336)
dr|z3d
at net.i2p.router.transport.udp.PacketHandler$Handler.handlePacket(PacketHandler.java:285)
dr|z3d
at net.i2p.router.transport.udp.PacketHandler$Handler.run(PacketHandler.java:219)
dr|z3d
at java.base/java.lang.Thread.run(Thread.java:833)
dr|z3d
at net.i2p.util.I2PThread.run(I2PThread.java:103)
dr|z3d
2 concurrent .iso downloads from different locations, 0 hop, SSU2, ~4MB/s
dr|z3d
5MB/s sustained for 3 concurrent .isos
zzz
faster than my results on testnet, what's the ping time between the boxes?
zzz
orignal, you have the relay tag request / relay tag blocks implemented, so if Charlie sends a request Bob will send a tag?
zzz
I have bob and charlie sides mostly done, untested
zzz
obscuratus, you have any test results from my patch?
obscuratus
zzz: It seems like it's working well. I added some debugging to make sure it's not sending out RI too often. It's spaced out well, and I'm not seeing any tunnels to unreachable peers.
zzz
super, thanks for testing
dr|z3d
ping time, over i2p or standard ping?
zzz
standard
dr|z3d
let's see..
zzz
my testnet tests were with 25 ms added delay (50 ms RTT)
dr|z3d
9 packets transmitted, 9 received, 0% packet loss, time 8013ms
dr|z3d
rtt min/avg/max/mdev = 6.655/6.764/6.939/0.083 ms
zzz
and with that I had 1.4 MBps SSU2, 2.4 MBps SSU1
zzz
thanks
zzz
so only a modest improvement with 1/8th the latency
dr|z3d
I guess that's not a bad thing
zzz
plenty of room for improvement
dr|z3d
I mean latency not impacting overall throughput, as one would hope.
dr|z3d
well, not hugely.
dr|z3d
1/4th latency I think you meant :)
dr|z3d
oh, unless 50ms RTT is the ping time, in which case nevermind.
zzz
yup
zzz
the qdisc adder is one-way
dr|z3d
ok
dr|z3d
speaking of qdiscs, default kernel codels have a max number of packets they can handle before they start dropping everything it appears. configurable, but can hurt i2p performance if you're routing a lot of tunnels.
dr|z3d
at least, that's the impression I got when I was seeing router traffic bouncing around for no apparent reason.
zzz
yeah we're too bursty, we should be more round-robin but it's hard
dr|z3d
default limit is 10K packets for fq-codel, and probably other qdiscs, so bumping the limit up is worth doing if you're hitting that limit.. htop's network IO gives you a good idea of pps.
dr|z3d
and yeah, I can't imagine round robining packets is anything but a serious challenge.
dr|z3d
just reading qdisc docs makes my head hurt :|
zzz
man tc
dr|z3d
oh, I'm familiar with tc, thanks. I get the basics, just the theory in depth kinda loses me :)
zzz
given that we have a max window size, bw should be inv. prop. to RTT. That's why I say there's more todo
zzz
* in a very-low-loss environment
dr|z3d
> /usr/sbin/tc qdisc replace dev eth0 root fq_pie limit 500000 target 30ms memory_limit 1024MB
dr|z3d
rather you than me :)
zzz
I presume your tests are java/java. You have any java/i2pd or i2pd/i2pd results?
zzz
I don't recall if orignal did any
dr|z3d
no, nothing on the i2pd front, sorry.
dr|z3d
R4SAS perhaps..
zzz
or stormy
dr|z3d
unlikely
zzz
fyi I got a exit.stormycloud.i2p registration yesterday
dr|z3d
yeah, I helped stormy register the sub.
dr|z3d
we've also got a competent looking website now. exit will be the outproxy proper, top level is the website.
dr|z3d
switched the keys around.
zzz
ok
zzz
is my feature/test list helping at all?
dr|z3d
I guess, it was a good reference point of what you think's needed, though I think we've got it all pretty much covered.
dr|z3d
it's by and large the same setup as purokishi with some notable differences, so it's already road tested.
zzz
ok guess we're on the same page then
dr|z3d
yeah, I think we're good. I don't think there's anything outstanding on your list tbh, from what I recall. error handling it what it is, and for the most part, over the browser takes over.
zzz
does server side i2ptunnel add the x-i2p headers to CONNECT ?
dr|z3d
I don't believe so, should it?
zzz
dunno, I assume if it didn't and you needed it for logging you would ask
dr|z3d
oh, wait, hang on.
dr|z3d
you're asking if we can see the dest of the client connecting at the router end of the deal?
zzz
I'm fuzzy on the CONNECT stuff
zzz
at the external proxy software
zzz
is i2ptunnel adding x-i2p headers for https CONNECT like it does for http GET
dr|z3d
i2ptunnel, sure.
dr|z3d
proxy, we're not logging, not much need there.
zzz
ok
dr|z3d
and i2ptunnel logging is temporary.
dr|z3d
the intention is no logging.
dr|z3d
in my experience, if i2ptunnel's inserting x-i2p headers, then assuming the backend server supports viewing those headers, they're visible.
dr|z3d
in nginx, for example, you just add custom headers to your logging config and you've got the b32 or whatever you want.
zzz
how can stormy do any admin without logging?
dr|z3d
what did you have in mind, admin-wise?
zzz
to detect and combat any ddos or abuse you'd need logs
zzz
I get the intention but is it practical?
dr|z3d
well, throttle and access filters should cover most angle.
dr|z3d
that's yet to be determined :)
dr|z3d
for the most part I haven't had an issue on purokishi, well, not many. not enough to warrant logging.
dr|z3d
admittedly I'm probably running a slightly tighter ship than stormy given the dns-level blocking, but still.
zzz
so you do have logging on the dns?
dr|z3d
24hr logging, sure.
dr|z3d
as indicated on outproxy.purokishi.i2p :)
zzz
I'm just saying 'zero logging' might be an overpromise, although 'after public beta' is an out
dr|z3d
gives me enough time to notice false positives on the blocking front.
dr|z3d
sure, valid point. I guess stormy's working on the same basis he runs his tor exits.
dr|z3d
there, suitable qualifier added.
dr|z3d
did you catch the lang exception I posted earlier, zzz?
dr|z3d
debug level, so nothing concerning?
zzz
yes that's generic, 1 or 2
dr|z3d
ok, thought so, just thought I'd paste just in case.
zzz
I haven't even started looking for results yet
zzz
java.lang.NullPointerException: Null arguments for HMAC <-- ever seen that?
dr|z3d
not to my recollection, but I may have :)
zzz
holler if you do
dr|z3d
will do
orignal
zzz I have tried to send peer test to you
orignal
to you router from ipv6
orignal
do you see it?
orignal
zzz all relays are supposed to work
orignal
not sure if it works properly
orignal
oh wait?
orignal
what is relay tag?
orignal
I only have relay request, relay response and relay intro
orignal
will check
zzz
orignal, stand by, I got the peer test but it crapped out
zzz
re: relay tag request block, yes that's how it's set up to get a tag back
orignal
yes I know it's crapped out
orignal
just wondering what exactly
zzz
crapped out on my side, investigating now
orignal
I will implement tag request
orignal
no problem
orignal
was busy with peer test
zzz
Caused by: net.i2p.data.DataFormatException: Bad PEERTEST number: 0
zzz
should be 1-7
orignal
oops ))
orignal
I forgot you start from 1 not from 0 ))
zzz
yeah because we already had SSU 1 documents numbering them 1-7 so it was easier on my brain :)
orignal
unfortually niether C no C++ support ranges
zzz
you're a smart guy, I have faith you'll find a way ))
orignal
even old Pascal had them ))
orignal
btw, afaik Go doesn't have it either
zzz
I did some Pascal in college
orignal
rememebe it's like "type msg=1..7";
orignal
and you cann't assign 0 to varibale of that type
zzz
good memory for you. I don't remember a thing
orignal
maybe not exacly but something like this
zzz
turning on peer test debug logging so I'll be ready for next time
zzz
just use an enum starting at 1
orignal
С++ doesn't check even type compatibuiility
orignal
well it does but it's a new keyword added since probably C++17
orignal
same problem as with C
orignal
you can define enum but you can assign anything
orignal
next run of peer test
orignal
sent and nothing back
zzz
stand by
zzz
06-02 21:47:49.928 WARN [ handler 1/1] .transport.udp.PeerTestManager: Bad version 113 from [2001:
zzz
should be 2
zzz
spec says
zzz
ver :: 1 byte SSU version to be used for messages 5-7:
zzz
but I'm checking it for all messages
orignal
hmmm
zzz
it's not worded very well
orignal
I set it to 2
orignal
signedData[0] = 2; // ver
zzz
but the idea is that it's in all messages
orignal
anyway I will check
orignal
maybe wrong layout
zzz
msg, code, flag, 32 byte hash, ver
zzz
I'll double check also
orignal
have to run for 2 hours
orignal
will continue tonight
zzz
ok, have fun
orignal
msg, code, flag, hash, ver
orignal
nonce, ts
zzz
wait
orignal
sure
zzz
hash is only in messages 2 and 4
orignal
thanks
orignal
that's why
orignal
will fix it
orignal
*** ask ***
orignal
afk
zzz
I'll fix the picture
zzz
later
orignal
an yes I handle relay tag request on Bob's side