요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
===========================
mac80211 subsystem (basics)
===========================
You should read and understand the information contained within this
part of the book while implementing a mac80211 driver. In some chapters,
advanced usage is noted, those may be skipped if this isn't needed.
This part of the book only covers station and monitor mode
functionality, additional information required to implement the other
modes is covered in the second part of the book.
Basic hardware handling
=======================
TBD
This chapter shall contain information on getting a hw struct allocated
and registered with mac80211.
Since it is required to allocate rates/modes before registering a hw
struct, this chapter shall also contain information on setting up the
rate/mode structs.
Additionally, some discussion about the callbacks and the general
programming model should be in here, including the definition of
ieee80211_ops which will be referred to a lot.
Finally, a discussion of hardware capabilities should be done with
references to other parts of the book.
.. 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 configuration
=================
TBD
This chapter should describe PHY handling including start/stop callbacks
and the various structures used.
.. kernel-doc:: include/net/mac80211.h
:functions:
ieee80211_conf
ieee80211_conf_flags
Virtual interfaces
==================
TBD
This chapter should describe virtual interface basics that are relevant
to the driver (VLANs, MGMT etc are not.) It should explain the use of
the add_iface/remove_iface callbacks as well as the interface
configuration callbacks.
Things related to AP mode should be discussed there.
Things related to supporting multiple interfaces should be in the
appropriate chapter, a BIG FAT note should be here about this though and
the recommendation to allow only a single interface in STA mode at
first!
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_vif
Receive and transmit processing
===============================
what should be here
-------------------
TBD
This should describe the receive and transmit paths in mac80211/the
drivers as well as transmit status handling.
Frame format
------------
.. kernel-doc:: include/net/mac80211.h
:doc: Frame format
Packet alignment
----------------
.. kernel-doc:: net/mac80211/rx.c
:doc: Packet alignment
Calling into mac80211 from interrupts
-------------------------------------
.. kernel-doc:: include/net/mac80211.h
:doc: Calling mac80211 from interrupts
functions/definitions
---------------------
.. 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
Frame filtering
===============
.. kernel-doc:: include/net/mac80211.h
:doc: Frame filtering
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_filter_flags
The mac80211 workqueue
======================
.. kernel-doc:: include/net/mac80211.h
:doc: mac80211 workqueue
.. kernel-doc:: include/net/mac80211.h
:functions:
ieee80211_queue_work
ieee80211_queue_delayed_work
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
mac80211 서브시스템 기본 사항
1-12mac80211 드라이버를 구현할 때는 이 문서 부분의 내용을 읽고 이해해야 합니다. 일부 장에는 고급 사용법이 표시되어 있으며, 해당 기능이 필요하지 않다면 그 내용은 건너뛸 수 있습니다.
이 부분은 스테이션 모드와 모니터 모드 기능만 다룹니다. 다른 모드를 구현하는 데 필요한 추가 정보는 문서의 두 번째 부분에서 설명합니다.
기본 하드웨어 처리
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-56PHY 구성의 상세 설명은 아직 `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-155mac80211 작업 큐 절은 `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
요약과 해설
mac80211.rst:1-155mac80211 드라이버의 하드웨어 등록, PHY, 가상 인터페이스, RX와 TX, 프레임 필터링 및 작업 큐 기본 사항을 설명합니다. 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, 미완성된 TBD 표기, kernel-doc 지시문, 함수명, 심볼, 소스 경로와 원문 줄 좌표를 보존합니다.