# Software > Linux >  Revenge of the Madwifi

## koki

Επιτέλους κάναμε εκείνες τις διάσημες δοκιμές μεταξύ του γενικώς πολύ καλού ως σημείο αναφοράς link oNikosEimai (737) - mmlab (66)

Προχθές το γυρίσαμε (το 66) σε madwifi-ng, και δοκιμάσαμε το διάσημο abolt 24 (λέγε με FastFrames κοκ) στο link με Νίκο, καθώς είναι ένα γενικά καλό link, σταθερό, κοντινό, και με Linux(mad-ng)-Linux(mad-ng).

Υπάρχουν υποψίες ότι ίσως εάν βάζαμε το πιάτο σε άλλη σημείο, η fresnel να σωζόταν από κάτι αδιάκριτα πεζούλια, αλλά και πάλι, με μηδενική ισχύ έχουμε σήματα -67 - -69 στο 1,18klm.

Ιδού τα αποτελέσματα του bandwidth test:

TCP oneway: περ. 32mbit
TCP bidirectional test simultaneously : 33+ mbit (16-17 & 17-18)
UDP bidirectional test simultaneously : 40+ mbit (19-20 & 19-21)

Για του λόγου το αληθές, ένα screenshot από το jnettop (ένα εργαλειάκι σαν το iptraf, αλλά το iptraf και ενίοτε κάνει λάθος/καθυστερεί, αλλά και έχει μια κακή σχέση με τις atheros):
(δεν είναι και πάλι ακριβές, όσο το iperf το ίδιο, αλλά u get the picture)


Ζήτω το Λινουξ!

----------


## Acinonyx

Επίσης και το link spooky-acinonyx παιζει με abolt 24 και πιάνει κάτα μέσο όρο 35mbit TCP με peak στα 37.  ::

----------


## koki

Σε περίπτωση που κάποιος τα χρειαστεί, τα test έγιναν ως εξής

TCP
Router1 : iperf -s -p 5001 -t 60 -i 5 
Router2: iperf -c ip.tou.router.1 -p 5001 -d -L 496 -t 60 -i 5
Router1: iperf -c ip.tou.router.2 -p 496 -t 60 -i 5


UDP:
Router1 : iperf -s -p 5001 -t 60 -i 5 -u
Router2: iperf -c ip.tou.router.1 -p 5001 -d -L 496 -t 60 -i 5 -u -b 25M
Router1: iperf -c ip.tou.router.2 -p 496 -t 60 -i 5 -u -b 25M 

εάν κάνω λάθος Νίκο, πες μου να τα διορθώσω

----------


## mbjp

εξαιρετικά νέα

δυστυχώς ελάχιστοι θα έχουν την ευκαιρία να το δοκιμάσουν στη πράξη  ::

----------


## xaotikos

> εξαιρετικά νέα
> 
> δυστυχώς ελάχιστοι θα έχουν την ευκαιρία να το δοκιμάσουν στη πράξη


Για δώστε κανένα παραπάνω info...  ::

----------


## koki

Τι ακριβώς θες παραπάνω; Ειλικρινά δεν ξέρω ποια είναι τα κενά σου

----------


## Neuromancer

> Επιτέλους κάναμε εκείνες τις διάσημες δοκιμές μεταξύ του γενικώς πολύ καλού ως σημείο αναφοράς link oNikosEimai (737) - mmlab (66)
> 
> Προχθές το γυρίσαμε (το 66) σε madwifi-ng, και δοκιμάσαμε το διάσημο *abolt 24 (λέγε με FastFrames κοκ)* στο link με Νίκο, 
> Ζήτω το Λινουξ!


μάλλον αυτό ...

----------


## koki

Αυτό είναι το αντίστοιχο "nstreme" του Linux.

Η βασική διαφορά είναι ότι το FastFraming επιτελείται στο ίδιο το atheros chipset και όχι στην CPU του μηχανήματος. Έτσι δεν ανεβάζει load, και δεν γίνεται απαγορευτικό για WRAP και άλλα μικρής επεξεργ. ισχύος μηχανήματα. 

Για την ακρίβεια, με την εντολή 
iwpriv ath0 abolt 24
ενεργοποιούνται οι δυνατότητες FastFrames & Bursting
για περισσότερα δείτε εδώ ή εδώ(ιντερνετ)

Για άλλο παράδειγμα χρήσης και σύγκριση των επιδόσεων με και χωρίς τη δυνατότητα δείτε και δημοσίευση του Master Acinonyx.

----------


## xaotikos

Thanx koko, θα το δοκιμάσουμε και Λάρσα αν είναι  ::

----------


## sotirisk

Έλα ρε abolt.
Με τους ng το bandwidth με τον onikoseimai είχε πέσει από τα 28-29 (με old) στα 25-26 (26 ήταν ό,τι καλύτερο είχα δει).

Τώρα με το abolt είμαστε εδώ:



```
# iperf -c 10.2.31.225 -t 30 -i 5 -p 80
------------------------------------------------------------
Client connecting to 10.2.31.225, TCP port 80
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[  3] local 10.2.31.230 port 3783 connected with 10.2.31.225 port 80
[  3]  0.0- 5.0 sec  18.9 MBytes  31.7 Mbits/sec
[  3]  5.0-10.0 sec  19.1 MBytes  32.1 Mbits/sec
[  3] 10.0-15.0 sec  19.3 MBytes  32.3 Mbits/sec
[  3] 15.0-20.0 sec  19.3 MBytes  32.5 Mbits/sec
[  3] 20.0-25.0 sec  19.1 MBytes  32.0 Mbits/sec
[  3] 25.0-30.0 sec  19.0 MBytes  31.9 Mbits/sec
[  3]  0.0-30.0 sec    115 MBytes  32.1 Mbits/sec
```

Κι εσύ βάλει abolt  ::   ::   ::   :: 

μιλάμε (χοντρά χοντρά) για 32-26/32 *100 = 18.75% πάνω  ::

----------


## alasondro

σειρά του compression για να δέσει το γλυκό.......

----------


## sotirisk

> σειρά του compression για να δέσει το γλυκό.......


abolt 234, viva la revolucion  ::

----------


## Ernest0x

Διαλεχτή, κάνε το ίδιο test με abolt 28 και σύγκρινε τ' αποτελέσματα με τα παλιά.

----------


## alasondro

> Διαλεχτή, κάνε το ίδιο test με abolt 28 και σύγκρινε τ' αποτελέσματα με τα παλιά.


iwpriv ath0 abolt 28
Interface doesn't accept private ioctl...
abolt (8BE0): Invalid argument

για δώσε λεπτομέρεις....

WMM based cwmin/cwmax/burst tuning

τι είναι αυτό;

----------


## Ernest0x

> iwpriv ath0 abolt 28
> Interface doesn't accept private ioctl...
> abolt (8BE0): Invalid argument
> 
> για δώσε λεπτομέρεις....
> 
> WMM based cwmin/cwmax/burst tuning
> 
> τι είναι αυτό;


Και σε σένα αυτό βγάζει; Δεν μπορώ να καταλάβω γιατί... Είναι το compression (|=0x4) που δεν περνάει. H 'iwpriv athX compression 1' όμως περνάει. Μυστήριο...

Το WMM based cwmin/cwmax/burst tuning δεν ξέρω ακριβώς τι κάνει. Υποθέτω πως κάνει enable το WMM extention και κάνει αυτόματα tune τις τιμές cwmin/cwmax/burst, αλλά δεν είμαι σίγουρος...

----------


## koki

```
wmm - WMM Support Enable/Disable

    Number of Input Arguments: 1 
    Number of Returned Arguments: 0 
    Default Value: Enabled 
    Resets State Machine After Command: Yes 

This command enables or disables WMM support. Passing a value of 1 to the driver enables WMM. Passing a value of 0 to the driver disables WMM. By default, WMM is enabled.

    Example:The following command disables WMM support on ath0.

        myprompt# iwpriv ath0 wmm 0
```

Τα cwmin / cwmax είναι QoS settings
CWmin is a setting that controls the random delay before packets are transmitted
CWmax: maximum contention window






> WMM is a core technology for interoperable Quality of Service and support for enhanced multimedia capabilities. Organizations like Atheros that support this initiative are clearly committed to standards that benefit the industry.



και http://www.wi-fi.org/opensection/knowledge_center/wmm/

----------


## alasondro

το 
iwpriv athX compression 1 το παίρνει
αλλά αν κάνω μετά iwpriv athX get_compression 
μου επιστρέφει μηδέν οπότε είναι για τα μάτια του κόσμου

----------


## Ernest0x

> το 
> iwpriv athX compression 1 το παίρνει
> αλλά αν κάνω μετά iwpriv athX get_compression 
> μου επιστρέφει μηδέν οπότε είναι για τα μάτια του κόσμου


Σωστά. Μάλλον δεν υποστηρίζεται από το chipset των καρτών μας (;). Σε τι κάρτα το δοκιμάζεις;

----------


## alasondro

σε όλες τι κάρτες που έχω...και έχω όλα τα είδη....
απλά δεν έχει ενεργοποιηθεί το functionality σε επίπεδο κώδικα πιστεύω
δεν νομίζω οτι είναι θέμα hardware

----------


## Ernest0x

To compression είναι hard-coded capability του (MAC) chipset, οπότε δεν υλοποιείται στον driver. O driver απλά το ενεργοποιεί μέσω κλήσης του hal. Κάτι άλλο παίζει...

----------


## koki

ο Βασίλης είχε κάνει κάτι δοκιμές, δεν είχε καταφέρει και πολλά πάντως.


Δείτε και εδώ





> While you are right that the compression feature has been announced in the releases as working, it seems to be broken. The reason has to be examined. It could be a bug in the driver, a problem in the HAL or an issue related to not having described the circumstances in detail when compression is working and when not - or something completely different.



(το ξέρω ότι είναι για προηγ. έκδοση, αλλά λέει κάτι)

----------


## koki

Παρεμπιπτόντως γενικού ενδιαφέροντος για τους αναγνώστες αυτής της συζήτησης θα είναι και η περιγραφή των επιλογών για "super" links στο madwifi.org

Από τις επιλογές αυτές (Bursting, FastFrames, Compression, Turbo Mode, AR, XR) οι δύο πρώτες δουλεύουν (δείτε και την αρχή της συζήτησης) , η τρίτη φαίνεται να αρνείται να δουλέψει, το Turbo από όσο γνωρίζω γίνεται, αλλά δεν προτείνεται (για άλλους λόγους, που δεν έχουν να κάνουν με OS) καθώς και η επόμενη (που αφορά dynamic Turbo), για την τελευταία (xR) δεν έχω γνώση.

----------


## NetTraptor

http://www.atheros.com/pt/whitepaper...whitepaper.pdf

No big deal...

----------


## Mick Flemm

Στο BuildCaps.inc δοκιμάστε να αλλάξετε το...



```
ifndef ATH_CAP_SUPERG_COMP
export ATH_CAP_SUPERG_COMP=0
endif
```

σε



```
ifndef ATH_CAP_SUPERG_COMP
export ATH_CAP_SUPERG_COMP=1
endif
```

κάντε recompile και ξαναδοκιμάστε...

----------


## Mick Flemm

Όσο για το WMM (βασικά ψάχτε για WME -> Wireless Multimedia Extensions είναι ένα υποσύνολο του 802.11e)...

cw = Contention Window (ας πούμε το κομμάτι του frame που περιέχει τα data που μεταφέρουμε). Υπάρχει μια minimum (cwmin) κι μια maximum (cwmax) τιμή που χαρακτηρίζει την κάθε "ουρά" δεδομένων (tx queues, βλ. επίσης Enhanced Distributed Channel Access (EDCA) ) και πρακτικά έχει να κάνει με το πόσο γρήγορα φεύγουν τα πακέτα (αντιστρόφως ανάλογα του μεγέθους τους). Ενημερωτικά οι τιμές αυτές είναι της μορφής 2^n -1 και ουσιαστικά στον madwifi μέσω των διαφόρων ioctls ορίζουμε το n (αυτό σε περίπτωση που θέλετε να παίξετε με το WME το οποίο θα μας δώσει το απόλυτο traffic shaping -δυστυχώς δεν έχω καθόλου χρόνο για κάτι τέτοιο, μπορώ όμως να βοηθήσω όποιον αποφασίσει να ασχοληθεί σοβαρά). Πρακτικά υπάρχουν 4 ουρές που ορίζει το standard (στον madwifi έχουμε μέχρι και 10 ουρές και το καινούριο d80211 stack υποστηρίζει μέχρι 7), μία για background traffic, μία για normal (best effort) traffic, μία για video και μία για voice (στον madwifi έχουμε άλλες 3 ουρές που χρησιμοποιούμε, μία για τα beacons, μία για το κενό μετά τα beacons -aka crap-after-beacon ή CAB queue- και μία για το Unscheduled Automatic Power Save Delivery -άλλο ένα feature του wme που προορίζεται για συσκευές με προβλήματα κατανάλωσης ενέργειας, pda κλπ). Αντίστοιχα η κάθε ουρά έχει διαφορετικό cwmin/cwmax και άρα έχει διαφορετική απόκριση.

Ένα άλλο χαρακτηριστικό της κάθε ουράς είναι το aifs (arbitrated inter-frame space) που ουσιαστικά πρόκειται για ένα κομμάτι δεδομένων που υπάρχει μεταξύ των διαφόρων frames, κι άλλο ένα χαρακτηριστικό είναι το post-backoff (random δεδομένα που κολάνε στο τέλος κάποιων frames), το burst και cbr (constant bit rate) time κλπ. Είναι κάψιμο, αν δείτε πάντως τον κώδικα και λίγο στο net θα πάρετε μια γεύση κι εγώ τώρα τα ξαναπιάνω και δεν τα έχω και πολύ "φρέσκα"  :: 

Άντε να ψαχτείτε λίγο και σε αυτά να δούμε λίγο σοβαρό traffic shaping ειδικά στο voip θα δείτε διαφορά.  :: 

Φιλιά και χρόνια πολλά κι από εδώ  ::

----------


## bedazzled

.

----------


## Mick Flemm

Μα πακέτο πάνε βρε, πώς νομίζεις ότι μπαίνουν τα πακέτα του layer3 σε ουρές του layer2 ? Ουσιαστικά μαρκάρεις το DSCP field στο IP και ο driver ανάλογα με το field τα "χώνει" στην κατάλληλη layer2 ουρά. Το CoS σε layer2 συμπληρώνει το QoS σε layer3 κι έτσι έχεις το βέλτιστο αποτέλεσμα. Δηλαδή δίνεις προτεραιότητα στο VoIP πχ. σε layer3 απ' τον router ενώ παράλληλα τα frames που αφορούν τα συγκεκριμένα πακέτα διαμορφώνονται κατάλληλα. Τώρα το QoS σε layer2 σου δίνει και άλλες δυνατότητες, για παράδειγμα ένας client που πέφτει πάνω σε ένα AP παίρνει τα cwmin/max κλπ απ' το AP και ουσιαστικά το AP του "επιβάλει" κατά κάποιο τρόπο τις παραμέτρους στο traffic που θα στίλει, κάνοντας ποιό ελαφρύ το load στο AP και δείνοντας χώρο σε άλλους. Επίσης σε layer2 μπορείς να έχεις πράγματα όπως το UAPSD που ανέφερα πριν το οποίο ουσιαστικά αντί να απασχολεί τον client (και να χάνει μπαταρία) του στέλνει δεδομένα σε ριπές (burst) μπαμ κι έξω και δεν τον κρατάει idle αρκετή ώρα (υπάρχει η δυνατότητα του network sleep, οι atheros το υποστιρίζουν -και το openhal το υποστιρίζει  :: - αλλά απ' όσο γνωρίζω δεν το χρησιμοποιούν σε client side).

----------


## [email protected]

Σε μικτό link Linux-Mikrotik κάνουν κάποια διαφορά οι ρυθμίσεις;
Εγω πάντως βαζοντας abolt 24 (απο 21 ::  δεν ειδα διαφορα σε Link με mirkotik (στην κατευθυνση προς mikrotik τουλάχιστον, στην αντιθετη δεν μπορω να δοκιμασω τωρα)

----------


## mbjp

δεν κανει καποιος αυτο & το "mad linux wiki" sticky στο forum, οπως ηταν πριν δηλαδη;;

----------


## mbjp

και συνεχιζουμε:

μετα απο κατι δοκιμες που καναμε με τον costas43gr, με fast frames disabled σε link mikrotik --- madwifi-ng χανει 2mbit περιπου σε traffic.

στο wlanconfig create οι καρτες ερχονται με οτι να'ναι abolt (άλλη με 88, αλλη με 216, αλλη με 152..)

το ερωτημα τωρα. Σε αλλο link linux-mikrotik, που βγαζει 26mbit περιπου, το abolt ειναι 218 (απο default), δηλαδη εχει enable και το XR (Extended range)
Παω να γυρισω τη παραπανω καρτα σε 216 & δινει "ioctl error"

Παω να γυρισω αυτη με το 218 σε 216 και κρεμαει ο router:




> router:~# *iwpriv ath4 abolt 216*
> *Segmentation fault*
> router:~#
> Message from [email protected] at Fri Feb 9 23:25:58 2007 ...
> localhost kernel: Oops: 0002 [#1]
> 
> Message from [email protected] at Fri Feb 9 23:25:58 2007 ...
> localhost kernel: CPU: 0
> 
> ...


μετα από κανα δυο reboot ηρθε στα ισια του..

----------


## Mick Flemm

Μπορείς σε παρακαλώ να ανοίξεις ένα ticket στο http://www.madwifi.org ?  ::  Γίνεται δουλειά αυτό τον καιρό να καθαρίσει λίγο το net80211 stack (ieee80211_setupxr+0xa1/0x111 [wlan]) + σε λίγο καιρό βγαίνει η 0.9.3 οπότε θέλουμε να είναι όσο το δυνατό ποιο stable...

----------


## Mick Flemm

Thanx  ::

----------


## Mick Flemm

Ready  :: 
http://madwifi.org/ticket/1149

----------


## mbjp

υπεροχα  ::   ::

----------

