X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=resource%2Fcsdk%2Fstack%2Finclude%2Foctypes.h;h=f1ed8b1a884b17125ed8eb94ac5f3205ba60a53e;hb=7f00f942c39b7bc27c7eeecf213a239c3fe4173c;hp=522f91d831337732c1721b0d7eb2eedba0b54a16;hpb=ef8dbb0fb89274b24159d0258e1daa3fe198b313;p=platform%2Fupstream%2Fiotivity.git diff --git a/resource/csdk/stack/include/octypes.h b/resource/csdk/stack/include/octypes.h index 522f91d..f1ed8b1 100644 --- a/resource/csdk/stack/include/octypes.h +++ b/resource/csdk/stack/include/octypes.h @@ -43,10 +43,18 @@ extern "C" { #define WITH_PRESENCE #include "ocpresence.h" + +// TODO : need for secure psi +#if defined(__WITH_DTLS__) || defined(__WITH_TLS__) +#define __SECURE_PSI__ +#endif + //----------------------------------------------------------------------------- // Defines //----------------------------------------------------------------------------- +#define IOTIVITY_VERSION "1.2.1" + /** * OIC Virtual resources supported by every OIC device. */ @@ -74,7 +82,7 @@ extern "C" { /** KeepAlive URI.*/ #define OC_RSRVD_KEEPALIVE_URI "/oic/ping" - +#ifdef WITH_PRESENCE /** Presence */ /** Presence URI through which the OIC devices advertise their presence.*/ @@ -83,8 +91,7 @@ extern "C" { /** Presence URI through which the OIC devices advertise their device presence.*/ #define OC_RSRVD_DEVICE_PRESENCE_URI "/oic/prs" -/** Sets the default time to live (TTL) for presence.*/ -#define OC_DEFAULT_PRESENCE_TTL_SECONDS (60) +#endif // WITH_PRESENCE /** For multicast Discovery mechanism.*/ #define OC_MULTICAST_DISCOVERY_URI "/oic/res" @@ -92,6 +99,7 @@ extern "C" { /** Separator for multiple query string.*/ #define OC_QUERY_SEPARATOR "&;" +#ifdef WITH_PRESENCE /** * OC_DEFAULT_PRESENCE_TTL_SECONDS sets the default time to live (TTL) for presence. */ @@ -119,6 +127,8 @@ extern "C" { /** To delete.*/ #define OC_RSRVD_TRIGGER_DELETE "delete" +#endif // WITH_PRESENCE + /** * Attributes used to form a proper OIC conforming JSON message. */ @@ -145,8 +155,10 @@ extern "C" { /** To represent resource type.*/ #define OC_RSRVD_RESOURCE_TYPE "rt" +#ifdef WITH_PRESENCE /** To represent resource type with presence.*/ #define OC_RSRVD_RESOURCE_TYPE_PRESENCE "oic.wk.ad" +#endif /** To represent resource type with device.*/ #define OC_RSRVD_RESOURCE_TYPE_DEVICE "oic.wk.d" @@ -154,6 +166,9 @@ extern "C" { /** To represent resource type with platform.*/ #define OC_RSRVD_RESOURCE_TYPE_PLATFORM "oic.wk.p" +/** To represent resource type with collection.*/ +#define OC_RSRVD_RESOURCE_TYPE_COLLECTION "oic.wk.col" + /** To represent resource type with RES.*/ #define OC_RSRVD_RESOURCE_TYPE_RES "oic.wk.res" @@ -221,6 +236,9 @@ extern "C" { /** TCP Port. */ #define OC_RSRVD_TCP_PORT "x.org.iotivity.tcp" +/** TLS Port. */ +#define OC_RSRVD_TLS_PORT "x.org.iotivity.tls" + /** For Server instance ID.*/ #define OC_RSRVD_SERVER_INSTANCE_ID "sid" @@ -261,6 +279,8 @@ extern "C" { /** System time for the platform. */ #define OC_RSRVD_SYSTEM_TIME "st" +/** VID for the platform. */ +#define OC_RSRVD_VID "vid" /** * Device. */ @@ -281,8 +301,7 @@ extern "C" { #define OC_SPEC_VERSION "core.1.1.0" /** Device Data Model version.*/ -#define OC_DATA_MODEL_VERSION "res.1.1.0" - +#define OC_DATA_MODEL_VERSION "res.1.1.0,sh.1.1.0" /** * These provide backward compatibility - their use is deprecated. */ @@ -371,7 +390,7 @@ extern "C" { #define OC_RSRVD_ACCOUNT_URI "/oic/account" /** Account user URI.*/ -#define OC_RSRVD_ACCOUNT_USER_URI "/oic/account/user" +#define OC_RSRVD_ACCOUNT_SEARCH_URI "/oic/account/search" /** Account session URI.*/ #define OC_RSRVD_ACCOUNT_SESSION_URI "/oic/account/session" @@ -409,32 +428,32 @@ extern "C" { /** Defines user UUID. */ #define OC_RSRVD_USER_UUID "uid" -/** Defines user ID. */ -#define OC_RSRVD_USER_ID "userid" - /** Defines group ID. */ #define OC_RSRVD_GROUP_ID "gid" -/** Defines group Master ID. */ -#define OC_RSRVD_GROUP_MASTER_ID "gmid" - -/** Defines group type. */ -#define OC_RSRVD_GROUP_TYPE "gtype" - /** Defines member of group ID. */ #define OC_RSRVD_MEMBER_ID "mid" -/** Defines device ID list. */ -#define OC_RSRVD_DEVICE_ID_LIST "dilist" +/** Defines invite. */ +#define OC_RSRVD_INVITE "invite" -/** Defines public. */ -#define OC_RSRVD_PUBLIC "Public" +/** Defines accept. */ +#define OC_RSRVD_ACCEPT "accept" -/** Defines private. */ -#define OC_RSRVD_PRIVATE "Private" +/** Defines operation. */ +#define OC_RSRVD_OPERATION "op" -/** Defines invite. */ -#define OC_RSRVD_INVITE "invite" +/** Defines add. */ +#define OC_RSRVD_ADD "add" + +/** Defines delete. */ +#define OC_RSRVD_DELETE "delete" + +/** Defines owner. */ +#define OC_RSRVD_OWNER "owner" + +/** Defines members. */ +#define OC_RSRVD_MEMBERS "members" /** To represent grant type with refresh token. */ #define OC_RSRVD_GRANT_TYPE_REFRESH_TOKEN "refresh_token" @@ -592,6 +611,29 @@ typedef enum OC_ADAPTER_NFC = (1 << 5) } OCTransportAdapter; +typedef enum +{ + OC_DEFAULT_BT_FLAGS = 0, + // flags for BLE transport + OC_LE_ADV_DISABLE = 0x1, // disable BLE advertisement. + OC_LE_ADV_ENABLE = 0x2, // enable BLE advertisement. + OC_LE_SERVER_DISABLE = (1 << 4), // disable gatt server. + // flags for EDR transport + OC_EDR_SERVER_DISABLE = (1 << 7) // disable rfcomm server. +} OCTransportBTFlags_t; + +/** + * Log level to print can be controlled through this enum. + * And privacy logs contained uid, Token, Device id, etc can also disable. + * This enum (OCLogLevel) must be kept synchronized with + * CAUtilLogLevel_t (in CACommon.h). + */ +typedef enum +{ + OC_LOG_LEVEL_ALL = 1, // all logs. + OC_LOG_LEVEL_INFO, // debug level is disabled. +} OCLogLevel; + /** * Enum layout assumes some targets have 16-bit integer (e.g., Arduino). */ @@ -694,9 +736,12 @@ typedef struct /** usually zero for default interface.*/ uint32_t ifindex; -#if defined (ROUTING_GATEWAY) || defined (ROUTING_EP) - char routeData[MAX_ADDR_STR_SIZE]; //destination GatewayID:ClientId -#endif + + /** destination GatewayID:ClientId.*/ + char routeData[MAX_ADDR_STR_SIZE]; + + /** device ID of remote.*/ + char remoteId[MAX_IDENTITY_SIZE]; } OCDevAddr; /** @@ -978,6 +1023,7 @@ typedef enum OC_STACK_PDM_IS_NOT_INITIALIZED, OC_STACK_DUPLICATE_UUID, OC_STACK_INCONSISTENT_DB, + OC_STACK_SVR_DB_NOT_EXIST, /** * Error code from OTM @@ -993,9 +1039,19 @@ typedef enum OC_STACK_PRESENCE_DO_NOT_HANDLE, #endif + /** Request is denied by the user*/ + OC_STACK_USER_DENIED_REQ, + OC_STACK_NOT_ACCEPTABLE, + OC_STACK_METHOD_NOT_ALLOWED, + /** ERROR code from server */ OC_STACK_FORBIDDEN_REQ, /** 403*/ OC_STACK_INTERNAL_SERVER_ERROR, /** 500*/ + OC_STACK_NOT_IMPLEMENTED, /** 501*/ + OC_STACK_BAD_GATEWAY, /** 502*/ + OC_STACK_SERVICE_UNAVAILABLE, /** 503*/ + OC_STACK_GATEWAY_TIMEOUT, /** 504*/ + OC_STACK_PROXY_NOT_SUPPORTED, /** 505*/ /** ERROR in stack.*/ OC_STACK_ERROR = 255 @@ -1015,7 +1071,7 @@ typedef void * OCResourceHandle; /** * Handle to an OCRequest object owned by the OCStack. */ -typedef void * OCRequestHandle; +typedef uint32_t OCRequestHandle; /** * Unique identifier for each observation request. Used when observations are @@ -1070,6 +1126,14 @@ typedef struct { /** Persistent storage unlink handler.*/ int (* unlink)(const char *path); + + /** Persistent Storage Handler for Encryption.*/ + int (* encrypt)(const unsigned char *pt, size_t size, + unsigned char**ct, size_t *ct_len); + + /**Persistent Storage Handler for Decryption.*/ + int (* decrypt)(const unsigned char *ct, size_t size, + unsigned char**pt, size_t *pt_len); } OCPersistentStorage; /** @@ -1107,9 +1171,11 @@ typedef enum OC_EH_TOO_LARGE = 413, OC_EH_UNSUPPORTED_MEDIA_TYPE = 415, OC_EH_INTERNAL_SERVER_ERROR = 500, + OC_EH_NOT_IMPLEMENTED = 501, OC_EH_BAD_GATEWAY = 502, OC_EH_SERVICE_UNAVAILABLE = 503, - OC_EH_RETRANSMIT_TIMEOUT = 504 + OC_EH_RETRANSMIT_TIMEOUT = 504, + OC_EH_PROXY_NOT_SUPPORTED = 505 } OCEntityHandlerResult; /** @@ -1153,6 +1219,7 @@ typedef struct OCHeaderOption /** * This structure describes the platform properties. All non-Null properties will be * included in a platform discovery request. + * @deprecated: Use OCSetPropertyValue to set platform value. */ typedef struct { @@ -1195,6 +1262,7 @@ typedef struct * This structure is expected as input for device properties. * device name is mandatory and expected from the application. * device id of type UUID will be generated by the stack. + * @deprecated: Use OCSetPropertyValue to set device value. */ typedef struct { @@ -1239,16 +1307,18 @@ typedef enum PAYLOAD_TYPE_INVALID, /** The payload is an OCDiscoveryPayload */ PAYLOAD_TYPE_DISCOVERY, - /** The payload is an OCDevicePayload */ + /** The payload of the device */ PAYLOAD_TYPE_DEVICE, - /** The payload is an OCPlatformPayload */ + /** The payload type of the platform */ PAYLOAD_TYPE_PLATFORM, /** The payload is an OCRepPayload */ PAYLOAD_TYPE_REPRESENTATION, /** The payload is an OCSecurityPayload */ PAYLOAD_TYPE_SECURITY, +#ifdef WITH_PRESENCE /** The payload is an OCPresencePayload */ PAYLOAD_TYPE_PRESENCE +#endif } OCPayloadType; /** @@ -1365,9 +1435,6 @@ typedef struct OCDiscoveryPayload /** Name */ char *name; - /** HREF */ - char *uri; - /** Resource Type */ OCStringLL *type; @@ -1385,26 +1452,6 @@ typedef struct OCDiscoveryPayload typedef struct { OCPayload base; - char *sid; - char* deviceName; - char* specVersion; - OCStringLL *dataModelVersions; - OCStringLL *interfaces; - OCStringLL *types; -} OCDevicePayload; - -typedef struct -{ - OCPayload base; - char* uri; - OCPlatformInfo info; - OCStringLL* rt; - OCStringLL* interfaces; -} OCPlatformPayload; - -typedef struct -{ - OCPayload base; uint8_t* securityData; size_t payloadSize; } OCSecurityPayload; @@ -1697,7 +1744,6 @@ typedef OCEntityHandlerResult (*OCDeviceEntityHandler) */ typedef void (*OCDirectPairingCB)(void *ctx, OCDPDev_t *peer, OCStackResult result); //#endif // DIRECT_PAIRING - #if defined(__WITH_DTLS__) || defined(__WITH_TLS__) /** * Callback function definition for Change in TrustCertChain @@ -1720,6 +1766,29 @@ typedef struct trustCertChainContext } trustCertChainContext_t; #endif +/** + * OTM State + */ +typedef enum +{ + OC_OTM_READY = 0, + OC_OTM_STARTED = 1, + OC_OTM_DONE = 2, + OC_OTM_ERROR = 3 +} OCOtmEvent_t; + +/** + * Callback function to receive the OTM event on server side. + * + * @param[in] ctx user context returned in the callback + * @param[in] addr PT's address (address can be NULL in case of init state) + * @param[in] port PT's port (It is meaningless in case of init state & BLE) + * @param[in] uuid PT's UUID (UUID can be NULL in case of init state & coap reqest) + * @param[in] event OTM state (@ref OCOtmEvent_t) + */ +typedef void (*OCOtmEventHandler)(void *ctx, const char *addr, uint16_t port, + const char *ownerId, OCOtmEvent_t event); + #ifdef __cplusplus } #endif // __cplusplus