Documentation/driver-api/80211/mac80211.rst GitHub 원문 ↗

Linux 6.18.37 · Driver API / 802.11

mac80211 Subsystem Basics

mac80211 드라이버의 하드웨어 등록, PHY, 가상 인터페이스, RX와 TX, 프레임 필터링 및 작업 큐 기본 사항을 설명합니다.

Source pathDocumentation/driver-api/80211/mac80211.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약과 해설

mac80211.rst:1-155

mac80211 드라이버의 하드웨어 등록, PHY, 가상 인터페이스, RX와 TX, 프레임 필터링 및 작업 큐 기본 사항을 설명합니다. 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, 미완성된 TBD 표기, kernel-doc 지시문, 함수명, 심볼, 소스 경로와 원문 줄 좌표를 보존합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 ===========================
2 mac80211 subsystem (basics)
3 ===========================
4
5 You should read and understand the information contained within this
6 part of the book while implementing a mac80211 driver. In some chapters,
7 advanced usage is noted, those may be skipped if this isn't needed.
8
9 This part of the book only covers station and monitor mode
10 functionality, additional information required to implement the other
11 modes is covered in the second part of the book.
12
13 Basic hardware handling
14 =======================
15
16 TBD
17
18 This chapter shall contain information on getting a hw struct allocated
19 and registered with mac80211.
20
21 Since it is required to allocate rates/modes before registering a hw
22 struct, this chapter shall also contain information on setting up the
23 rate/mode structs.
24
25 Additionally, some discussion about the callbacks and the general
26 programming model should be in here, including the definition of
27 ieee80211_ops which will be referred to a lot.
28
29 Finally, a discussion of hardware capabilities should be done with
30 references to other parts of the book.
31
32 .. kernel-doc:: include/net/mac80211.h
33 :functions:
34 ieee80211_hw
35 ieee80211_hw_flags
36 SET_IEEE80211_DEV
37 SET_IEEE80211_PERM_ADDR
38 ieee80211_ops
39 ieee80211_alloc_hw
40 ieee80211_register_hw
41 ieee80211_unregister_hw
42 ieee80211_free_hw
43
44 PHY configuration
45 =================
46
47 TBD
48
49 This chapter should describe PHY handling including start/stop callbacks
50 and the various structures used.
51
52 .. kernel-doc:: include/net/mac80211.h
53 :functions:
54 ieee80211_conf
55 ieee80211_conf_flags
56
57 Virtual interfaces
58 ==================
59
60 TBD
61
62 This chapter should describe virtual interface basics that are relevant
63 to the driver (VLANs, MGMT etc are not.) It should explain the use of
64 the add_iface/remove_iface callbacks as well as the interface
65 configuration callbacks.
66
67 Things related to AP mode should be discussed there.
68
69 Things related to supporting multiple interfaces should be in the
70 appropriate chapter, a BIG FAT note should be here about this though and
71 the recommendation to allow only a single interface in STA mode at
72 first!
73
74 .. kernel-doc:: include/net/mac80211.h
75 :functions: ieee80211_vif
76
77 Receive and transmit processing
78 ===============================
79
80 what should be here
81 -------------------
82
83 TBD
84
85 This should describe the receive and transmit paths in mac80211/the
86 drivers as well as transmit status handling.
87
88 Frame format
89 ------------
90
91 .. kernel-doc:: include/net/mac80211.h
92 :doc: Frame format
93
94 Packet alignment
95 ----------------
96
97 .. kernel-doc:: net/mac80211/rx.c
98 :doc: Packet alignment
99
100 Calling into mac80211 from interrupts
101 -------------------------------------
102
103 .. kernel-doc:: include/net/mac80211.h
104 :doc: Calling mac80211 from interrupts
105
106 functions/definitions
107 ---------------------
108
109 .. kernel-doc:: include/net/mac80211.h
110 :functions:
111 ieee80211_rx_status
112 mac80211_rx_encoding_flags
113 mac80211_rx_flags
114 mac80211_tx_info_flags
115 mac80211_tx_control_flags
116 mac80211_rate_control_flags
117 ieee80211_tx_rate
118 ieee80211_tx_info
119 ieee80211_tx_info_clear_status
120 ieee80211_rx
121 ieee80211_rx_ni
122 ieee80211_rx_irqsafe
123 ieee80211_tx_status_skb
124 ieee80211_tx_status_ni
125 ieee80211_tx_status_irqsafe
126 ieee80211_rts_get
127 ieee80211_rts_duration
128 ieee80211_ctstoself_get
129 ieee80211_ctstoself_duration
130 ieee80211_generic_frame_duration
131 ieee80211_wake_queue
132 ieee80211_stop_queue
133 ieee80211_wake_queues
134 ieee80211_stop_queues
135 ieee80211_queue_stopped
136
137 Frame filtering
138 ===============
139
140 .. kernel-doc:: include/net/mac80211.h
141 :doc: Frame filtering
142
143 .. kernel-doc:: include/net/mac80211.h
144 :functions: ieee80211_filter_flags
145
146 The mac80211 workqueue
147 ======================
148
149 .. kernel-doc:: include/net/mac80211.h
150 :doc: mac80211 workqueue
151
152 .. kernel-doc:: include/net/mac80211.h
153 :functions:
154 ieee80211_queue_work
155 ieee80211_queue_delayed_work
156

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

mac80211 서브시스템 기본 사항

1-12

mac80211 드라이버를 구현할 때는 이 문서 부분의 내용을 읽고 이해해야 합니다. 일부 장에는 고급 사용법이 표시되어 있으며, 해당 기능이 필요하지 않다면 그 내용은 건너뛸 수 있습니다.

이 부분은 스테이션 모드와 모니터 모드 기능만 다룹니다. 다른 모드를 구현하는 데 필요한 추가 정보는 문서의 두 번째 부분에서 설명합니다.

기본 하드웨어 처리

13-43

이 장의 상세 설명은 아직 `TBD`입니다. 앞으로 하드웨어 구조체를 할당하고 mac80211에 등록하는 방법을 담아야 합니다.

하드웨어 구조체를 등록하기 전에 전송률과 모드를 할당해야 하므로, 전송률 및 모드 구조체를 설정하는 방법도 이 장에서 설명해야 합니다.

콜백과 전반적인 프로그래밍 모델도 여기에서 논의해야 합니다. 특히 문서 전체에서 자주 참조할 `ieee80211_ops`의 정의를 포함해야 합니다.

마지막으로 다른 문서 부분을 참조하면서 하드웨어 기능을 논의해야 합니다. 다음 원문 블록은 하드웨어 구조체, 기능 플래그, 장치 및 영구 주소 설정, 연산 집합, 하드웨어 할당, 등록, 등록 해제와 해제 API를 지정합니다.

.. kernel-doc:: include/net/mac80211.h
   :functions:
        ieee80211_hw
        ieee80211_hw_flags
        SET_IEEE80211_DEV
        SET_IEEE80211_PERM_ADDR
        ieee80211_ops
        ieee80211_alloc_hw
        ieee80211_register_hw
        ieee80211_unregister_hw
        ieee80211_free_hw

PHY 구성

44-56

PHY 구성의 상세 설명은 아직 `TBD`입니다. 이 장은 시작 및 정지 콜백과 사용되는 여러 구조체를 포함한 PHY 처리 방법을 설명해야 합니다.

다음 원문 블록은 PHY 구성 자료 구조인 `ieee80211_conf`와 구성 플래그인 `ieee80211_conf_flags`의 문서를 연결합니다.

.. kernel-doc:: include/net/mac80211.h
   :functions:
        ieee80211_conf
        ieee80211_conf_flags

가상 인터페이스

57-76

가상 인터페이스의 상세 설명은 아직 `TBD`입니다. 이 장은 드라이버와 관련된 가상 인터페이스의 기본 사항을 설명해야 하며, VLAN이나 관리 프레임 관련 사항은 범위에 포함하지 않습니다.

`add_iface`와 `remove_iface` 콜백 및 인터페이스 구성 콜백의 사용법을 설명해야 합니다. AP 모드 관련 사항은 AP 모드 장에서 다뤄야 합니다.

여러 인터페이스 지원은 해당 장에서 다뤄야 하지만, 여기에도 눈에 잘 띄는 주의 사항을 두어야 합니다. 초기 구현에서는 STA 모드의 인터페이스 하나만 허용할 것을 권장합니다.

.. kernel-doc:: include/net/mac80211.h
   :functions: ieee80211_vif

수신 및 송신 처리

77-136

이 장에 무엇을 넣어야 하는지에 관한 상세 설명은 아직 `TBD`입니다. mac80211과 드라이버의 수신 및 송신 경로뿐 아니라 송신 상태 처리도 설명해야 합니다.

프레임 형식 하위 절은 `include/net/mac80211.h`의 `Frame format` kernel-doc 문단을 포함합니다.

.. kernel-doc:: include/net/mac80211.h
   :doc: Frame format

패킷 정렬 하위 절은 `net/mac80211/rx.c`의 `Packet alignment` kernel-doc 문단을 포함합니다.

.. kernel-doc:: net/mac80211/rx.c
   :doc: Packet alignment

인터럽트에서 mac80211을 호출하는 방법에 관한 하위 절은 같은 이름의 kernel-doc 문단을 포함합니다.

.. kernel-doc:: include/net/mac80211.h
   :doc: Calling mac80211 from interrupts

함수 및 정의 하위 절은 RX 상태와 인코딩 플래그, RX 및 TX 플래그, 속도 제어 플래그, 전송률과 TX 정보, 수신 및 송신 상태 보고, RTS와 CTS-to-self 지속 시간, 일반 프레임 지속 시간, 큐 시작과 정지 및 상태 확인 API를 지정합니다.

.. kernel-doc:: include/net/mac80211.h
   :functions:
        ieee80211_rx_status
        mac80211_rx_encoding_flags
        mac80211_rx_flags
        mac80211_tx_info_flags
        mac80211_tx_control_flags
        mac80211_rate_control_flags
        ieee80211_tx_rate
        ieee80211_tx_info
        ieee80211_tx_info_clear_status
        ieee80211_rx
        ieee80211_rx_ni
        ieee80211_rx_irqsafe
        ieee80211_tx_status_skb
        ieee80211_tx_status_ni
        ieee80211_tx_status_irqsafe
        ieee80211_rts_get
        ieee80211_rts_duration
        ieee80211_ctstoself_get
        ieee80211_ctstoself_duration
        ieee80211_generic_frame_duration
        ieee80211_wake_queue
        ieee80211_stop_queue
        ieee80211_wake_queues
        ieee80211_stop_queues
        ieee80211_queue_stopped

프레임 필터링

137-145

프레임 필터링 절은 `include/net/mac80211.h`의 `Frame filtering` kernel-doc 문단과 `ieee80211_filter_flags` 플래그 문서를 포함합니다.

.. kernel-doc:: include/net/mac80211.h
   :doc: Frame filtering

.. kernel-doc:: include/net/mac80211.h
   :functions: ieee80211_filter_flags

mac80211 작업 큐

146-155

mac80211 작업 큐 절은 `include/net/mac80211.h`의 `mac80211 workqueue` 문단과 즉시 또는 지연 작업을 큐에 넣는 `ieee80211_queue_work`, `ieee80211_queue_delayed_work` 함수 문서를 포함합니다.

.. kernel-doc:: include/net/mac80211.h
   :doc: mac80211 workqueue

.. kernel-doc:: include/net/mac80211.h
   :functions:
        ieee80211_queue_work
        ieee80211_queue_delayed_work