hiren (hiren panchasara)
User

Projects

User Details

User Since
May 16 2014, 9:03 PM (209 w, 6 d)

Recent Activity

Thu, May 10

hiren added a comment to D15373: Patch to dummynet to allow simulation of compressed ack's.

This will be quite useful! Thanks.

Thu, May 10, 6:46 PM

Wed, May 2

hiren added a comment to D14993: Add a limit on how long TCP data can live at the head of the output queue.

tcp(4) manpage needs to be updated.

Wed, May 2, 8:23 PM

Apr 12 2018

hiren accepted D15020: Add of high-precision-timer-system used by rack and bbr for pacing. Also sync up the function block differences needed by bbr/rack..

Thanks a lot for the usage writeup. And yep, I do understand that we need to get this in so RACK/BBR can follow. Good that this can be used with default stack so there is some way to test/use this functionality before RACK/BBR comes in.

Apr 12 2018, 5:40 PM

Apr 11 2018

hiren added a comment to D15020: Add of high-precision-timer-system used by rack and bbr for pacing. Also sync up the function block differences needed by bbr/rack..

Thanks for this work!
I can see some good comments in the code but if there is a general design doc or excerpt on pacer, it'd be nice to add that in the beginning of tcp_hpts.c

Apr 11 2018, 8:59 PM

Feb 28 2018

hiren resigned from D14141: fix underflow for cubic_cwnd().

I don't have time to look at this the way I intended. :-)
Removing myself as a reviewer/blocker so others can decide.

Feb 28 2018, 7:48 PM

Feb 9 2018

hiren requested changes to D14141: fix underflow for cubic_cwnd().

@jason_eggnet.com why did you move K calculation from post recovery to ack received? I don't think that's correct.

So basically, why not delay the calculation of K until right before it is needed. Use the previous value of K if neither of the inputs have changed.

Feb 9 2018, 6:33 PM
hiren added a comment to D14141: fix underflow for cubic_cwnd().

@jason_eggnet.com why did you move K calculation from post recovery to ack received? I don't think that's correct.

Feb 9 2018, 1:10 AM

Feb 5 2018

hiren accepted D14141: fix underflow for cubic_cwnd().

BTW, I am okay with this bandaid fix for now.

Feb 5 2018, 6:16 PM
hiren added a comment to D14141: fix underflow for cubic_cwnd().

I remember this one. :-)
jegg, can you please elaborate on 'cwnd < 1smss bad for other parts of the code' part?
Thanks.

A zero cwnd can cause infinite looping (i.e., continual goto again; looping) within tcp_output(). Technically even one byte would be ok but there's no real point to having the cwnd be some fractional mss value.

In general the concept of having a zero cwnd doesn't make any sense.

Feb 5 2018, 6:11 PM
hiren added a comment to D14141: fix underflow for cubic_cwnd().

I remember this one. :-)
jegg, can you please elaborate on 'cwnd < 1smss bad for other parts of the code' part?
Thanks.

Feb 5 2018, 5:59 PM
hiren accepted D14048: Modify handling of TCP_RFC7413 (TFO) kernel option.

People wanting to disable tfo (for whatever reasons) may have different opinions but looks good to me on a quick glance. Thanks.

Feb 5 2018, 5:52 PM

Jan 2 2018

hiren added a comment to D13718: TCP Fast Open (TFO) [RFC7413] Client-side Implementation.

Awesome! Thank you for this work!

Now, sorry to be a PITA but you should separate out this into 3 reviews: 1) fast-open ON by default removing TCP_RFC7413 2) Bug fix for the issue in tcp_fastopen_check_cookie() 3) Client side TFO implementation.

I can do this I suppose, although I have to say it's hard for me to see the value in doing it as (2) and (3) seem pretty easy to evaluate in the current patchset, as (2) consists of moving a lock acquisition earlier in a small function and ensuring release on all the exit paths, and (3) is the mechanical removal of #ifdefs and the related rename of a kernel option that is used in one place. Perhaps because I don't think I fully understand the practical motivation for this separation, I'm also not sure whether or not it matters how I synthesize the new versions of the code - should they all be independent diffs against -current (which seems weird as it can hide interactions between the changes from review), or is there some preferred sequence (should the locking bug be presented as happening before or after all the other changes to same function)?

Jan 2 2018, 6:16 PM

Jan 1 2018

hiren added a comment to D13718: TCP Fast Open (TFO) [RFC7413] Client-side Implementation.

Awesome! Thank you for this work!

Jan 1 2018, 7:32 AM

Dec 17 2017

hiren accepted D13514: Fix netstat reporting of accepted TCP/IPv6 connections when net.inet6.ip6.v6only=0.
Dec 17 2017, 4:29 AM

Oct 19 2017

hiren accepted D12639: Enable VIMAGE by default.
The benchmarks we do have so far show a rather small regression
Oct 19 2017, 5:51 PM

Jun 20 2017

hiren accepted D11016: Add a sysctl to toggle the use of the sockets LOWAT when calculating auto window growth.

I know this has been in prod for quite some time and works. I don't want to engage in "best-practices" for this. :-) LGTM.

Jun 20 2017, 6:12 PM

Jun 6 2017

hiren added reviewers for D11003: Load balance sockets with new SO_REUSEPORT_LB option: adrian, eri.

I am not too sure on details but can this be done with PCBGROUPS/RSS? https://github.com/erikarn/freebsd-rss/ has some examples.

Jun 6 2017, 12:14 AM

May 26 2017

hiren added a reviewer for D10943: Static analysis: Improve DAD deletion code: hrs.
May 26 2017, 10:12 PM

May 25 2017

hiren updated subscribers of D10894: Hystart.

It'd be nice to have a bit of a writeup on what hystart is and how its implemented here.

May 25 2017, 6:41 PM

May 17 2017

hiren accepted D10769: Revert MFC of r313045 from stable/10.

Do mention stable/10 rev also in your commit.

May 17 2017, 5:21 PM

Apr 26 2017

hiren updated subscribers of D10514: Introducing sleepable locks into if_lagg.
Apr 26 2017, 5:45 PM

Apr 20 2017

hiren accepted D10424: Ignore TCP SYN-ACK segments with non-matching SEG.ACK in SYN-SENT state.

Thanks for the explanation. Change looks correct to me just that the code is a bit muddied with this single check moving elsewhere (for the right reasons) and a bit more code duplication in alt stack code. But I think those are out of the scope of this patch.

Apr 20 2017, 8:26 PM
hiren added a comment to D8803: Increasing Virtio driver TX scatter gather segments (VTNET_MIN_TX_SEGS) to support JUMBO MTU frames..

@bryanv do you have time to look at this now?

Apr 20 2017, 6:44 PM

Apr 19 2017

hiren added a comment to D10424: Ignore TCP SYN-ACK segments with non-matching SEG.ACK in SYN-SENT state.

I observed the bug by using a SYN-ACK without any options. The retransmitted SYN does not contain the SACK option anymore. So it wasn't retransmitted.

Apr 19 2017, 12:28 AM

Apr 18 2017

hiren added a comment to D10424: Ignore TCP SYN-ACK segments with non-matching SEG.ACK in SYN-SENT state.

For my understanding, what is the side-effect of this 'partial processing' before we eventually drop it? (I assume we do drop it but later in the path, right?)
Not against the patch but trying to understand what is driving this fix. :-)

Apr 18 2017, 8:54 PM

Apr 14 2017

hiren accepted D10388: ICMP6 rate-limit enhancements.

Very nice work! Thank you.

Apr 14 2017, 3:39 PM

Apr 13 2017

hiren accepted D10351: Restore ability to shutdown datagram sockets.

Other than it not being able to build, I like the var name change requested by Robert and the general approach.

Apr 13 2017, 4:58 PM

Mar 27 2017

hiren accepted D10135: Enable route and LLE (ndp) caching in TCP/IPv6.
Mar 27 2017, 6:58 PM

Mar 7 2017

hiren committed rS314838: Fix the KASSERT check from r314813..
Fix the KASSERT check from r314813.
Mar 7 2017, 6:46 AM
hiren committed rS314813: We've found a recurring problem where some userland process would be.
We've found a recurring problem where some userland process would be
Mar 7 2017, 12:20 AM

Jan 31 2017

hiren requested changes to D9365: Porting utility getaddrinfo from NetBSD.
In D9365#194220, @ae wrote:

I'm curious, you plan to add this code into FreeBSD base tree, not into the contrib section. Do we need to have all these #ifdefs in such case? I doubt that we have all such HAVE_XXX macros defined in our environment. Also we already have removed AppleTalk support from the tree.

Jan 31 2017, 7:58 PM
hiren accepted D9365: Porting utility getaddrinfo from NetBSD.

I'd appreciate another pair of eyes on this.

Jan 31 2017, 7:34 PM

Jan 30 2017

hiren committed rS312976: Man page update to go along with r312907..
Man page update to go along with r312907.
Jan 30 2017, 2:26 AM

Jan 28 2017

hiren updated subscribers of D9365: Porting utility getaddrinfo from NetBSD.
Jan 28 2017, 7:25 AM
hiren added a reviewer for D9365: Porting utility getaddrinfo from NetBSD: vangyzen.
Jan 28 2017, 7:25 AM

Jan 27 2017

hiren committed rS312907: Add a knob to change default behavior of inheriting listen socket's tcp stack.
Add a knob to change default behavior of inheriting listen socket's tcp stack
Jan 27 2017, 11:10 PM

Jan 23 2017

hiren edited reviewers for D9302: Eliminate misleading comments and dead code in lacp_port_create(), added: asomers; removed: hiren.
Jan 23 2017, 2:15 PM

Jan 16 2017

hiren committed rS312277: Add kevent EVFILT_EMPTY for notification when a client has received all data.
Add kevent EVFILT_EMPTY for notification when a client has received all data
Jan 16 2017, 8:25 AM
hiren closed D9150: Add kevent EVFILT_EMPTY for notification when a client has received all data by committing rS312277: Add kevent EVFILT_EMPTY for notification when a client has received all data.
Jan 16 2017, 8:25 AM

Jan 12 2017

hiren resigned from D9150: Add kevent EVFILT_EMPTY for notification when a client has received all data.

Can't actually review as an author of the patch. It'd be nice if someone else can look at it.

Jan 12 2017, 6:44 AM
hiren committed rS311955: MFC r311453.
MFC r311453
Jan 12 2017, 12:51 AM

Jan 6 2017

hiren added a comment to D4227: Implement per-thread counters for PMC sampling.

bump.
Is this still the most updated patch of this work?

Jan 6 2017, 11:25 PM

Jan 5 2017

hiren committed rS311453: sysctl net.inet.tcp.hostcache.list in a jail can see connections from other.
sysctl net.inet.tcp.hostcache.list in a jail can see connections from other
Jan 5 2017, 5:22 PM
hiren retitled D9047: sysctl net.inet.tcp.hostcache.list in a jail can see connections from other jails and the host. Proposed patch fixes that. from to sysctl net.inet.tcp.hostcache.list in a jail can see connections from other jails and the host. Proposed patch fixes that..
Jan 5 2017, 7:20 AM

Jan 4 2017

hiren committed rS311297: MFC r309858.
MFC r309858
Jan 4 2017, 6:03 PM
hiren accepted D9035: Protect calls to mtod() from accessing NULL mbufs.
Jan 4 2017, 2:11 AM

Jan 3 2017

hiren added a comment to D9035: Protect calls to mtod() from accessing NULL mbufs.
In D9035#186666, @gnn wrote:

I could make an uglier macro. If that would please the audience.

Jan 3 2017, 9:02 PM
hiren updated D9035: Protect calls to mtod() from accessing NULL mbufs.
Jan 3 2017, 8:58 PM
hiren added a comment to D9035: Protect calls to mtod() from accessing NULL mbufs.

Is it possible to handle 'm' being null in TCP_PROBE3() instead of these if/else checks everywhere?

Jan 3 2017, 8:58 PM

Dec 15 2016

hiren added a comment to D8667: Fix the handling of FIN segments in the CLOSED state.

Hi Michael, Is this ready to land in -HEAD?

Dec 15 2016, 7:50 PM

Dec 11 2016

hiren committed rS309859: MFC r307745.
MFC r307745
Dec 11 2016, 11:36 PM
hiren committed rS309858: We currently don't do TSO if ip options are present. In case of IPv6, we look at.
We currently don't do TSO if ip options are present. In case of IPv6, we look at
Dec 11 2016, 11:15 PM

Dec 10 2016

hiren added a comment to D8737: TSO handling in IPv6 when ip options are present..
In D8737#181056, @bz wrote:

Seems like this is a more conservative solution to avoid possible offload problems.

There's a couple of other things the came to my mind or I spotted in that code but for the sake of "just fixing" this looks right.

Right. This is fixing the *obvious* bug. Please let me know what else you have in mind and that way its logged for myself of someone else to pick up.

Dec 10 2016, 12:15 AM

Dec 9 2016

hiren added a comment to D8737: TSO handling in IPv6 when ip options are present..
In D8737#180982, @kevin.bowling_kev009.com wrote:

[skip]

@kmacy suspects there might be drivers/firmware that cannot handle this but we haven't gone and dug any examples of that up. If that is the case, we should disable TSO on any packet with IP options set as the current code does, but additionally check for a flag on the output interface indicating that incompatibility.

Dec 9 2016, 7:29 AM

Dec 8 2016

hiren added a reviewer for D8737: TSO handling in IPv6 when ip options are present.: ae.
Dec 8 2016, 11:54 PM
hiren retitled D8737: TSO handling in IPv6 when ip options are present. from to TSO handling in IPv6 when ip options are present..
Dec 8 2016, 11:53 PM

Dec 5 2016

hiren committed rS309548: MFC r308943.
MFC r308943
Dec 5 2016, 6:20 AM

Dec 1 2016

hiren accepted D8667: Fix the handling of FIN segments in the CLOSED state.
Dec 1 2016, 11:13 PM

Nov 21 2016

hiren committed rS308944: r308942 broke kernel build..
r308942 broke kernel build.
Nov 21 2016, 9:07 PM
hiren closed D8552: Ignore ACKs with tsecr 0 during 3whs in syncache code. by committing rS308943: For RTT calculations mid-session, we explicitly ignore ACKs with tsecr of 0 as.
Nov 21 2016, 8:53 PM
hiren committed rS308943: For RTT calculations mid-session, we explicitly ignore ACKs with tsecr of 0 as.
For RTT calculations mid-session, we explicitly ignore ACKs with tsecr of 0 as
Nov 21 2016, 8:53 PM

Nov 18 2016

hiren accepted D8556: Fix spurious retransmit recovery on low latency networks.

Thanks for this fix. Nice catch.

Nov 18 2016, 4:32 AM · network

Nov 17 2016

hiren added a comment to D8552: Ignore ACKs with tsecr 0 during 3whs in syncache code..
  • If we find a matching syncache entry, but there is a problem with validating it (e.g. RST, etc.), ignore it.

Hum, can you please provide an example of this? what could 3rd maching ack bring that doesn't validate? I am probably missing something obvious.

Nov 17 2016, 11:59 PM
hiren added a comment to D8552: Ignore ACKs with tsecr 0 during 3whs in syncache code..
In D8552#177689, @jtl wrote:

Hiren,

Thanks for finding this bug and proposing a solution! Your solution looks fine in the sense that it mimics the rest of the behavior of this function when validation fails.

However, I think this function (and tcp_input(), which calls it) actually do the wrong thing. I believe the correct behavior should be:

  • If we have a matching and valid syncache entry, setup the connection.
  • If we do not find a matching connection, send a RST.
Nov 17 2016, 11:11 PM
hiren updated D8552: Ignore ACKs with tsecr 0 during 3whs in syncache code..
Nov 17 2016, 9:44 PM
hiren retitled D8552: Ignore ACKs with tsecr 0 during 3whs in syncache code. from to Ignore ACKs with tsecr 0 during 3whs in syncache code..
Nov 17 2016, 9:35 PM

Nov 15 2016

hiren committed rS308701: MFC r302474 (By gnn).
MFC r302474 (By gnn)
Nov 15 2016, 10:19 PM

Nov 14 2016

hiren accepted D8371: Improve handling of TCP RST segments in CLOSING and LAST-ACK state.
Nov 14 2016, 9:46 PM

Nov 1 2016

hiren committed rS308184: MFC r307545.
MFC r307545
Nov 1 2016, 10:40 PM
hiren committed rS308180: Set slow start threshold more accurately on loss to be flightsize/2 instead of.
Set slow start threshold more accurately on loss to be flightsize/2 instead of
Nov 1 2016, 9:09 PM
hiren closed D8349: Setting ssthresh more accurately on loss. by committing rS308180: Set slow start threshold more accurately on loss to be flightsize/2 instead of.
Nov 1 2016, 9:09 PM

Oct 31 2016

hiren updated the diff for D8349: Setting ssthresh more accurately on loss..

Also restore pre-r307901 behavior of alighning ssthresh on MSS boundary.

Oct 31 2016, 10:32 PM

Oct 27 2016

hiren added a comment to D8349: Setting ssthresh more accurately on loss..

This is a bug exposed by recent commit https://svnweb.freebsd.org/base?view=revision&revision=307901

Oct 27 2016, 8:44 PM

Oct 26 2016

hiren retitled D8349: Setting ssthresh more accurately on loss. from to Setting ssthresh more accurately on loss..
Oct 26 2016, 10:40 PM

Oct 25 2016

hiren committed rS307901: FreeBSD tcp stack used to inform respective congestion control module about the.
FreeBSD tcp stack used to inform respective congestion control module about the
Oct 25 2016, 5:46 AM
hiren committed rS307900: Undo r307899. It needs a bit more work and proper commit log..
Undo r307899. It needs a bit more work and proper commit log.
Oct 25 2016, 5:08 AM
hiren committed rS307899: In Collaboration with: Matt Macy <mmacy at nextbsd dot com>.
In Collaboration with: Matt Macy <mmacy at nextbsd dot com>
Oct 25 2016, 5:03 AM
hiren closed D8225: Let congestion control algorithms decide congestion window. by committing rS307899: In Collaboration with: Matt Macy <mmacy at nextbsd dot com>.
Oct 25 2016, 5:03 AM

Oct 23 2016

hiren accepted D7821: Preserve ECN bits when merging frames in LRO.

Talked to @rstone about adding some comments to make code more readable.

Oct 23 2016, 11:34 PM

Oct 22 2016

hiren added a comment to D8225: Let congestion control algorithms decide congestion window..

I tried running a few loss scenarios with various available CC algos and nothing seem broken. Loss scenarios include : dropping a single packet, dropping a bunch of packets, dropping a lot of packets to create severe loss situation, ack loss, etc.

Oct 22 2016, 8:01 AM

Oct 21 2016

hiren committed rS307745: Rework r306337..
Rework r306337.
Oct 21 2016, 6:27 PM
hiren closed D8152: Rework: Fix to avoid potential mbuf leak in network stack, if userland sends control messages to bad file descriptors. by committing rS307745: Rework r306337..
Oct 21 2016, 6:27 PM
hiren updated the diff for D8225: Let congestion control algorithms decide congestion window..

Changing snd_cwnd tracking variable's name from win to cwin and its type to uint32_t.
I'll run all my tests tomorrow and update here with results.

Oct 21 2016, 6:36 AM

Oct 19 2016

hiren updated D8279: Provide individual RTT measurements to CC algos..
Oct 19 2016, 12:32 AM

Oct 18 2016

hiren retitled D8279: Provide individual RTT measurements to CC algos. from A way to get individual RTT measurements. to Provide individual RTT measurements to CC algos..
Oct 18 2016, 10:06 PM
hiren retitled D8279: Provide individual RTT measurements to CC algos. from to A way to get individual RTT measurements..
Oct 18 2016, 10:04 PM
hiren closed D8272: Make sure tcp_mss() has the same check as tcp_mss_update() to have t_maxseg set to at least 64. by committing rS307545: Make sure tcp_mss() has the same check as tcp_mss_update() to have t_maxseg set.
Oct 18 2016, 2:40 AM
hiren committed rS307545: Make sure tcp_mss() has the same check as tcp_mss_update() to have t_maxseg set.
Make sure tcp_mss() has the same check as tcp_mss_update() to have t_maxseg set
Oct 18 2016, 2:40 AM

Oct 17 2016

hiren retitled D8272: Make sure tcp_mss() has the same check as tcp_mss_update() to have t_maxseg set to at least 64. from to Make sure tcp_mss() has the same check as tcp_mss_update() to have t_maxseg set to at least 64..
Oct 17 2016, 10:13 PM
hiren added a comment to D7986: Simplify cubic_ack_received.

@kmacy Can you please looks at my comments? I like the changes otherwise.

Oct 17 2016, 8:03 PM
hiren added a comment to D8225: Let congestion control algorithms decide congestion window..

Ping!

Oct 17 2016, 8:01 PM

Oct 14 2016

hiren added reviewers for D8253: Cubic changes for improved loss recovery.: rrs, lstewart.
Oct 14 2016, 6:51 PM
hiren retitled D8253: Cubic changes for improved loss recovery. from to Cubic changes for improved loss recovery..
Oct 14 2016, 6:49 PM
hiren committed rS307242: MFC r306464.
MFC r306464
Oct 14 2016, 1:38 AM

Oct 12 2016

hiren added inline comments to D8219: Remove TFO from the packet processing path when the kernel is not configured with TCP_RFC7413.
Oct 12 2016, 5:01 PM
hiren retitled D8225: Let congestion control algorithms decide congestion window. from to Let congestion control algorithms decide congestion window..
Oct 12 2016, 6:19 AM
hiren accepted D8072: Remove an extraneous call to soisconnected() in syncache_socket(), introduced with r261242..

As Kevin mentioned, this looks good on prod traffic at llnw.

Oct 12 2016, 1:03 AM

Oct 11 2016

hiren accepted D8219: Remove TFO from the packet processing path when the kernel is not configured with TCP_RFC7413.
Oct 11 2016, 11:54 PM
hiren accepted D8219: Remove TFO from the packet processing path when the kernel is not configured with TCP_RFC7413.

Thanks for fixing these corner-cases. :-)

Oct 11 2016, 4:03 PM

Oct 9 2016

hiren added a comment to D7986: Simplify cubic_ack_received.

@kmacy, about the exception you noted, I am a little puzzled.
a state where min_rtt_ticks is zero but we are *not* in slowstart - could still be processed in the old code if other rfc3465 conditions align as the guarding 'if' looks like this:

Oct 9 2016, 8:04 AM