codekoala / network-shaper

Very simple UI for basic network traffic shaping using tc-netem
Other
30 stars 9 forks source link

Request to Add Slot Functionality and Difficulty in Building the Project #6

Open zvladru opened 3 months ago

zvladru commented 3 months ago

First of all, I want to express my appreciation for this project. It’s an excellent tool, and it fits my needs perfectly. I really like it! However, I have encountered significant difficulties while trying to build the project. Despite spending a considerable amount of time on it, I couldn't successfully compile a working version due to issues when loading the app.js and webcomponents.min.js files in the browser.

I was particularly interested in adding support for the "slot" functionality as described in the tc-netem manual. This feature would allow emulating slotted networks and could provide a crude approximation of bursty MACs such as DOCSIS, WiFi, and LTE.

From the tc-netem manual: https://man7.org/linux/man-pages/man8/tc-netem.8.html

slot MIN_DELAY [ MAX_DELAY ]
    allows emulating slotted networks. Defer delivering
    accumulated packets to within a slot. Each available slot
    is configured with a minimum delay to acquire, and an
    optional maximum delay.

slot distribution
    allows configuring based on distribution similar to
    distribution option for packet delays.

    These slot options can provide a crude approximation of
    bursty MACs such as DOCSIS, WiFi, and LTE.

    Slot emulation is limited by several factors: the kernel
    clock granularity, as with a rate, and attempts to deliver
    many packets within a slot will be smeared by the timer
    resolution, and by the underlying native bandwidth also.

    It is possible to combine slotting with a rate, in which
    case complex behaviors where either the rate, or the slot
    limits on bytes or packets per slot, govern the actual
    delivered rate.

I believe adding this functionality would significantly enhance the project and make it even more versatile. Unfortunately, due to the challenges I've encountered during the build process, I haven't been able to implement this feature.

Thank you for your hard work and for considering this request. I look forward to any advice or solutions you can provide regarding the build issues.

codekoala commented 3 months ago

Hi there @zvladru ! Thanks for the suggestion! I am very well aware of the difficulties building this project in its current state, and I have been working on a brand new build to address this problem. It is close to being ready, but I have just been slammed with day job work. I will try to focus some time on it in the near future, but I can't make any promises as to the actual timeline, unfortunately.

As for this actual feature, it does not seem like it should be very difficult to implement it. I would very likely need to lean on you and/or others to validate that it works as expected though!

zvladru commented 3 months ago

Great, thank you for your response and your hard work.

I'll be eagerly awaiting the new build, and I’m ready to offer advice on adding the slot feature.