Skip to content

Restructure config file and make functionality easier to understand in the readme#36

Merged
jeverley merged 18 commits intodevfrom
config-restructure
Aug 31, 2025
Merged

Restructure config file and make functionality easier to understand in the readme#36
jeverley merged 18 commits intodevfrom
config-restructure

Conversation

@jeverley
Copy link
Owner

@jeverley jeverley commented Mar 31, 2025

What's changed

  • Overhaul the readme to make functionality more discoverable to new users
  • Global config section renamed to service and options amended
    • Option wmm renamed to wmm_mark_lan to make its function clearer
    • class_low_effort sets the default Low Effort DSCP mark, default is le
      • On kernel versions < 5.13 the default falls back to cs1 because le is not implemented in layer-cake
    • class_high_throughput sets the default High Throughput DSCP mark, default is af13
  • Created separate config sections for automatic detection methods
    • client_class_adoption for applying non-wan client DSCP marks to response packets
      • option: enabled
      • list: exclude_class ignores DSCP client class, defaults to CS6 and CS7
      • list: src_addr used to specify client IPs to include/exclude in adoption
    • bulk_client_detection for P2P type clients
      • option: enabled
      • option: min_bytes
      • option: min_connections
      • option: class, overrides the service default (class_low_effort)
    • high_throughput_service_detection for high throughput downloads like Windows Update & Steam
      • option: enabled
      • option: min_bytes
      • option: min_connections
      • option: class, overrides the service default (class_high_throughput)
  • Improve readability and maintainability of code in the main service init file.
  • To-do: auto migrate old config structure

@jeverley jeverley changed the title Restructure config file to make options clearer to understand Overhaul config and service readme to make functionality clearer to understand Mar 31, 2025
@jeverley jeverley changed the title Overhaul config and service readme to make functionality clearer to understand Overhaul config and service readme to make functionality easier to understand Mar 31, 2025
@jeverley jeverley force-pushed the config-restructure branch from 59e48f4 to 2ecca2e Compare March 31, 2025 17:21
@jeverley jeverley changed the title Overhaul config and service readme to make functionality easier to understand Restructure config file and make functionality easier to understand in the readme Mar 31, 2025
@jeverley jeverley force-pushed the config-restructure branch 2 times, most recently from 69f3f96 to dba804e Compare March 31, 2025 18:28
Kernels prior to 5.13 do not have mappings for LE in the layer-cake diffserv tins
@jeverley jeverley force-pushed the config-restructure branch from dba804e to 4d780d0 Compare March 31, 2025 18:30
@jeverley jeverley requested a review from ldir-EDB0 April 1, 2025 12:49
@jeverley
Copy link
Owner Author

jeverley commented Apr 1, 2025

Hi @ldir-EDB0 I've made some pretty heavy changes in support of making functionality clearer and adding more control to the automatic classification methods, considering making this a v2 release.

I have tested and compared the table created in my local OpenWrt 24.10 VM, but would appreciate a once over on your end.

I still need to finish the function for migrating config to the new structure.

@jeverley jeverley marked this pull request as draft April 1, 2025 12:53
@jumpsmm7
Copy link

jumpsmm7 commented Apr 3, 2025

@jeverley I know I am not a contributor here, but I have tested your changes here on a live setup using your new config and new changes. Here is my specs:
image

I do get an error message when reloading dscpclassify.
image

@jeverley
Copy link
Owner Author

jeverley commented Apr 3, 2025

I do get an error message when reloading dscpclassify. image

Hi @jumpsmm7, please could you share a copy of your config file?

@jumpsmm7
Copy link

jumpsmm7 commented Apr 4, 2025

I do get an error message when reloading dscpclassify. image

Hi @jumpsmm7, please could you share a copy of your config file?

config service
option wmm_mark_lan '1'

config client_class_adoption
option enabled '1'
list exclude_class 'cs6'
list exclude_class 'cs7'

config bulk_client_detection
option enabled '1'
option min_bytes '10000'
option min_connections '10'

config high_throughput_service_detection
option enabled '1'
option min_bytes '1000000'
option min_connections '3'

config ipset
option name 'xcloud'
option interval '1'
list entry '13.104.0.0/14' # Western Europe

config ipset
option name 'xcloud6'
option family 'ipv6'
option interval '1'
list entry '2603:1000::/24' # Western Europe

config rule
option name 'DNS'
list proto 'tcp'
list proto 'udp'
list dest_port '53'
list dest_port '853'
list dest_port '5353'
option class 'cs5'

config rule
option name 'DoH'
list proto 'tcp'
list proto 'udp'
list dest_ip '8.8.8.8' # Google
list dest_ip '8.8.4.4' # Google
list dest_ip '1.1.1.1' # Cloudflare
list dest_ip '1.0.0.1' # Cloudflare
list dest_ip '9.9.9.9' # Quad9 Secured
list dest_ip '149.112.112.112' # Quad9 Secured
list dest_ip '9.9.9.11' # Quad9 Secured w/ECS
list dest_ip '149.112.112.11' # Quad9 Secured w/ECS
list dest_ip '94.140.14.0/24' # AdGuard
list dest_ip '2001:4860:4860::8888' # Google
list dest_ip '2001:4860:4860::8844' # Google
list dest_ip '2606:4700:4700::1111' # Cloudflare
list dest_ip '2606:4700:4700::1001' # Cloudflare
list dest_ip '2620:fe::fe' # Quad9 Secured
list dest_ip '2620:fe::9' # Quad9 Secured
list dest_ip '2620:fe::11' # Quad9 Secured w/ECS
list dest_ip '2620:fe::fe:11' # Quad9 Secured w/ECS
list dest_ip '2a10:50c0::ad1:ff' # AdGuard
list dest_ip '2a10:50c0::ad2:ff' # AdGuard
list dest_ip '2a10:50c0::ded:ff' # AdGuard Dedicated
list dest_port '443'
option class 'cs5'

config rule
option name 'BOOTP/DHCP'
option family 'ipv4'
option proto 'udp'
list dest_port '67'
list dest_port '68'
option class 'cs5'

config rule
option name 'BOOTP/DHCPv6'
option family 'ipv6'
option proto 'udp'
list dest_port '546'
list dest_port '547'
option class 'cs5'

config rule
option name 'NTP'
option proto 'udp'
option dest_port '123'
option class 'cs5'

config rule
option name 'SSH'
option proto 'tcp'
option dest_port '22'
option class 'cs2'

config rule
option name 'Xbox Cloud Gaming'
option proto 'udp'
option family 'ipv4'
list dest_ip '@xcloud'
list dest_port '1000-1150'
list dest_port '9002'
option class 'af41'

config rule
option name 'Xbox Cloud Gaming IPv6'
option proto 'udp'
option family 'ipv6'
list dest_ip '@xcloud6'
list dest_port '1000-1150'
list dest_port '9002'
option class 'af41'

config rule
option name 'Microsoft Teams voice'
option proto 'udp'
option src_port '50000-50019'
option dest_port '3478-3481'
list dest_ip '13.107.64.0/18'
list dest_ip '52.112.0.0/14'
list dest_ip '52.122.0.0/15'
list dest_ip '2603:1063::/39'
option class 'ef'

config rule
option name 'Microsoft Teams video'
option proto 'udp'
option src_port '50020-50039'
option dest_port '3478-3481'
list dest_ip '13.107.64.0/18'
list dest_ip '52.112.0.0/14'
list dest_ip '52.122.0.0/15'
list dest_ip '2603:1063::/39'
option class 'af41'

config rule
option name 'Microsoft Teams sharing'
option proto 'udp'
option src_port '50040-50059'
option dest_port '3478-3481'
list dest_ip '13.107.64.0/18'
list dest_ip '52.112.0.0/14'
list dest_ip '52.122.0.0/15'
list dest_ip '2603:1063::/39'
option class 'af21'

config rule
option name 'ICMP'
list proto 'icmp'
list proto 'icmpv6'
option class 'cs5'
option enabled '1'

config rule # A rule which marks all non-HTTP UDP connections from a specific IP as cs4 and count new connection matches
option name 'Game Console non-HTTP'
option proto 'udp'
list src_ip '192.168.1.100'
list dest_port '!80'
list dest_port '!443'
option class 'cs4'
option counter '1'
option enabled '0'
@jeverley

@jumpsmm7
Copy link

jumpsmm7 commented Apr 7, 2025

@jeverley it is the ICMP rule.

@jeverley
Copy link
Owner Author

jeverley commented Apr 7, 2025

@jeverley it is the ICMP rule.

Thanks for troubleshooting this @jumpsmm7, will aim to get a commit pushed to address this today.

Edit: should be fixed with 6792a30

@jumpsmm7
Copy link

jumpsmm7 commented Apr 8, 2025

@jeverley it is the ICMP rule.

Thanks for troubleshooting this @jumpsmm7, will aim to get a commit pushed to address this today.

Edit: should be fixed with 6792a30

@jeverley I can confirm, that resolved the issue.

jeverley added a commit that referenced this pull request Aug 31, 2025
commit dc90a41
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Sun Aug 31 14:03:21 2025 +0100

    Fix spacing in rename_section_type

commit c4e7ef2
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Sun Aug 31 13:57:31 2025 +0100

    Rename compatibility function

commit a3b6251
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Sun Aug 31 13:49:51 2025 +0100

    Use of service constants and remove redundant set check

commit f6e3fe0
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Sun Aug 31 13:35:11 2025 +0100

    Compatibility for kernels not supporting nft destroy

commit cf310b1
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Sun Aug 31 12:21:51 2025 +0100

    Indentation consistency

commit a71ef4e
Author: Jack <46714706+jeverley@users.noreply.github.com>
Date:   Mon Jun 23 20:14:54 2025 +0100

    Config migration log level changed to info

commit 68dc5ae
Author: Jack <46714706+jeverley@users.noreply.github.com>
Date:   Mon Jun 23 20:10:47 2025 +0100

    Indent consistency

commit 3e47cdf
Author: Jack <46714706+jeverley@users.noreply.github.com>
Date:   Mon Jun 23 19:48:35 2025 +0100

    Config migration is logged

commit 2031072
Author: Jack <46714706+jeverley@users.noreply.github.com>
Date:   Thu Jun 19 17:24:15 2025 +0100

    Implement function for migrating config file to new structure

commit 6792a30
Author: Jack <46714706+jeverley@users.noreply.github.com>
Date:   Mon Apr 7 13:36:19 2025 +0100

    Resolve issue with non tcp/udp protocol user rules

    Fixes #36 (comment)

commit 8c66738
Author: Jack <46714706+jeverley@users.noreply.github.com>
Date:   Tue Apr 1 13:43:07 2025 +0100

    Change Low Effort class fallback log level to info

commit 3f0395c
Author: Jack <46714706+jeverley@users.noreply.github.com>
Date:   Tue Apr 1 13:42:09 2025 +0100

    Add log message for Low Effort default fallback

commit c021b32
Author: Jack <46714706+jeverley@users.noreply.github.com>
Date:   Tue Apr 1 13:33:18 2025 +0100

    Update meter set names

commit b174838
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Mon Mar 31 20:42:52 2025 +0100

    Fix exclude_class config option

commit ab09a1b
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Mon Mar 31 20:11:30 2025 +0100

    Make check_set_against_existing function checks more robust

commit 4d780d0
Author: Jack <46714706+jeverley@users.noreply.github.com>
Date:   Mon Mar 31 18:34:02 2025 +0100

    Fall back to class cs1 for low effort on kernel releases < 5.13

    Kernels prior to 5.13 do not have mappings for LE in the layer-cake diffserv tins

commit ce9dab0
Author: Jack <46714706+jeverley@users.noreply.github.com>
Date:   Tue Mar 25 17:53:03 2025 +0000

    Restructure config file and update readme to improve readability
@jeverley jeverley marked this pull request as ready for review August 31, 2025 13:35
@jeverley jeverley merged commit b3a7f07 into dev Aug 31, 2025
jeverley added a commit that referenced this pull request Oct 4, 2025
* Init script refactor

- Move config defaults into static variables
- Explicit return 0 when service stops/starts successfully
- Code readability improvements

* Move service action success log to after cleanup

* Clearer function names and use of named variables in config_foreach_reverse

* Move client hints assessment into dynamic_classify chain

This is intended to address clients which only apply their class after establishing a connection.

#34

* Preserve the dynamic bit when a dynamic class is applied

Additional changes:
- Config option to enable/disable dynamic classification
- Client hints can override dynamic class
- Rename static_classify to rule_classify

* Move dynamic rule chain creation into init script

We now only create these if enabled in config

* Ensure unused sets are removed when dynamic rules are not enabled

* Add individual config options for threaded client/service detection

Add automatic classification options to readme
-  `threaded_service_detection`
-  `threaded_client_detection`

Include threaded client/service detection options in default config

* Merge in config-restructure branch

commit dc90a41
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Sun Aug 31 14:03:21 2025 +0100

    Fix spacing in rename_section_type

commit c4e7ef2
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Sun Aug 31 13:57:31 2025 +0100

    Rename compatibility function

commit a3b6251
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Sun Aug 31 13:49:51 2025 +0100

    Use of service constants and remove redundant set check

commit f6e3fe0
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Sun Aug 31 13:35:11 2025 +0100

    Compatibility for kernels not supporting nft destroy

commit cf310b1
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Sun Aug 31 12:21:51 2025 +0100

    Indentation consistency

commit a71ef4e
Author: Jack <46714706+jeverley@users.noreply.github.com>
Date:   Mon Jun 23 20:14:54 2025 +0100

    Config migration log level changed to info

commit 68dc5ae
Author: Jack <46714706+jeverley@users.noreply.github.com>
Date:   Mon Jun 23 20:10:47 2025 +0100

    Indent consistency

commit 3e47cdf
Author: Jack <46714706+jeverley@users.noreply.github.com>
Date:   Mon Jun 23 19:48:35 2025 +0100

    Config migration is logged

commit 2031072
Author: Jack <46714706+jeverley@users.noreply.github.com>
Date:   Thu Jun 19 17:24:15 2025 +0100

    Implement function for migrating config file to new structure

commit 6792a30
Author: Jack <46714706+jeverley@users.noreply.github.com>
Date:   Mon Apr 7 13:36:19 2025 +0100

    Resolve issue with non tcp/udp protocol user rules

    Fixes #36 (comment)

commit 8c66738
Author: Jack <46714706+jeverley@users.noreply.github.com>
Date:   Tue Apr 1 13:43:07 2025 +0100

    Change Low Effort class fallback log level to info

commit 3f0395c
Author: Jack <46714706+jeverley@users.noreply.github.com>
Date:   Tue Apr 1 13:42:09 2025 +0100

    Add log message for Low Effort default fallback

commit c021b32
Author: Jack <46714706+jeverley@users.noreply.github.com>
Date:   Tue Apr 1 13:33:18 2025 +0100

    Update meter set names

commit b174838
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Mon Mar 31 20:42:52 2025 +0100

    Fix exclude_class config option

commit ab09a1b
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Mon Mar 31 20:11:30 2025 +0100

    Make check_set_against_existing function checks more robust

commit 4d780d0
Author: Jack <46714706+jeverley@users.noreply.github.com>
Date:   Mon Mar 31 18:34:02 2025 +0100

    Fall back to class cs1 for low effort on kernel releases < 5.13

    Kernels prior to 5.13 do not have mappings for LE in the layer-cake diffserv tins

commit ce9dab0
Author: Jack <46714706+jeverley@users.noreply.github.com>
Date:   Tue Mar 25 17:53:03 2025 +0000

    Restructure config file and update readme to improve readability

* Revert "Merge in config-restructure branch"

This reverts commit 32dbad7.

* Restructure config file and make functionality easier to understand in the readme (#36)

* Restructure config file and update readme to improve readability

* Fall back to class cs1 for low effort on kernel releases < 5.13

Kernels prior to 5.13 do not have mappings for LE in the layer-cake diffserv tins

* Make check_set_against_existing function checks more robust

* Add log message for Low Effort default fallback

* Resolve issue with non tcp/udp protocol user rules

Fixes #36 (comment)

* Implement function for migrating config file to new structure

* Config migration is logged

* Compatibility for kernels not supporting nft destroy

* Use of service constants and remove redundant set check

* Add ability to supply a file for inclusion into an ipset (#37)

* Added basic loading of an existing ipset file

* Second pass. Applied KISS principle and minimized new code.

* Augment the loadfile parsing to check for and exclude invalid values

* Use an ipv4 regex without a word boundary (BusyBox compatibility)

---------

Co-authored-by: Jack <46714706+jeverley@users.noreply.github.com>

* Add documentation for ipset loadfile option

* Revise check_addr6 and parse_set_loadfile functions (BusyBox grep limitations)

* Replace remaining static service name references

* Add migration for deprecated element option in ipsets

* Fix reload due to service command being unavailable within init scripts

* Add Zoom Meetings and Webinars (#38)

* Add Zoom Meetings and Webinars

* Updated addresses and added Zoom Phone details

I intend to add support for referencing mixed set types (ipv4/6) which should help keep config simple.

---------

Co-Authored-By: Jack <46714706+jeverley@users.noreply.github.com>

* Handle addr6 CIDR notation

Co-Authored-By: Jack <46714706+jeverley@users.noreply.github.com>

* Support for mixed dest/source ip families in rules

commit 74ce456
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Wed Sep 3 12:59:34 2025 +0100

    Log the debug file locaction

commit 44474a4
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Wed Sep 3 12:54:34 2025 +0100

    Fix saddr and daddr rule creation

commit 08d5549
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Wed Sep 3 12:46:59 2025 +0100

    Further logging refinements

commit ecbc5c3
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Wed Sep 3 12:41:21 2025 +0100

    Prevent set creation if no family is specified and there are mixed entries

commit d0f1481
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Wed Sep 3 11:36:01 2025 +0100

    Improve logging on determine_set_family

commit 9c43e44
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Wed Sep 3 11:23:07 2025 +0100

    Fix name expansion in set family logs

commit 717a435
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Wed Sep 3 10:31:11 2025 +0100

    Implement ipset family detection and entry family validation

commit f7dec1c
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Mon Sep 1 21:18:01 2025 +0100

    Name saddr and daddr list variables consistent with being a list

commit 825a434
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Mon Sep 1 18:25:31 2025 +0100

    Use constants for chain names

commit 5c1c6f3
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Mon Sep 1 08:47:43 2025 +0100

    Move source match conditions to start of rule

    Co-Authored-By: Jack <46714706+jeverley@users.noreply.github.com>

commit c4de2de
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Sun Aug 31 23:23:51 2025 +0100

    Prevent extra empty address rule creation

    Co-Authored-By: Jack <46714706+jeverley@users.noreply.github.com>

commit 43464c2
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Sun Aug 31 23:16:36 2025 +0100

    Refactor config rules to use multi family ipsets

    Co-Authored-By: Jack <46714706+jeverley@users.noreply.github.com>

commit 3f5084c
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Sun Aug 31 23:04:06 2025 +0100

    Add rule name to address parse error log

    Co-Authored-By: Jack <46714706+jeverley@users.noreply.github.com>

commit f78e4ef
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Sun Aug 31 22:44:53 2025 +0100

    Handle addr6 CIDR notation

    Co-Authored-By: Jack <46714706+jeverley@users.noreply.github.com>

commit 31d230a
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Sun Aug 31 22:04:43 2025 +0100

    Initial implementation of multi family ipset rules

    Co-Authored-By: Jack <46714706+jeverley@users.noreply.github.com>

* Update ipset and rule documentation in README.md

* Interval now defaults to 1 (matching fw4)

* Update README.md

* Update README.md

* Add config tables for `rule` and `ipset` sections

* Handle the "any" family value

* Fix client class adoption when src_ip isn't specified

* Fix issues with config migration, use set instead of ipset in config sections

commit 1874589
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Fri Sep 19 16:59:57 2025 +0100

    Change ipset to set in documentation and config

commit d274a52
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Thu Sep 18 12:25:55 2025 +0100

    Config migration hardening

commit c8d68fa
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Wed Sep 17 14:30:34 2025 +0100

    Fix rename_section_type

commit a9ff6b1
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Wed Sep 17 12:29:38 2025 +0100

    Use config section name 'set' instead of 'ipset' due to divergence with fw4 use

commit 92e6ce5
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Wed Sep 17 09:28:07 2025 +0100

    Define class default constants, remove optional debug

commit b6da99b
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Tue Sep 16 16:41:32 2025 +0100

    Making var naming for addr in create user rule less ip specific

commit dbc4cc6
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Tue Sep 16 16:19:35 2025 +0100

    Correct config_get for src addr in client class adoption

commit 6b88f58
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Tue Sep 16 15:35:25 2025 +0100

    Fix issue where mixed rule saddr/daddr was not working

commit 4198c6e
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Tue Sep 16 09:21:56 2025 +0100

    Correct locals in rule_addr function

commit 3a4d59e
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Mon Sep 15 17:05:29 2025 +0100

    Used constants for nft conntrack variables

commit e86d012
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Mon Sep 15 16:50:25 2025 +0100

    Refinements to client class adoption

commit ed73b56
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Mon Sep 15 14:47:07 2025 +0100

    Resolve issue with creating addr rules, use constants for set names

commit fcaf433
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Fri Sep 12 16:23:30 2025 +0100

    Update dscpclassify

commit 53cc794
Merge: faac8b2 361af98
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Fri Sep 12 15:59:03 2025 +0100

    Merge branch 'dev' of https://github.com/jeverley/dscpclassify into dev

commit faac8b2
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Fri Sep 12 15:57:40 2025 +0100

    Update dscpclassify

commit 78eb5bf
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Fri Sep 12 15:26:25 2025 +0100

    Improve efficiency of rule_addr and compatibility checks

commit 361af98
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Fri Sep 12 15:26:25 2025 +0100

    Improve efficiency of rule_addr and compatibility checks

commit efbd41f
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Wed Sep 10 16:07:54 2025 +0100

    Support for mac address matching

commit 7cb6c83
Author: jeverley <46714706+jeverley@users.noreply.github.com>
Date:   Sun Sep 7 22:14:01 2025 +0100

    Fix client class adoption when src_ip isn't specified

* Enhance README with src_mac and dest_mac descriptions

* Add uninstall steps

---------

Co-authored-by: Mark B <mark@vpost.net>
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

Successfully merging this pull request may close these issues.

2 participants