# PotrWindow

    struct PotrWindow {
        PotrPacket *packets;
        uint8_t *valid;
        uint8_t *payload_pool;
        uint32_t base_seq;
        uint32_t next_seq;
        uint16_t window_size;
        uint16_t max_payload;
        uint32_t _pad;
    }

スライディングウィンドウ管理構造体。

パケットバッファ・有効フラグ・ペイロードプールは動的確保する。
window_init() で確保し、window_destroy() で解放すること。

# 1 属性

## 1.1 packets

    PotrPacket *packets;

パケットバッファ (動的確保。window_size 要素)。

## 1.2 valid

    uint8_t *valid;

バッファ有効フラグ配列 (動的確保。window_size バイト)。

## 1.3 payload_pool

    uint8_t *payload_pool;

ペイロードプール (動的確保。window_size × max_payload バイト)。

## 1.4 base_seq

    uint32_t base_seq;

ウィンドウ先頭の通番。

## 1.5 next_seq

    uint32_t next_seq;

送信側: 次に割り当てる通番。受信側: 次に期待する通番。

## 1.6 window_size

    uint16_t window_size;

ウィンドウサイズ (パケット数)。

## 1.7 max_payload

    uint16_t max_payload;

エントリごとのペイロード最大長 (バイト)。

## 1.8 _pad

    uint32_t _pad;

パディング (構造体サイズを 8 バイト境界に揃える)。