1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: uds_packet.h 4 5 Copyright (C)2009 Nintendo Co., Ltd. All rights reserved. 6 7 These coded instructions, statements, and computer programs contain 8 proprietary information of Nintendo of America Inc. and/or Nintendo 9 Company Ltd., and are protected by Federal copyright law. They may 10 not be disclosed to third parties or copied or duplicated in any form, 11 in whole or in part, without the prior written consent of Nintendo. 12 13 $Rev: 27700 $ 14 *---------------------------------------------------------------------------*/ 15 16 /*! @file 17 @brief UDS 用 Vendor Specific IE の定義 18 */ 19 20 #ifndef LIBRARIES_UDS_CTR_UDS_IE_H_ 21 #define LIBRARIES_UDS_CTR_UDS_IE_H_ 22 23 #include <nn.h> 24 25 #include <nn/uds.h> 26 27 namespace nn { 28 namespace uds { 29 namespace CTR { 30 namespace detail { 31 32 const bit8 VSIE_OUI[3] = {0x00, 0x1f, 0x32}; //!< CTR 用 Vendor Specific IE で使用される OUI 33 const size_t VSIE_SIZE_MAX = 250; 34 35 //NetworkDescription に含める接続情報 36 const bit16 EJECT_SPECTAOTR_FLAG = 0x0001; //!<接続中の Spectator を退去させるフラグ、新規接続も禁止 37 const bit16 DISALLOW_CONNECT_FLAG = 0x0002; //!<Client の新規接続を禁止する 38 const bit16 DISALLOW_RECONNECT_FLAG = 0x0004; //!<Client の再接続を禁止する。 @ref DISALLOW_CONNECT_FLAG が有効の場合にのみ参照される 39 const bit16 DIRECT_BROADCAST_FLAG = 0x8000; //!<DirectBroadcast の使用可否フラグ、かならずこのフラグは立っている 40 41 42 /*!--------------------------------------------------------------------------* 43 @brief UDS が使用する Vendor Specific IE の SubType 44 *---------------------------------------------------------------------------*/ 45 enum SubType 46 { 47 NETWORK_DESCRIPTION_IE = 21, //!< NetworkDescription IE … 接続情報一式を格納 (Beacon) 48 SPECTATOR_PACKET_IE = 22, //!< Spectator から Master へのデータ送信用 (Probe Request) 49 SPECTATOR_ACK_IE = 23, //!< Master から Spectator への Acknowledge (Probe Response) 50 NODE_INFORMATION_IE_1 = 24, //!< ノード情報 IE(1) … 8台分の ユーザー名とフレンドコードを格納 51 NODE_INFORMATION_IE_2 = 25 //!< ノード情報 IE(2) … 8台分の ユーザー名とフレンドコードを格納 52 }; 53 54 /*!--------------------------------------------------------------------------* 55 @brief NetworkDescription IE の IE Body 56 *---------------------------------------------------------------------------*/ 57 struct NetworkDescriptionElement 58 { 59 //共通ヘッダ 60 bit8 oui[3]; //!< OUI, 00:1f:32 固定 61 u8 subType; //!< SubType, 21 固定 62 u32 gameId; //!< プラットホームを越えて一意な、ゲームタイトル毎に割り振られるID 63 u8 subId; //!< サブID, 1タイトル内で複数の通信方式を利用する場合に利用する 64 u8 sequenceNumber; //!< シーケンス番号。ビーコン情報が更新される度にインクリメントされる 65 bit16 attribute; //!< 接続属性, 観戦機能の可否、新規接続の可否をビットフィールドで表現 66 u32 temporaryId; //!< MP 通信における TGID 67 u8 nowEntry; //!< 現在の接続数 68 u8 maxEntry; //!< 最大接続数 69 u8 tmpEntry; //!< 一時的に接続しているノードの数 [TODO] 現状未使用で、使い方が定まっていない 70 bit8 platform; //!< プラットホーム 71 u8 securityType; //!< セキュリティタイプ, NWM の定義に従う 72 u8 reserved[10]; //!< 予約領域 73 u8 digest[20]; //!< ダイジェスト値 74 u8 appDataLength; //!< 後に続くアプリデータのサイズ, 最大 @ref NET_DESC_APPDATA_SIZE_MAX (Byte) です。 75 bit8 appData[NET_DESC_APPDATA_SIZE_MAX]; //!< アプリが自由に格納できるデータ, 最大 @ref NET_DESC_APPDATA_SIZE_MAX Byte です。 76 }; 77 78 /*!--------------------------------------------------------------------------* 79 @brief NodeInformation IE の IE Body 80 *---------------------------------------------------------------------------*/ 81 struct NodeInformationElement 82 { 83 //共通ヘッダ 84 bit8 oui[3]; //!< OUI, 00:1f:32 固定 85 u8 subType; //!< SubType, 前半8台分が 22, 後半8台分が 23 86 bit8 payload[VSIE_SIZE_MAX]; 87 }; 88 89 } // end of namespace detail 90 } // end of namespace CTR 91 } // end of namespace uds 92 } // end of namespace nn 93 94 #endif /* LIBRARIES_UDS_CTR_UDS_IE_H_ */ 95