Initial ranging은 단말이 새로운 기지국에 접속하는 과정중 가장 초기에 수행되며, OPNET WiMAX 모델도 이를 지원한다. 하지만, 일반적으로 ranging의 첫번째 목적으로 언급되는 타이밍을 조정(단말의 프레임 동기가 기지국과 일치하도록)하는 절차가 OPNET WiMAX 모델에서는 수행되지 않는데, 이는 항상 모든 노드와의 동기가 일치한다고 가정한 것이라고 볼 수 있다. (이러한 가정을 한 이유는 시뮬레이션에서는 모든 노드의 동기가 일치한다고 가정하는 것이 매우 쉽기도 하거니와, 별도의 동기화 기능을 구현하는데 관심이 없었기 때문이라고 추측된다) 그래서, OPNET WiMAX 모델의 Initial ranging 절차에서 수행되는 주된 조절 기능은 전력제어이다.
다음 그림은 OPNET WiMAX 모델에서 제공하는 Initial ranging 절차이다.

 

Initial ranging은 단말에서 기지국을 선택한 후, Initial Ranging code 세트에 해당하는 CDMA 코드를 가지는 CDMA 메시지를 선택된 기지국으로 전송하면서 시작된다. 메시지를 수신한 기지국은 RNG-RSP 메시지로 응답하는데, 만약 수신 파워가 혀용범위 밖이라면 Continue 상태로 응답하여 송신 파워의 조정을 지시하고, 허용 범위이내라면 Success 상태로 응답한다(이 때에는 CDMA Alloc IE가 이어서 단말에게 전달된다). 단말이 Continue 상태의 RNG-RSP 메시지를 받으면, 송신 파워를 조정하여 다시 CDMA 메시지를 기지국으로 전송한다.
단말이 Success 상태의 RNG-RSP 메시지를 받으면, RNG-REQ 메시지를 전송한다. 이 때 RNG-REQ 메시지는 CDMA Alloc IE에서 할당해준 자원(symbol, subchannel)을 사용한다. RNG-REQ 메시지를 수신한 기지국은 Basic CID를 할당하고, 이를 RNG-RSP 메시지를 통해 단말에게 알려준다. Basic CID를 할당받은 단말은, Initial Ranging 절차를 완료하고, Periodic Ranging을 시작한다.
이러한 과정을 wimax_ss_control 프로세스 모델의 State diagram에서 추적해보면, 다음 그림과 같은 천이 과정을 따른다.

 

 

Posted by 신상헌
,

Piggyback Request(PBR)은 Grant management subheader(GMSH)에 실려서 전송된다. 다음 그림은 GMSH를 포함한 MAC PDU의 예를 표현한 것이다. (표준[1]의 Table 20 및 Figure 46 참조)

 


"WiMAX 모델(72) - Piggybacked BR"에서 설명하였듯이, OPNET WiMAX 모델에서는 GMSH가 실제로 전송되지 않으며 Generic MAC Header(GMH)를 통해서 정보가 전달된다. 대신 GMSH 크기는 GMH에 포함되어 있지 않으며, 별도의 설정을 통해 MAC PDU 크기에 반영된다. GMSH 크기 WIMAXC_MAC_SUBHEADER_GRANT_MGMT_SIZE_BITS는 wimax_support.h 파일에 16비트로 정의되어 있으며, 이는 표준[1]과 일치한다.

 

[1] IEEE 802.16-2009, "Air Interface for Broadband Wireless Access Systems", 2009

 

Posted by 신상헌
,

데이터 전송시에 대역폭 요청 메시지를 덧붙여서 전송하는 것을 Piggyback BR이라고 하며, OPNET WiMAX 모델에서도 이를 지원한다. Piggybacked BR 정보가 전달되는 구조는 다음 그림과 같다.

 


MAC PDU의 "MAC Header" 필드에 실리는 WimaxT_Mac_Header_Fields 구조체에는 piggy_back_bw_req 변수가 포함되어 있으며, 여기에 piggyback 방식으로 요청할 BW 크기를 저장하여 전달한다. 또한 type 변수에 piggyback BR을 위한 서브헤더가 포함되었음을 반영하고, MAC PDU 전체 크기에도 서브헤더 크기를 추가한다. 단, 실제로 별도의 서브헤더가 생성되어 전달되지는 않는다.

Posted by 신상헌
,

다음 그림은 표준[1]의 ARQ 재전송 동작 예를 나타낸 것이다([1]의 Figure 48 참조). SDU(상위계층 패킷)은 분할(fragmentation)되거나 packing되어 MAC PDU에 담겨질 수 있으며, 재전송시 재정열(rearrangement)되어 전송될 수 있다.

 


OPNET WiMAX 모델 ARQ에서도 MAC PDU 구성시 SDU 분할과 packing을 지원한다. 하지만, 재정열은 지원하지 않는다. 즉, 재전송은 항상 처음 전송했던 MAC PDU와 동일한 단위로 진행된다. 재정열을 지원하지 않는 주된 이유는 "WiMAX 모델(69) - ARQ 기능"에서 설명하였듯이 송신측 ARQ 버퍼에 MAC PDU 단위로 패킷이 저장되어있기때문인 것으로 생각된다. (물론, MAC PDU 정보를 가공하면 ARQ 블럭별로 재정열하는 것도 가능하지만, 현재에는 구현되어 있지 않다.) 재정열은 송신측에서 결정하는 정책 사항이므로, 재정열을 지원하지 않는다고해서 표준을 위반하는 것은 아니다.

 

[1] IEEE 802.16-2009, "Air Interface for Broadband Wireless Access Systems", 2009

Posted by 신상헌
,

OPNET WiMAX 모델에서는 서비스 플로우 단위별로 ARQ 기능 적용을 조절할 수 있다. ARQ는 슬라이딩 윈도우 방식으로 동작하며, Ack 타입은 Cumulative, Selective Bitmap, Selective Block Sequence를 지원한다. 다음 그림은 WiMAX 모델에서의 ARQ 동작 구조를 나타낸 것이다.

 


송신측의 ARQ 버퍼에는 송신한 MAC PDU의 사본이 윈도우 크기만큼 저장되어 있다가, Feedback 메시지로부터 성공적인 전달이 확인되면 삭제된다. Feedback 메시지로부터 재전송이 요구되면, 저장되어 있던 MAC PDU를 복사하여 전송한다.
수신측의 ARQ 버퍼에는 수신된 MAC SDU가 저장되어 있다가, 누락된 sequence number 없이 수신된 것이 확인되면 상위 계층으로 전달된다. 다음 그림은 이러한 ARQ 동작을 지원하는 자료구조를 나타낸 것이다.

 

Posted by 신상헌
,

Packing은 다수 개의 SDU 또는 SDU fragment들을 하나의 MAC SDU로 구성하여 전송하는 것이며, OPNET WiMAX 모델 또한 이 기능을 지원한다. "WiMAX 모델(21) - MAC 데이타 평면: 송신측"과 "WiMAX 모델(65) - Fragmentation 기능"에서 설명한 것처럼 전송할 패킷을 저장하기 위한 관(conduit)이 CID별로 존재하며, 상위 계층에서 내려온 패킷은 일단 SDU 버퍼에 저장된다. 만약 할당받은 대역폭이 한 개 이상의 SDU를 전송할 수 있는 크기이면 packing되어 여러 개의 SDU가 한 개의 MAC PDU로 만들어져 전송된다. Packing하는 과정에서 대역폭이 부족하면 마지막 SDU는 분할(fragmentation)된다.

 


"WiMAX 모델(62) - MAC PDU 구조"에서 살펴본 것처럼 wimax_mac_pdu 패킷에는 PSH(Packing subheader)를 위한 필드가 존재하지 않으며, PSH 크기만이 CRC 필드와 같이 반영되어 설정된다. PSH 크기(MAC_NE_PACK_SUBHEADER_BITS)는 wimax_support.h 파일에 16비트로 정의되어 있다. 이는 Extended Type이 아닐 경우의 PSH 필드에 대해서 표준[1]에서 정의한 크기이다([1]의 Table 22 참조).

 

[1] IEEE 802.16-2009, "Air Interface for Broadband Wireless Access Systems", 2009

 

Posted by 신상헌
,

Fragmentation은 SDU를 분할하여 여러 MAC PDU에 나눠담아 전송하는 것이며, OPNET WiMAX 모델 또한 이 기능을 지원한다. "WiMAX 모델(21) - MAC 데이타 평면: 송신측"에서 설명한 것처럼 전송할 패킷을 저장하기 위한 관(conduit)이 CID별로 존재하며, 상위 계층에서 내려온 패킷은 일단 SDU 버퍼에 저장된다. 대역폭을 할당받아 전송을 수행하는 시점에, SDU 버퍼에 있는 패킷은 분할(fragmentation) 버퍼로 옴겨진다. 만약 할당받은 대역폭이 한개의 SDU 전체를 전송하기에 부족하면 분할(fragmentation)되어 일부만 전송되고, 남은 부분은 다음 번에 대역폭이 할당되었을 때 전송된다.

 


"WiMAX 모델(62) - MAC PDU 구조"에서 살펴본 것처럼 wimax_mac_pdu 패킷에는 FSH(Fragmentation subheader)를 위한 필드가 존재하지 않으며, FSH 크기만이 CRC 필드와 같이 반영되어 설정된다. FSH 크기(MAC_NE_FRAG_SUBHEADER_BITS)는 wimax_support.h 파일에 8비트로 정의되어 있다. 이는 Extended Type이 아닐 경우의 FSH 필드에 대해서 표준[1]에서 정의한 크기이다([1]의 Table 19 참조).

 

[1] IEEE 802.16-2009, "Air Interface for Broadband Wireless Access Systems", 2009.

Posted by 신상헌
,

Concatenation은 다음 그림과 같이 MAC PDU를 연속적으로 배치하여 하나의 버스트를 구성하는 것이다.

 

"WiMAX 모델(38) - BS 스케줄러 병합 승인"에서 설명한 OPNET WiMAX 모델 스케줄러의 병합(amalgamation) 기능은 이러한 concatenation에 해당한다고 볼 수 있다. 즉, 동일한 단말에 대한 승인들을 모아서 한개의 IE 정보를 만든다는 것은, 하나의 버스트내에서 여러 MAC PDU를 전달하라는 지시이기 때문이다. 따라서, 직접 MAC PDU를 전송하는 부분에는 concatenation에 대한 별도의 코드가 없지만, 병합(amalgamation)된 승인 정보를 받으면 실제로는 concatenation 방식에 의한 전송이 일어난다고 봐야 한다.

 

Posted by 신상헌
,

다음 그림은 표준[1]의 MAC PDU 구조와 MAC Header 구조를 나타낸 것이다([1]의 Figure 20과 Table 3 참조). MAC 헤더의 필드중에서 OPNET WiMAX 모델의 MAC PDU로 실제 표현되는 부분은 녹색으로 표시된 부분들뿐이다.

 

 

"WiMAX 모델(62) - MAC PDU 구조"에서 살펴본 것처럼 OPNET WiMAX 모델에서 사용하는 wimax_mac_pdu 패킷 포맷에서는 CRC 필드가 없다. 하지만, CRC가 적용되는 연결의 경우 CRC 필드의 크기(WIMAX_MAC_CRC32_OVERHEAD_BITS)는 패킷 크기 설정에 반영되며 그 크기는 wimax_support.h 파일에 32비트(4바이트)로 정의되어 있다.

 

[1] IEEE 802.16-2009, "Air Interface for Broadband Wireless Access Systems", 2009

Posted by 신상헌
,

OPNET WiMAX 모델에서 사용하는 MAC PDU 구조는 wimax_mac_pdu 패킷에 다음 그림과 같이 정의되어 있다.

 

"MAC Header" 필드에는 wimax_support.h 파일에 정의되어 있는 WimaxT_Mac_Header_Fields 타입의 구조체가 담긴다.
"Header Type" 필드와 "CID" 필드는 원래 MAC 헤더에 포함되어 있는 정보인데, 코드 처리상의 편의를 위해서 크기가 0인 별도의 필드로 빼놓은 것이다. "MAC SDU" 필드에는 상위 계층에서 내려온 사용자 데이터가 담기는데, 분할(fragemntation)되거나 패킹(packing)될 수 있다. "Packet Role" 필드는 이 패킷이 제어용인지 사용자 데이터 전달용
인지를 구분하기 위해서 사용되며, "harq information" 필드는 HARQ가 적용될 경우에 관련된 정보를 알려주기 위해서 사용된다.

 

Posted by 신상헌
,