AWDL://CRSE MODULE 03 / 07 TOPIC HARDWARE STATUS CRITICAL_PRAGMATIC SIGNAL_LIVE
// MODULE_03 HARDWARE [GO/NO_GO_DECISION_LIVES_HERE]

العتاد وبرامج التشغيل.
هل بطاقتك قادرة أصلاً؟

الوحدة الأهمّ عملياً. كل النظرية تتحوّل إلى سؤال واحد حاسم: هل شريحة Wi-Fi لديك قادرة على المشاركة في AWDL؟ الجواب يعتمد على قدرتين عتاديتين فقط: Active Monitor Mode و Frame Injection.

طيف أوضاع الواجهة اللاسلكية

الوضعيستقبل كل الإطارات؟يرسل؟يردّ ACK تلقائياً؟صالح لـ AWDL؟
Managed (Station) لا (الموجّهة له فقط بعد association) نعم نعم (لكن بعد association) NO
Passive Monitor نعم (كل ما في الهواء) لا لا NO
Active Monitor نعم نعم نعم YES ✓
IBSS / Ad-hoc جزئياً نعم نعم (ضمن خلية ad-hoc) NO

Passive Monitor — لماذا لا يكفي

Active Monitor — الحدّ الأدنى المطلوب

Frame Injection — حقن الإطارات

معضلة SIFS — لماذا «لا بد» أن يكون من العتاد

هذه أهمّ فكرة في الوحدة كلّها. كما رأينا في 0.5، فجوة SIFS = 16 µs (5 GHz) هي المهلة القصوى بين نهاية الإطار المستلَم وبداية الـ ACK.

FIG_3.5aWHERE ACK COMES FROM · CPU vs FIRMWARE
USERSPACE your code / OWL LINUX KERNEL mac80211 driver (ath9k) WIRELESS NIC HARDWARE + FIRMWARE RF FRONTEND BASEBAND DSP MAC processor ACK generation lives here SRAM ring bufs interrupt + DMA + scheduler ~50–200 µs latency hardwired state machine < 16 µs deterministic where does ACK come from? ❌ here: too slow — IRQ > SIFS by 10× ✓ here: silicon-deterministic — fits in 16 µs
طبقات المعالجة في بطاقة Wi-Fi. توليد الـ ACK يجب أن يحدث في الـ MAC processor داخل الشريحة، لا في كود الـ kernel أو userspace.

ميزانية الـ 16 ميكروثانية يجب أن تتّسع لكل هذا:

[نهاية استقبال الإطار] ├─ فحص FCS والتأكد من سلامة الإطار ├─ مطابقة عنوان الوجهة مع عنواني (هل ACK مطلوب؟) ├─ تبديل سلسلة الراديو RX → TX (يأكل ميكروثانيات وحده) ├─ بناء إطار ACK └─ بدء البثّ [يجب أن يكتمل البدء قبل 16 µs]

لماذا يستحيل على CPU عام تحقيق هذا؟

BOTTLENECK_01

Interrupt latency

من وصول الإطار حتى تنبيه المعالج قد يستغرق وحده عشرات الميكروثانيات.

BOTTLENECK_02

DMA round-trip

نقل الإطار من الشريحة لذاكرة النظام، ثم عودة الـ ACK — رحلتان عبر الناقل.

BOTTLENECK_03

Scheduler non-determinism

تبديل سياق نظام التشغيل وجدولة المهام = عدم حتمية زمنية.

// IRON_LAW

توليد الـ ACK بتوقيت SIFS لا بد أن يحدث داخل firmware/MAC processor الشريحة. لا يمكن لأي ترقيع في الـ driver أن يضيف هذه القدرة إن لم تكن آلات الحالة والمؤقتات موجودة في السيليكون نفسه.

معمارية Linux اللاسلكية (cfg80211 / mac80211 / nl80211)

لفهم «لماذا بطاقة تعمل وأخرى لا»، افهم هذه الطبقات:

FIG_3.6aLINUX WIRELESS STACK
userspace : iw, OWL, wpa_supplicant, opendrop your tools live here ↓ nl80211 (netlink) cfg80211 kernel config layer · single API for all drivers mac80211 SoftMAC framework most MAC logic in kernel FullMAC drivers MAC logic in firmware kernel just requests ath9k Atheros ath10k / mt76 partial active mon iwlwifi Intel · closed fw brcmfmac Broadcom · closed fw SoftMAC silicon (AR92xx, AR93xx) FullMAC silicon (AX200, BCM4387)
الفرق الجوهري: SoftMAC (يسار) يضع منطق MAC في النواة فيمكن للسائق تعريضه؛ FullMAC (يمين) يحبسه داخل firmware مغلق.

الراية الحاسمة: NL80211_MNTR_FLAG_ACTIVE

في واجهة nl80211، يضبط السائق راية NL80211_MNTR_FLAG_ACTIVE فقط إذا كان العتاد يدعم active monitor.

عند غيابها:

// THE_LITMUS_TEST

وجود هذه الراية في مخرجات iw phy لواجهتك = مؤشّر قاطع على توافق العتاد مع AWDL.

root@audit: ~ · check your card
# اعرض قدرات الـ PHY كاملةً
$ iw phy

# ابحث عن دعم active monitor تحديداً
$ iw phy | grep -A4 "Supported interface modes"
$ iw list | grep -i "active monitor"

# جرّب إنشاء واجهة مراقبة فعّالة (تنجح فقط إن كان العتاد يدعمها)
$ sudo iw phy phy0 interface add mon0 type monitor flags active
$ sudo ip link set mon0 up

# إن فشل إنشاء الواجهة بعلم `active`، فالعتاد غالباً غير مؤهّل.

مسح الشرائح — ما يعمل وما لا

RECOMMENDED

Atheros AR9280 / ath9k

منصّة OWL المرجعية. السائق ath9k والعتاد AR9280 يطبّقان واجهة قريبة من SDR: يمكن أمر الشريحة بالبقاء في active monitor فتردّ ACK لأي إطار يطابق عنوانها بصرف النظر عن الـ association.

  • Active monitor: YES
  • Injection: YES
  • كل تحكّم منخفض المستوى مفهوم وموثّق علناً.
AVOID

Intel AX200 (مثال عام)

سائق iwlwifi لا يضبط NL80211_MNTR_FLAG_ACTIVE، والـ firmware لا يولّد ACK في وضع المراقبة. سيليكون Intel مصمّم لأدوار client/AP مع آلات حالة 802.11 كاملة، لا للتحكّم الخام.

  • Active monitor: NO
  • Injection: PARTIAL
  • firmware مغلق.
AVOID

Broadcom BCM4387 (Apple Silicon)

لا يعرّض active monitor لا تحت macOS ولا تحت Linux (Asahi). تحت Asahi: السائق المهندَس عكسياً ما زال مبكّراً ويفتقر لدعم المراقبة، فضلاً عن active monitor أو الحقن.

  • M1/M2: NO ACTIVE MON
  • M3/M4/M5: قيد bring-up.
  • لا تعوّل على Wi-Fi المدمج في أجهزة Apple Silicon.
CONDITIONAL

Broadcom + Nexmon (Raspberry Pi)

إطار Nexmon (من مختبر SEEMOO/TU Darmstadt — نفس فريق OWL) يرقّع firmware شرائح Broadcom المغلقة ليفعّل monitor mode والحقن على شرائح مدمجة.

  • monitor + injection: CHECK
  • active monitor + توقيت ACK: محلّ اختبار.
  • تحقّق بالاختبار العملي (lab في الوحدة 5).
// GOLDEN_RULE

ابحث عن بطاقة ath9k-based (شرائح Atheros AR92xx/AR93xx) مع تأكيد دعم active monitor وinjection. هي الخيار الأكثر ضماناً وتوثيقاً لمحاكاة AWDL.

مصفوفة قرار سريعة

الشريحة / السائقActive MonitorInjectionAWDL Ready?الملاحظة
Atheros AR9280 · ath9kYESYESPRIMARYالمنصّة المرجعية
Atheros AR9380 · ath9kYESYESYESبديل ممتاز
Qualcomm ath10kPARTIALPARTIALTESTيعتمد على الـ firmware
MediaTek mt76PARTIALYESTESTتحسّن مستمر
Intel AX200/AX210 · iwlwifiNOPARTIALNOFullMAC مغلق
Broadcom BCM4387 (M1/M2)NONONOAsahi غير ناضج
Broadcom BCM43455 + NexmonCHECKYESTESTRaspberry Pi مدمج

نقاط ارتكاز الوحدة 3

  • شرطان عتاديان للمشاركة في AWDL: Active Monitor + Frame Injection.
  • Passive monitor = تنصّت فقط (لا ACK) = لا مشاركة.
  • معضلة SIFS (16 µs) تفرض أن يكون توليد ACK في firmware لا في CPU.
  • SoftMAC (ath9k) = تحكّم دقيق؛ FullMAC (iwlwifi/brcmfmac) = غالباً مغلق.
  • راية NL80211_MNTR_FLAG_ACTIVE في iw phy = اختبار الحقيقة لتوافق بطاقتك.
  • المنصّة المرجعية: Atheros AR9280 + ath9k.

تمارين الوحدة 3

  1. على جهازك، شغّل iw phy و iw list، ووثّق: هل بطاقتك تدعم monitor؟ active monitor؟ الحقن؟
  2. اشرح بالأرقام لماذا حلقة برمجية في userspace لا يمكنها توليد ACK خلال 16 µs (قدّر زمن مقاطعة نموذجي على Linux).
  3. قارن SoftMAC و FullMAC من حيث: مرونة التحكّم، الأمان، استهلاك المعالج، ملاءمتهما لمحاكاة AWDL.