Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mwan3: iperf3 bind (-B) does not work properly when mwan3 is enabled #13050

Closed
jamesmacwhite opened this issue Aug 7, 2020 · 13 comments
Closed

Comments

@jamesmacwhite
Copy link
Contributor

jamesmacwhite commented Aug 7, 2020

Maintainer: @feckert
Environment: OpenWrt 19.07.3 Linksys WRT3200ACM

Description:

I've noticed that when using iperf3 and mwan3 is enabled the bind option of iperf3 is overridden by the mwan3 routing rules. For example, because I have multiple dual stack WAN interfaces, I may run specific tests like this like:

6in4 IPv6:

iperf3 -6 -B 2001:470:xxxx:xx::x -c bouygues.iperf.fr -R

Wireguard VPN IPv6:

iperf3 -6 -B fc00:bbbb:bbbb:bb01::1:611c -c bouygues.iperf.fr -R

Depending on what policy is defined in the default IPv6 mwan3 config in this case, the test will always use that WAN because of this rule:

config rule 'default_rule_v6'
    option dest_ip '::/0'
    option family 'ipv6'
    option use_policy 'wan_wanb'

This seems to override the iperf3 bind option and the outgoing traffic from going to the specified interface. If I disable mwan3 the bind option works.

This doesn't happen when using something like cURL and traceroute when forcing a specific interface.

Is there anything that can be done to make mwan3 and iperf3 play nicely? Not sure this is a "bug" but makes testing with iperf3 difficult with multiple WANs.

Thanks!

@jamesmacwhite jamesmacwhite changed the title mwan3: iperf3 bind does not work properly when mwan3 is enabled mwan3: iperf3 bind (-B) does not work properly when mwan3 is enabled Aug 7, 2020
@jamesmacwhite
Copy link
Contributor Author

jamesmacwhite commented Aug 7, 2020

I guess because iperf3 uses TCP port 5201 you can setup rules around dest_port combined with the src_ip to force the correct WAN interface the traffic should be using but is there a better way?

@aaronjg
Copy link
Contributor

aaronjg commented Aug 10, 2020

Yes. That is not surprising, but also fairly annoying. Binding to an ip address does not work as reliably as binding to an interface. However, FreeBSD does not support binding to an interface, so a lot of packages that aim to be compatible across platforms do not implement the SO_BINDTODEVICE to bind to the device.

There is basically a hack right now to avoid this with outgoing echo requests so that things work properly for mwan3track:
https://github.com/openwrt/packages/blob/openwrt-19.07/net/mwan3/files/lib/mwan3/mwan3.sh#L397

It would be great to have a more general solution, and to remove this hack. Perhaps for packets that originate on the device, if they have a a src ipv6 address that differs from what would be expected from the default route, then mwan3 should mark them with $MMX_DEFAULT so that they go through the main routing table. However, I don't think that will do quite what is desired, because if you try to bind to the default ipv6 source, it would still go through the mwan3 rules.

@jamesmacwhite
Copy link
Contributor Author

@aaronjg Ah good to know. I didn't make the connection it would be due to the lack of SO_BINDTODEVICE.

There is a verbose workaround for this, basically targeting a rule at TCP 5201 (default iperf3 port) with dest_port and then basically combining it with a src_ip value which would be the interface address that is being used with iperf3 with the -B option. This then will make sure traffic traverses the right WAN interface, but in my case that's 8 additional rules to make sure iperf3 tests are accurate for all my configured WANs in mwan3, so it isn't ideal, but works for now.

@aaronjg
Copy link
Contributor

aaronjg commented Aug 10, 2020

There is a verbose workaround for this, basically targeting a rule at TCP 5201 (default iperf3 port) with dest_port and then basically combining it with a src_ip value which would be the interface address that is being used with iperf3 with the -B option

Could you do it with just one rule to tell mwan3 to use the default routing table for all traffic to TCP 5201? Then it will fall back on the default routing table, which will hopefully respect the choice of source address.

@jamesmacwhite
Copy link
Contributor Author

@aaronjg Ah I forgot about the 'default' value for rules to fallback to the routing table.

Something like this, could in theory condense the rules without having to define one for each WAN?

config rule 'iperf3_default'
	option dest_port '5201'
	option proto 'tcp'
	option use_policy 'default'

@aaronjg
Copy link
Contributor

aaronjg commented Aug 10, 2020

Something like this, could in theory condense the rules without having to define one for each WAN?

Yep, give that a try and see if it routes things correctly.

@jamesmacwhite
Copy link
Contributor Author

@aaronjg Seems to work OK! I can tell because my 6in4 WAN can only achieve around 12 Mbits/sec, where as Wireguard can get to over 100 Mbits/sec, which does seem to be happening with this rule and then using -B, so that at least cuts down the rules to force the traffic. Good workaround, thank you!

@aaronjg
Copy link
Contributor

aaronjg commented Aug 10, 2020

Glad that worked. FWIW, someone has already written a patch to add SO_BINDTODEVICE to iperf3, but it has not yet been merged.

esnet/iperf#817

@feckert
Copy link
Member

feckert commented Aug 11, 2020

@aaronjg Thank you for your work.
I will close the ticket, since there is a solution.

@feckert feckert closed this as completed Aug 11, 2020
@jamesmacwhite
Copy link
Contributor Author

@aaronjg Interesting, the PR looks abandoned now though (looking at the original date), so I'm not sure if will be implemented anytime soon, but thanks for your advice regarding the workaround, that should work for my requirements.

aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Aug 22, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Aug 23, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Aug 23, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Aug 23, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Aug 23, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Aug 24, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Aug 25, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Aug 26, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Aug 27, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Aug 27, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Aug 27, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Aug 27, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Aug 28, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Aug 30, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Aug 30, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Sep 1, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Sep 1, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Sep 3, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Sep 3, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Sep 3, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Sep 3, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Sep 5, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Sep 5, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Sep 6, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Sep 6, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Sep 8, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Sep 9, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Sep 9, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Sep 9, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Sep 10, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Sep 10, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Sep 10, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Sep 14, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Sep 15, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Sep 15, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Sep 15, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Sep 15, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Oct 5, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Oct 5, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Oct 11, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Oct 12, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
aaronjg added a commit to aaronjg/openwrt-packages that referenced this issue Oct 16, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
@ptpt52
Copy link
Contributor

ptpt52 commented Oct 26, 2020

pprindeville pushed a commit to pprindeville/packages that referenced this issue Dec 19, 2020
Rather than using a special mwan3 user to manage mwan3track's tracking
packets, this commit implements a small helper library to bind to
device and to set a fwmark so that the tracking packets can be routed
out of the correct interface.

This provides a consistent method for binding to a device rather than
relying on various packages potentially buggy implementations. For
example: openwrt#8139 and openwrt#12836

This helper issue also allows for more tracking methods to be added
even if they do not have a command line option to bind to device,
such as iperf3 (eg  openwrt#13050).

Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
@aaronjg
Copy link
Contributor

aaronjg commented Jan 2, 2021

Glad that worked. FWIW, someone has already written a patch to add SO_BINDTODEVICE to iperf3, but it has not yet been merged.

esnet/iperf#817

Patch has been merged in to iperf3
esnet/iperf@21581a7

@jamesmacwhite
Copy link
Contributor Author

Didn't expect that! Looks like the PR was stale. I guess once iperf3 is updated in OpenWrt, you won't need to worry about mwan3 use for iperf3 anyway if it properly implements SO_BINDTODEVICE.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants