On 7/3/20 12:48 AM, Tuong Tong Lien wrote:
-----Original Message-----
From: Jon Maloy <jma...@redhat.com>
Sent: Friday, July 3, 2020 5:36 AM
To: Tuong Tong Lien <tuong.t.l...@dektech.com.au>; ma...@donjonn.com;
ying....@windriver.com; tipc-
discuss...@lists.sourceforge.net
Cc: tipc-dek <tipc-...@dektech.com.au>
Subject: Re: [tipc-discussion] [net] tipc: fix incorrect unicast link window
On 7/2/20 6:28 PM, Jon Maloy wrote:
[...]
Thinking more about this, I would go for the second option.
Either way we will have to be ready to explain to the users why we
have made this change, and that there is no reason for them to touch
this value in the future.
An alternative is to introduce an additional property for user to set/get the
link max window which will be 8191 by default and keep the legacy one but for
the link min window instead. This way, we have no backward compatible issues
while still can go beyond that up to the max value which is fully under control
as well (if he/she wants to limit the threshold, e.g. for other traffic like
TCP, etc., he can consider to lower the max window...).
In addition, we will still retain the true meaning of the window setting
Changing the meaning of this setting from "maximum window" to "minimum
window" is for me a far bigger semantic change that changing it from
"maximum window" to "upper limit for maximum window" as we have done. I
fear this will be even more confusing for the user.
And we would have to set a limit "maximum minimum window" to avoid that
the user screws up performance. What should that be? Should we make even
that limit configurable? And some users might still see their current
setting being rejected, which I suspect is exactly what they want to
avoid, and the reason for this issue being raised at all.
from user that increasing the min window will help increase performance
somewhat (i.e. shorten the slow start phase) and vice versa, the same happens
for the max window setting as well.
I think the risk is obvious that the user anyway will run into
surprises. If he has set his window to e.g. 300 he will end up with no
slow start at all, or his setting being rejected. So he would be better
off removing this setting anyway.
We can also display the max value in the link statistics (for example, "Window: 50 packets, up to
8191" or "Window: 123 packets, range 50 - 8191") which acts like a "statement"
or maybe Window (min..cur..max): [50..123..1000] packets??
This is not a bad idea, whatever solution we choose.
saying that we currently support variable window and the actual link window can
be in that range instead of a fixed one as before... so, user will be
completely aware of this.
There is however a concern for the media & bearer layer's window setting
commands, do we need to apply the same change(s) for them as well (current it sets
and gets the max window value...)?
We would definitely have to change here too.
I would still suggest we go for my second proposal above. We select a
default value, e.g., 1000, where we see that there is no improvement in
increasing it further. Then we let the user set it differently if he
wants, any value between 50 and 8191.
This would be easy to explain to the user: "we have improved the
protocol so that we now can set the default window much larger than
before". How can he object to that, especially if he sees what can be
perceived as a sane value (1000 instead of 8191) ? The users should
*not* be allowed to dictate our internal default settings just because
they are unwilling to change their own. As long as we don't break
anything or reduce their current performance we remain backwards
compatible, in my view.
Finally, I apologize for not attending the meeting this morning. It is
at 6 AM for me, and easy to miss since it is bi-weekly. I will see if I
can set up Bluejens so that a moderator is not needed, or if we can use
some other tool. Any suggestions?
///jon
What do you think?
///jon
BR/Tuong
///jon
Fixes: 16ad3f4022bb ("tipc: introduce variable window congestion
control")
Reported-by: Hoang Le <hoang.h...@dektech.com.au>
Reported-by: Thang Ngo <thang.h....@dektech.com.au>
Signed-off-by: Tuong Lien <tuong.t.l...@dektech.com.au>
---
net/tipc/eth_media.c | 2 +-
net/tipc/link.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/tipc/eth_media.c b/net/tipc/eth_media.c
index 8b0bb600602d..675b947eab89 100644
--- a/net/tipc/eth_media.c
+++ b/net/tipc/eth_media.c
@@ -93,7 +93,7 @@ struct tipc_media eth_media_info = {
.priority = TIPC_DEF_LINK_PRI,
.tolerance = TIPC_DEF_LINK_TOL,
.min_win = TIPC_DEF_LINK_WIN,
- .max_win = TIPC_MAX_LINK_WIN,
+ .max_win = TIPC_DEF_LINK_WIN,
.type_id = TIPC_MEDIA_TYPE_ETH,
.hwaddr_len = ETH_ALEN,
.name = "eth"
diff --git a/net/tipc/link.c b/net/tipc/link.c
index ee3b8d0576b8..28834dafdc98 100644
--- a/net/tipc/link.c
+++ b/net/tipc/link.c
@@ -2662,7 +2662,7 @@ int __tipc_nl_add_link(struct net *net,
struct tipc_nl_msg *msg,
if (nla_put_u32(msg->skb, TIPC_NLA_PROP_TOL, link->tolerance))
goto prop_msg_full;
if (nla_put_u32(msg->skb, TIPC_NLA_PROP_WIN,
- link->window))
+ link->max_win))
goto prop_msg_full;
if (nla_put_u32(msg->skb, TIPC_NLA_PROP_PRIO, link->priority))
goto prop_msg_full;
_______________________________________________
tipc-discussion mailing list
tipc-discussion@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tipc-discussion
_______________________________________________
tipc-discussion mailing list
tipc-discussion@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tipc-discussion