GitPedia
jeverley

jeverley/dscpclassify

An nftables based service for applying DSCP classification to connections.

7 Releases
Latest: 2mo ago
v2.0.2Latest
jeverleyjeverley·2mo ago·April 8, 2026
GitHub

📋 What's Changed

  • Fix for qdisc script compatibility with older OpenWrt versions, thanks @Sam-arch99 for reporting in https://github.com/jeverley/dscpclassify/issues/44
  • Full Changelog: https://github.com/jeverley/dscpclassify/compare/v2.0.1...v2.0.2
v2.0.1
jeverleyjeverley·2mo ago·April 1, 2026
GitHub

📋 What's Changed

  • Adding support for cake_mq qdisc introduced in OpenWrt 25.12 by @amteza in https://github.com/jeverley/dscpclassify/pull/43
  • Handle named sections in migrate_config -> rename_section_type by @Fail-Safe in https://github.com/jeverley/dscpclassify/pull/42

New Contributors

  • @amteza made their first contribution in https://github.com/jeverley/dscpclassify/pull/43
  • Full Changelog: https://github.com/jeverley/dscpclassify/compare/v2.0.0...v2.0.1
v2.0.0
jeverleyjeverley·8mo ago·October 4, 2025
GitHub

📦 Configuration

  • Created separate configuration sections for the automatic classification methods:
  • ✨ Client class adoption in [`client_class_adoption`](https://github.com/jeverley/dscpclassify/tree/v2.0?tab=readme-ov-file#section-client_class_adoption)
  • 🌎 Bulk client detection for P2P traffic in [`bulk_client_detection`](https://github.com/jeverley/dscpclassify/tree/v2.0?tab=readme-ov-file#section-bulk_client_detection)
  • 🚛 High Throughput service detection for Steam downloads, cloud storage etc. in [`high_throughput_service_detection`](https://github.com/jeverley/dscpclassify/tree/v2.0?tab=readme-ov-file#section-high_throughput_service_detection)
  • Service level settings are now managed in [`service`](https://github.com/jeverley/dscpclassify/tree/v2.0?tab=readme-ov-file#section-service)
  • Old config files are automatically migrated to the new file structure
  • A `loadfile` can be specified for sets (similar to fw4) to allow external definition of set entries - thanks @Fail-Safe
  • https://github.com/jeverley/dscpclassify/pull/37
  • + 2 more

📝 Documentation

  • The documentation has been overhauled to make functionality easier to understand
  • Added config table for `rules` [section](https://github.com/jeverley/dscpclassify/blob/v2.0/README.md#section-rule)
  • Added config table for `set` [section](https://github.com/jeverley/dscpclassify/blob/v2.0/README.md#section-set)
  • Added service uninstall instructions

📦 Miscellaneous

  • All addresses within rules, sets and loadfiles are checked for validity
  • The service will attempt to detect the set type if `family` is not specified
  • The service guards against mixed address types in set config (i.e. reject a mac or ipv4 address in an ipv6 family set)

Rule additions/improvements

  • Zoom Meeting addresses and ports - thanks @Fail-Safe
  • https://github.com/jeverley/dscpclassify/pull/38
  • Zoom Phone addresses and ports
  • Refactored rules to take advantage of the mixed family support
v1.1.4
jeverleyjeverley·1y ago·March 18, 2025
GitHub

📋 What's Changed

  • Ensure client class hints that occur after the first packet are applied by @jeverley in https://github.com/jeverley/dscpclassify/pull/35
  • The dynamic bit is now preserved when a dynamic class is applied (threaded client/services)
  • This can be useful to understand why a connection has a certain class (i.e. checking the bits set in the conntrack mark)
  • Users now have the ability to disable the threaded client/service dynamic connection classification modes.
  • New global config option `dynamic_classify` (bool)
  • Full Changelog: https://github.com/jeverley/dscpclassify/compare/v1.1.3...v1.1.4
v1.1.3
jeverleyjeverley·1y ago·March 2, 2025
GitHub

📋 What's changed

  • Correct bitwise operation used in DSCP marking verdict, thanks @ldir-EDB0 (https://github.com/jeverley/dscpclassify/commit/56029adc111865c9e6a2c9a8c9092f20ec78f20d#r153179112)
  • General improvements by @jeverley in https://github.com/jeverley/dscpclassify/pull/32
  • Update WMM map annotations and LE to AC category mapping by @jeverley in https://github.com/jeverley/dscpclassify/pull/33
  • Full Changelog: https://github.com/jeverley/dscpclassify/compare/v1.1.2...v1.0.0
v1.1.0 - OpenWrt 24.10 supportv1.1.0
jeverleyjeverley·1y ago·February 24, 2025
GitHub

📋 What's Changed

  • OpenWrt 24.10 fixes
  • The service now explicitly destroys meter sets used for the threaded client/server detection as these were causing failures during reload (https://github.com/jeverley/dscpclassify/issues/27) _Thank you @Sam-arch99 for helping troubleshoot this._
  • The service now creates a debug file `/tmp/dscpclassify.debug` when start/reload fails
  • Use ct_processed bit rather than relying on first reply packet for established_connection counting, this allows consideration of connections established before the service started (https://github.com/jeverley/dscpclassify/issues/26)
  • Optimised loopback match @ldir-EDB0 (https://github.com/jeverley/dscpclassify/commit/c9b53e94af8bc7b0ed7eb928254f5f32b41de516)
  • Improved service reload performance
  • Full Changelog: https://github.com/jeverley/dscpclassify/compare/v1.0.0...v1.1.0
OpenWrt 22.03-23.05.xv1.0.0
jeverleyjeverley·1y ago·February 20, 2025
GitHub

📋 What's Changed

  • Initial version supporting OpenWrt versions 22.03-23.05.x

New Contributors

  • @ldir-EDB0 made their first contribution in https://github.com/jeverley/dscpclassify/pull/1
  • Full Changelog: https://github.com/jeverley/dscpclassify/commits/v1.0.0