Skip to content

Add Linux iwconfig #2122

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions ntc_templates/templates/index
Original file line number Diff line number Diff line change
Expand Up @@ -806,6 +806,7 @@ linux_pct_config_1.textfsm, .*, linux, pct config \d+
linux_ip_vrf_show.textfsm, .*, linux, ip v[[rf]] [[show]]
linux_qm_config_1.textfsm, .*, linux, qm c[[onfig]] \d+
linux_pveversion.textfsm, .*, linux, pveversion
linux_iwconfig.textfsm, .*, linux, iwconfig
linux_pct_list.textfsm, .*, linux, pct list
linux_qm_list.textfsm, .*, linux, qm list
linux_arp_-a.textfsm, .*, linux, arp -a
Expand Down
40 changes: 40 additions & 0 deletions ntc_templates/templates/linux_iwconfig.textfsm
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
Value Required INTERFACE (\S+)
Value NICKNAME (\S.+\S)
Value ESSID (\S.+\S|\S+)
Value MODE (\S+)
Value FREQUENCY (\S.+\S)
Value ACCESS_POINT (\S+)
Value SENSITIVITY (\S+)
Value BIT_RATE (\d+|-?\d+(?:\.\d+)?\s(?:Mb\/s)?)
Value TX_POWER (\S.+\S)
Value RETRY_SHORT_LIMIT (\w+)
Value RTS_THR (\S+)
Value FRAGMENT_THR (\S+)
Value ENCRYPTION_KEY (\S+)
Value POWER_MANAGEMENT (\S+)
Value LINK_QUALITY (\S+)
Value SIGNAL_LEVEL (\S+|-?\d+(?:\.\d+)?\s(?:dBm)?)
Value NOISE_LEVEL (\S+)
Value RX_INVALID_NWID (\w+)
Value RX_INVALID_CRYPT (\w+)
Value RX_INVALID_FRAG (\w+)
Value TX_EXCESSIVE_RETRIES (\w+)
Value INVALID_MISC (\w+)
Value MISSED_BEACON (\w+)


Start
^\s*wl\w+\d+ -> Continue.Record
^\s*${INTERFACE}\s+no\s+wireless\s+extensions\.$$ -> Clear
^\s*${INTERFACE}\s+(IEEE\s+802\.11\w*|unassociated)(?:\s+ESSID:off\/any)?(?:\s+Nickname:\"${NICKNAME}\")?\s*$$
^\s*${INTERFACE}\s+(IEEE\s+802\.11\w*|unassociated)(?:\s+ESSID:\"${ESSID}\"\s+)?(?:\s*Nickname:\"${NICKNAME}\")?\s*$$
^\s*${INTERFACE}\s+IEEE\s+802\.11\s+Mode:\s*${MODE}\s*Frequency:\s*${FREQUENCY}\s+Tx-Power=${TX_POWER}\s*$$
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@evilmonkey19 Would you be able to provide test data that covers this 802.11 Mode: regex?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@evilmonkey19 Would you be able to provide test data that covers this 802.11 Mode: regex?

Hello @evilmonkey19, by chance did you see this question?

Thank you!

^\s*Mode:\s*${MODE}\s+(?:Frequency(:|=)\s*${FREQUENCY}\s+)?Access\s+Point:\s+${ACCESS_POINT}(?:\s+Tx-Power\s*=\s*${TX_POWER})?\s*$$
^\s*(?:Bit\s+Rate(:|=)${BIT_RATE})?(?:\s*Sensitivity:${SENSITIVITY})?(?:\s+Tx-Power=${TX_POWER})?\s*$$
^\s*Retry(?:\s+short\s+limit)?:${RETRY_SHORT_LIMIT}\s+RTS\s+thr:${RTS_THR}\s+Fragment\s+thr:${FRAGMENT_THR}\s*$$
^\s*Encryption\s+key:\s*${ENCRYPTION_KEY}\s*$$
^\s*Power\s+Management:${POWER_MANAGEMENT}\s*$$
^\s*Link\s+Quality(:|=)${LINK_QUALITY}\s+Signal\s+level(:|=)${SIGNAL_LEVEL}(?:\s+Noise\s+level(:|=)${NOISE_LEVEL})?\s*$$
^\s*Rx\s+invalid\s+nwid:${RX_INVALID_NWID}\s+Rx\s+invalid\s+crypt:${RX_INVALID_CRYPT}\s+Rx\s+invalid\s+frag:${RX_INVALID_FRAG}\s*$$
^\s*Tx\s+excessive\s+retries:${TX_EXCESSIVE_RETRIES}\s+Invalid\s+misc:${INVALID_MISC}\s+Missed\s+beacon:${MISSED_BEACON}\s*$$
^. -> Error
64 changes: 64 additions & 0 deletions tests/linux/iwconfig/linux_iwconfig.raw
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
lo no wireless extensions.

eth0 no wireless extensions.

wlan0 IEEE 802.11 ESSID:"My_home"
Mode:Managed Frequency:5.18 GHz Access Point: AA:AA:AA:AA:AA:AA
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The only "label" that has a space after the colon (or equal sign) separator is Access Point.

  1. Do we have test data that supports the existence of spaces after the colon/equals?

  2. Should we remove some of those fluff whitespace regexes?

Bit Rate=24 Mb/s Tx-Power=31 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:on
Link Quality=56/70 Signal level=-54 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:155 Invalid misc:0 Missed beacon:0

wlan1 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off

wlan2 IEEE 802.11 ESSID:"My_other_home"
Mode:Managed Frequency:5.22 GHz Access Point: AA:AA:AA:AA:AA:AA
Bit Rate=200 Mb/s Tx-Power=31 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:on
Link Quality=62/70 Signal level=-48 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:7 Invalid misc:0 Missed beacon:0

wlan3 unassociated Nickname:"<WIFI@REALTEK>"
Mode:Managed Frequency=5.18 GHz Access Point: Not-Associated
Comment on lines +30 to +31
Copy link
Collaborator

@mjbear mjbear May 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Frequency=5.18 GHz

Was this equal sign = instead of colon : an accidental modification?
(None of the other frequency labels are like this.)

Sensitivity:0/0
Retry:off RTS thr:off Fragment thr:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

wlan4 IEEE 802.11AX ESSID:"My_home" Nickname:"<WIFI@REALTEK>"
Mode:Managed Frequency:5.18 GHz Access Point: AA:AA:AA:AA:AA:AA
Bit Rate:574 Mb/s Sensitivity:0/0
Retry:off RTS thr:off Fragment thr:off
Power Management:off
Link Quality=58/100 Signal level=58/100 Noise level=0/100
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

wlan5 IEEE 802.11bgn ESSID:"HS" Nickname:"<WIFI@REALTEK>"
Mode:Managed Frequency:2.452 GHz Access Point: AA:AA:AA:AA:AA:AA
Bit Rate:300 Mb/s Sensitivity:0/0
Retry:off RTS thr:off Fragment thr:off
Power Management:off
Link Quality=60/100 Signal level=60/100 Noise level=0/100
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

wlan6 IEEE 802.11 ESSID:"HS"
Mode:Managed Frequency:2.452 GHz Access Point: AA:AA:AA:AA:AA:AA
Bit Rate=72.2 Mb/s Tx-Power=31 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
Link Quality=62/70 Signal level=-48 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:4 Invalid misc:0 Missed beacon:0
163 changes: 163 additions & 0 deletions tests/linux/iwconfig/linux_iwconfig.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
---
parsed_sample:
- access_point: "AA:AA:AA:AA:AA:AA"
bit_rate: ""
encryption_key: "off"
essid: "My_home"
fragment_thr: "off"
frequency: "5.18 GHz"
interface: "wlan0"
invalid_misc: "0"
link_quality: "56/70"
missed_beacon: "0"
mode: "Managed"
nickname: ""
noise_level: ""
power_management: "on"
retry_short_limit: "7"
rts_thr: "off"
rx_invalid_crypt: "0"
rx_invalid_frag: "0"
rx_invalid_nwid: "0"
sensitivity: ""
signal_level: "-54 dBm"
tx_excessive_retries: "155"
tx_power: ""
- access_point: "Not-Associated"
bit_rate: ""
encryption_key: ""
essid: ""
fragment_thr: "off"
frequency: ""
interface: "wlan1"
invalid_misc: ""
link_quality: ""
missed_beacon: ""
mode: "Managed"
nickname: ""
noise_level: ""
power_management: "off"
retry_short_limit: "7"
rts_thr: "off"
rx_invalid_crypt: ""
rx_invalid_frag: ""
rx_invalid_nwid: ""
sensitivity: ""
signal_level: ""
tx_excessive_retries: ""
tx_power: ""
- access_point: "AA:AA:AA:AA:AA:AA"
bit_rate: ""
encryption_key: "off"
essid: "My_other_home"
fragment_thr: "off"
frequency: "5.22 GHz"
interface: "wlan2"
invalid_misc: "0"
link_quality: "62/70"
missed_beacon: "0"
mode: "Managed"
nickname: ""
noise_level: ""
power_management: "on"
retry_short_limit: "7"
rts_thr: "off"
rx_invalid_crypt: "0"
rx_invalid_frag: "0"
rx_invalid_nwid: "0"
sensitivity: ""
signal_level: "-48 dBm"
tx_excessive_retries: "7"
tx_power: ""
- access_point: "Not-Associated"
bit_rate: ""
encryption_key: ""
essid: ""
fragment_thr: "off"
frequency: "5.18 GHz"
interface: "wlan3"
invalid_misc: "0"
link_quality: "0"
missed_beacon: "0"
mode: "Managed"
nickname: "<WIFI@REALTEK>"
noise_level: "0"
power_management: "off"
retry_short_limit: "off"
rts_thr: "off"
rx_invalid_crypt: "0"
rx_invalid_frag: "0"
rx_invalid_nwid: "0"
sensitivity: ""
signal_level: "0"
tx_excessive_retries: "0"
tx_power: ""
- access_point: "AA:AA:AA:AA:AA:AA"
bit_rate: ""
encryption_key: ""
essid: "My_home"
fragment_thr: "off"
frequency: "5.18 GHz"
interface: "wlan4"
invalid_misc: "0"
link_quality: "58/100"
missed_beacon: "0"
mode: "Managed"
nickname: "<WIFI@REALTEK>"
noise_level: "0/100"
power_management: "off"
retry_short_limit: "off"
rts_thr: "off"
rx_invalid_crypt: "0"
rx_invalid_frag: "0"
rx_invalid_nwid: "0"
sensitivity: ""
signal_level: "58/100"
tx_excessive_retries: "0"
tx_power: ""
- access_point: "AA:AA:AA:AA:AA:AA"
bit_rate: ""
encryption_key: ""
essid: "HS"
fragment_thr: "off"
frequency: "2.452 GHz"
interface: "wlan5"
invalid_misc: "0"
link_quality: "60/100"
missed_beacon: "0"
mode: "Managed"
nickname: "<WIFI@REALTEK>"
noise_level: "0/100"
power_management: "off"
retry_short_limit: "off"
rts_thr: "off"
rx_invalid_crypt: "0"
rx_invalid_frag: "0"
rx_invalid_nwid: "0"
sensitivity: ""
signal_level: "60/100"
tx_excessive_retries: "0"
tx_power: ""
- access_point: "AA:AA:AA:AA:AA:AA"
bit_rate: "72.2 Mb/s"
encryption_key: ""
essid: "HS"
fragment_thr: "off"
frequency: "2.452 GHz"
interface: "wlan6"
invalid_misc: "0"
link_quality: "62/70"
missed_beacon: "0"
mode: "Managed"
nickname: ""
noise_level: ""
power_management: "on"
retry_short_limit: "7"
rts_thr: "off"
rx_invalid_crypt: "0"
rx_invalid_frag: "0"
rx_invalid_nwid: "0"
sensitivity: ""
signal_level: "-48 dBm"
tx_excessive_retries: "4"
tx_power: "31 dBm"
Loading