First of all thanks for all your efforts bringing us OpenWRT and Mwan3.
In my home setup I have 3 internet connections(cheap but slow, fast but expensive, backup 4g) and 2 VPNs(work and other stuff). I successfully have created all the needed rules to distribute traffic based on different criteria.
As a remote worker, I have two type of devices, the work devices that use fast internet and others. I use source IP of the machine to distinguish them in a rule. Occasionally I need to move one device from one type of device to another. This cause Mwan3 to restart, that takes about a minuet or so on my Archer C5 device. This time is two much for me and normally I need to do this kind of stuff when I have a meeting or I'm in a hurry. To solve this problem I suggest to use ipset in source parts of rules. I already have used ipset and dnsmasq to route some wesites dynamically without need to restart Mwan3.
I have two questions:
1- Is it possible or not?
2- In source code, where I need to change to make this happen? I have some experience in Linux that I think I can contribute to Mwan3
code for destination rules is in mwan3 script
row (908) creates syntax for ipset matching as destination in iptables rule.
row (984) and (997) is using it.
I think is posible to just replace
ipset="-m set --match-set $ipset dst"
with
ipset="-m set --match-set $ipset src"
But you will lost ipset list for destination.
In luci webpage for rule configuration is not clear that ipset is destination, but I have no idea where are webpages for luci stored to change them.
Sorry for my late response, I am busy these days. I've added source ipset to the package, and I don't know how to submit the changes to the uptream packages, so I send the patch here for you to see.