NETEM - fq_codel and pfifo_fast change/add tc rule


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
# 1  
NETEM - fq_codel and pfifo_fast change/add tc rule

HI,
I am trying to understand netem operation over Linux

when I issued tc show command i see as follows:
Code:
ing:~ tc qdisc show dev en1
qdisc mq 0: root
qdisc fq_codel 0: parent :18 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
qdisc fq_codel 0: parent :17 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
qdisc fq_codel 0: parent :16 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
ing:~

Now when i try to add/change tc qdisc with a loss of 0.5% I see following error:
Code:
ing:~ tc qdisc change dev en1 root netem loss 0.5%
Error: Qdisc not found. To create specify NLM_F_CREATE flag.
ing:~ tc qdisc add dev en1 root netem loss 0.5%
Error: Specified qdisc not found.
ing:~

How to fix it ??
Also i tried setting back to pfifo_fast (default netem rule) and then tried to add loss of 0.5% i see following issue
Code:
ing:~ tc qdisc add dev en1 root pfifo_fast
ing:~ tc qdisc show dev en1
qdisc pfifo_fast 8004: root refcnt 92 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
ing:~ tc qdisc add dev en1 root netem loss 0.5%
Error: Exclusivity flag on, cannot modify.
ing:~

Here again I tried deleting pfifo_fast tc rule but fq_codel got set back and where i was unable to set loss 0.5%
# 2  
As as recall, the netem package has issues related to granularity; and when I did a quick look, I found this in the man page:

Quote:
The main known limitation of Netem are related to timer granularity, since Linux is not a real-time operating system.
This could be way off base, but perhaps using a 0.5% loss parameter is too granular for Linux?

Did you experiment using a larger parameter, such as 5% or even 2% first, to test?

Sorry if this is not helpful or I'm way off the mark.

EDIT: Yes, I am way off the mark... I just read this in the docs on Packet Loss:

Ref: https://wiki.linuxfoundation.org/net...em#packet_loss

Code:
Packet loss
 
Random packet loss is specified in the 'tc' command in percent. The smallest possible non-zero value is:

232 = 0.0000000232%

 # tc qdisc change dev eth0 root netem loss 0.1%
This causes 1/10th of a percent (i.e 1 out of 1000) packets to be randomly dropped.

An optional correlation may also be added. This causes the random number generator to be less random and can be used to emulate packet burst losses.

 # tc qdisc change dev eth0 root netem loss 0.3% 25%
This will cause 0.3% of packets to be lost, and each successive probability depends by a quarter on the last one.

Probn = .25 * Probn-1 + .75 * Random

I'm really interested in this topic, so looking forward to any updates. What version of Linux are you using? I may install netem on Ubuntu and check it out.

Thanks.
# 3  
Thank you Neo Smilie But still same issue even if i use 5% loss
I am using Rhel8.1
# 4  
What happens if you run this?

Code:
modinfo sch_netem

On one of my Ubuntu servers, the results:

Code:
ubuntu:/tmp# modinfo sch_netem
filename:       /lib/modules/4.15.0-33-generic/kernel/net/sched/sch_netem.ko
license:        GPL
srcversion:     97B479D10ADED0DD99F6AEC
depends:        
retpoline:      Y
intree:         Y
name:           sch_netem
vermagic:       4.15.0-33-generic SMP mod_unload 
signat:         PKCS#7
signer:         
sig_key:        
sig_hashalgo:   md4

On a different Ubuntu server I get:
Code:
root@localhost:~# modinfo sch_netem
filename:       /lib/modules/4.15.0-32-generic/kernel/net/sched/sch_netem.ko
license:        GPL
srcversion:     97B479D10ADED0DD99F6AEC
depends:        
retpoline:      Y
intree:         Y
name:           sch_netem
vermagic:       4.15.0-32-generic SMP mod_unload 
signat:         PKCS#7
signer:         
sig_key:        
sig_hashalgo:   md4

# 5  
Code:
ing:~ modinfo sch_netem
modinfo: ERROR: Module sch_netem not found.
ing:~

Actually kernel-modules-extra, iproute-tc packages are installed.. I guess this sch_netem is for ubuntu..
I am waiting Smilie
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #273
Difficulty: Easy
In December 1939, Turing solved the essential part of the naval indicator system, which was easier and less complex than the indicator systems used by the other services.
True or False?

8 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Command to change add permissions for a new user to all files in all subfolders and folders

Hi there! I'm new to Unix and haven't done command line stuff since MS-Dos and Turbo Pascal (hah!), I would love some help figuring out this basic command (what I assume is basic). I'd like to add a User to the permissions of all files in a folder and all files in all subfolders, as well... (9 Replies)
Discussion started by: Janjbrt
9 Replies

2. Shell Programming and Scripting

Add character to specific columns using sed or awk and make it a permanent change

Hi, I am writing a shell script where I want that # should be added in all those lines as the first character where the pattern matches. file has lot of functions defined a.sh #!/bin/bash fn a { beautiful evening sunny day } fn b { } fn c { hello world .its a beautiful day ... (12 Replies)
Discussion started by: ashima jain
12 Replies

3. UNIX for Dummies Questions & Answers

Using sed to change lines and add them if they don't exist..

I've googled the hell out of this, and in my quest to advance my knowledge and expertise in modifying phones to make them more awesome, I ended up here. I've found answers about patterns and whatnot that seem really complex for what I am trying to do, and basically it is this: if the line says... (2 Replies)
Discussion started by: Silentbtdeadly
2 Replies

4. UNIX for Dummies Questions & Answers

BASH: Change alias to script to add a task

Hi. I use an alias, "homeperm" as shorthand for curl -o. Since most of what I download via cUrl is graphic image files -- jpeg files -- I'd like to be able to change this alias to a script, or use it to invoke a function, which will not only download the file but date-stamp it using Exiv2 in... (4 Replies)
Discussion started by: SilversleevesX
4 Replies

5. Linux

IPtable rule help need

Hi, I need to configure iptable such that whatever request comes to 192.168.0.4 needs to forwarded to 192.168.0.50 and only port 80 and 443 needs to be forwarded others need to be blocked.... Thanks gr8 forum:) (1 Reply)
Discussion started by: iron_michael86
1 Replies

6. Post Here to Contact Site Administrators and Moderators

Rule # 8

In light of this board's rule stating "no BSD vs. Linux vs. Windows or similar threads," is the following post legal (can I post it)? Hi. I'm thinking about obtaining a web server for business purposes and I want to learn to administer and maintain the server myself. I need to be able to use... (1 Reply)
Discussion started by: bluegospel
1 Replies

7. Shell Programming and Scripting

How do I add the option to change the path in a menu?

How do I add the option to change the path in a menu? I have this script. The user chooses a number and had the option of doing something, looking for log files etc. There is a possibility they might want to look at a different path other than what I have given them such as... (2 Replies)
Discussion started by: taekwondo
2 Replies

8. Email Antispam Techniques and Email Filtering

procmail rule

I can tell this is not a recently active formum, but here goes, "why doesn't this procmail rule block messages with víagra or v1agra appearing in the subject header :0 * ^Subject:.*(víagra¦v1agra¦pénis¦prescripti0n¦Medicati0n¦M0rtgage¦Xanaxz) { LOG="(THE 7 DIRTY WORDS) " :0 ... (4 Replies)
Discussion started by: jones
4 Replies

Featured Tech Videos