diff --git a/LibOneM2M/OneM2M_Ports.ttcn b/LibOneM2M/OneM2M_Ports.ttcn
index dad32616c3f7422906e0d8a999f5f30843e1268a..c35eb5eed9101dd86459166386184a7d6c956404 100644
--- a/LibOneM2M/OneM2M_Ports.ttcn
+++ b/LibOneM2M/OneM2M_Ports.ttcn
@@ -14,6 +14,7 @@ module OneM2M_Ports {
 	
 	import from OneM2M_Types all;
 	import from OneM2M_TypesAndValues all;
+	import from OneM2M_Types_3GPP_T8 all;
 	import from XSD all;
 	
 	/* ***************************************
@@ -35,6 +36,20 @@ module OneM2M_Ports {
 		map param (in PortDesc p_portDesc);
 	};
 	
+	/**
+	 * @desc Port to transport different underlying network primitives
+	 * @desc Output MsgOut   
+	 * @desc Input MsgIn 
+	 * @desc this port is allowed to extend for futher usage  
+	 */
+	type port OneM2M_McnPort message {
+		in 
+			T8Primitive;
+		out 
+			T8Primitive;
+		map param (in McnPortDesc p_mcnPortDesc);
+	};
+	
 	/**
 	 * @desc Port to transport Adaptor Control primitives
 	 */
diff --git a/LibOneM2M/OneM2M_TestSystem.ttcn b/LibOneM2M/OneM2M_TestSystem.ttcn
index d424b02698fcd000e488be86965c2faa1bd6854f..208384cce3b915c156bb68fe64720e0cc6210bec 100644
--- a/LibOneM2M/OneM2M_TestSystem.ttcn
+++ b/LibOneM2M/OneM2M_TestSystem.ttcn
@@ -11,6 +11,7 @@
  */
 module OneM2M_TestSystem {
 
+	import from OneM2M_Types_3GPP_T8 all;
 	import from OneM2M_Types all;
 	import from OneM2M_TypesAndValues all;
 	import from LibCommon_Time all;
@@ -111,6 +112,21 @@ module OneM2M_TestSystem {
 		var boolean vc_auxiliaryCse2Up := false;
 	};
 	
+	type component ScefSimu extends Tester {
+		//Attached components depending on config
+		//Ports
+		port OneM2M_McnPort mcnPort;
+		port OneM2M_McnPort mcnPortIn;
+		//global variables
+		//About configuration of the component
+		var ScefSimuComponentDesc vc_scefSimuDesc;
+		//Resources list
+		//NIDD API
+		var NiddConfigurations vc_configurations := {};
+		//Resource index
+		//Status of attached component
+	};
+
 	type component InCseSimu extends CseSimu {
 	}
 	
@@ -132,6 +148,13 @@ module OneM2M_TestSystem {
 		port AdapterControlPort acPort;
 		port UpperTesterPort utPort;
 	}		
+
+	type component ScefSystem {
+		port OneM2M_McnPort mcnPort;
+		port OneM2M_McnPort mcnPortIn;
+		port AdapterControlPort acPort;
+		port UpperTesterPort utPort;
+	}		
 	
 }// end of module
 with {
diff --git a/LibOneM2M/OneM2M_TypesAndValues.ttcn b/LibOneM2M/OneM2M_TypesAndValues.ttcn
index 2346c5fcdd6b888671a7af21af806e1f7d348e18..fd024f32c64d1dfc50831098de366bbab62569ec 100644
--- a/LibOneM2M/OneM2M_TypesAndValues.ttcn
+++ b/LibOneM2M/OneM2M_TypesAndValues.ttcn
@@ -4384,7 +4384,11 @@ group OtherTypes {
 		MqttBindingDesc mqttBindingDesc,
 		WSBindingDesc   wsBindingDesc
 	}
-    
+
+	template BindingProtocolsSelect m_httpBindingDesc := {
+		httpBindingDesc := ?
+	}
+        
 	/**
 	 * @desc 
 	 * @member binding
@@ -4393,6 +4397,31 @@ group OtherTypes {
 	type record PortDesc {
 		BindingProtocolsSelect binding,
 		SerializationRepresentations serialization
+	}	
+	
+	/**
+	 * @desc 
+	 * @member binding
+	 * @member serialization
+	 */
+	type record T8PortDesc {
+		BindingProtocolsSelect binding ({httpBindingDesc := ?}),
+		SerializationRepresentations serialization ("json")
+	}
+	
+	type BindingProtocolsSelect MyInterface ({httpBindingDesc:=?}, {coapBindingDesc := ?});
+	
+	/**
+	 * @desc 
+	 * @member binding
+	 * @member serialization
+	 */
+	type union McnPortDesc {
+		T8PortDesc t8PortDesc
+	}
+    
+	template McnPortDesc m_t8PortDesc := {
+		t8PortDesc := ?
 	}
     
 	/**
@@ -4456,6 +4485,32 @@ group OtherTypes {
 		PortDesc mccPortIn
 	}
 
+	/**
+	 * @desc ScefSimu component settings
+	 * @member mcnPort   TTCN-3 'mcn' protocol for sending to the SUT
+	 * @member mcnPortIn TTCN-3 'mcn' protocol for receiving from the SUT
+	 */
+	type record ScefSimuComponentDesc {
+		/**
+		 * @desc Test System CSE Name
+		 */	
+		XSD.ID cseName, 
+		/**
+		 * @desc Test System CSE-ID with SP-relative-CSE-ID format (relative) according to TS-0001-7.2-1
+		 */		
+		XSD.ID cseId,
+		/**
+		 * @desc Test System CSE resource ID with Unstructured-CSE-relative-Resource-ID (relative) format according to TS-0001-7.2-1
+		 */			
+		XSD.ID cseResourceId,
+		/**
+		 * @desc Test System M2M-SP-ID with M2M-SP-ID format (absolute) according to TS-0001-7.2-1 Unstructured-CSE-relative -Resource-ID
+		 */
+		XSD.ID spId,
+		McnPortDesc mcnPort ({t8PortDesc := ?}),
+		McnPortDesc mcnPortIn ({t8PortDesc := ?})
+	}
+	
 } 
 with {
   encode "adapter";
diff --git a/LibOneM2M/OneM2M_Types_3GPP_T8.ttcn b/LibOneM2M/OneM2M_Types_3GPP_T8.ttcn
new file mode 100644
index 0000000000000000000000000000000000000000..fcd698aaf7b3c8fe77eb6ce52f750ebb1ee49f92
--- /dev/null
+++ b/LibOneM2M/OneM2M_Types_3GPP_T8.ttcn
@@ -0,0 +1,339 @@
+/**
+ *  Copyright Notification
+ *  No part of this document may be reproduced, in an electronic retrieval system or otherwise, except as authorized by written permission.
+ *  The copyright and the foregoing restriction extend to reproduction in all media.
+ *  © 2016, oneM2M Partners Type 1 (ARIB, ATIS, CCSA, ETSI, TIA, TSDSI, TTA, TTC).
+ *  All rights reserved.
+ *  
+ *  @author     oneM2M
+ *  @version    $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Types.ttcn $
+ *              $Id: OneM2M_Types.ttcn 356 2017-08-21 12:25:14Z reinaortega $
+ *  @desc       OneM2M data types module 
+ *
+ */
+module OneM2M_Types_3GPP_T8 {
+
+
+import from XSD all;
+import from OneM2M_Types all;
+import from OneM2M_TypesAndValues {type Resource_2; type ResourceTypeList_1; type PrimitiveContent};
+
+/* **************************************************
+ * **************************************************
+ * 		3GPP T8 Types
+ * **************************************************
+ * **************************************************
+*/
+
+	/**
+	 * @desc Type for the oneM2M primitives exchange
+	 * @member primitive oneM2M primitive
+	 */
+	type union T8Primitive {
+		T8Request t8Request,
+		T8Response t8Response
+	}
+
+	/**
+	 * @desc Type for the oneM2M primitives exchange
+	 * @member primitive oneM2M primitive
+	 */
+	type record T8Request {
+		ResourceMethod resourceMethod,
+		URI resourceUri,
+		RequestHeaders requestheaders optional,
+		RequestBody requestBody optional
+	}
+	
+	/**
+	 * @desc Type for the oneM2M primitives exchange
+	 * @member primitive oneM2M primitive
+	 */
+	type record T8Response {
+		ResponseCode responseCode,
+		ResponseHeaders responseHeaders optional,
+		ResponseBody body optional
+	}
+	
+	type enumerated ResourceMethod {
+		GET (0),
+		PUT (1),
+		POST (2),
+		DELETE (3),
+		PATCH (4)
+	}
+	
+	type record of Header RequestHeaders;
+	
+	type record of Header ResponseHeaders;
+	
+	type record Header {
+		charstring header_name,
+		charstring header_value optional
+	}
+	
+	type Body RequestBody (	{individualNiddConfiguration:=?},
+							{individualNiddDownlinkDataDelivery:=?},
+							{individualDeviceTriggeringTransaction:=?},
+							{deviceTriggeringDeliveryReportNotification:=?});
+	
+	type Body ResponseBody;
+	
+	type union Body {
+		Acknowledgement acknowledgement,
+		//NIDD group
+		//NiddConfiguration
+		//NiddDownlinkDataTransfer
+		//NiddUplinkDataNotification
+		NiddConfigurations niddConfigurations,
+		NiddConfiguration individualNiddConfiguration,
+		NiddDownlinkDataTransfers niddDownlinkDataDeliveries,
+		NiddDownlinkDataTransfer individualNiddDownlinkDataDelivery,
+		NiddDownlinkDataDeliveryFailure niddDownlinkDataDeliveryFailure,
+		//DeviceTrigger
+		DeviceTriggerings deviceTriggeringTransactions,
+		DeviceTriggering individualDeviceTriggeringTransaction,
+		DeviceTriggeringDeliveryReportNotification deviceTriggeringDeliveryReportNotification
+	}
+
+	type integer ResponseCode (200,201,204,400,401,403,404,406,411,413,415,429,500,503);
+
+	group NIDD_API {
+	
+		type record of NiddConfiguration NiddConfigurations;
+		
+		type record NiddConfiguration {
+			charstring self_ optional,
+			SupportedFeaturesNiddApi supportedFeatures optional,
+			charstring mtcProviderId optional,
+			ExternalId externalId optional,
+			Msisdn msisdn optional,
+			ExternalGroupId externalGroupId optional,
+			DateTime duration_ optional,
+			boolean reliableDataService optional,
+			RdsPorts rdsPorts optional, 
+			PdnEstablishmentOptions pdnEstablishmentOptions optional,
+			Link notificationDestination, 
+			boolean requestTestNotification optional,
+			WebsockNotifConfig websockNotifConfig optional,
+			integer maximumPacketSize optional,
+			NiddDownlinkDataTransfers niddDownlinkDataTransfers optional,
+			NiddStatus status optional
+		}
+		with {
+			variant "name as uncapitalized";
+			variant (self_) "name as 'self'";
+			variant (duration_) "name as 'duration'";
+		};
+		
+		type record of NiddDownlinkDataTransfer NiddDownlinkDataTransfers;
+		
+		type record NiddDownlinkDataTransfer {
+			ExternalId externalId optional,
+			ExternalGroupId externalGroupId optional,
+			Msisdn msisdn optional,
+			Link self_ optional,
+			Bytes data,
+			boolean reliableDataService optional,
+			RdsPorts rdsPorts optional, 
+			DurationSec maximumLatency optional,
+			integer priority,
+			PdnEstablishmentOptions pdnEstablishmentOptions optional,
+			DeliveryStatus deliveryStatus optional,
+			DateTime requestedRetransmissionTime optional
+		}
+		with {
+			variant "name as uncapitalized";
+			variant (self_) "name as 'self'";
+		};
+				
+		type record NiddDownlinkDataDeliveryFailure {
+			ProblemDetails problemDetail,
+			DateTime requestedRetransmissionTime optional
+		}
+	}//end group NIDD_API
+	
+	group DeviceTriggering_API {
+	
+		type record of DeviceTriggering DeviceTriggerings;
+		
+		type record DeviceTriggering {
+			charstring self_ optional,
+			ExternalId externalId optional,
+			Msisdn msisdn optional,
+			SupportedFeaturesNiddApi supportedFeatures optional,
+			DurationSec validityPeriod,
+			Priority priority,
+			Port applicationPortId,
+			Port appSrcPortId optional,
+			Bytes triggerPayload,
+			Link notificationDestination, 
+			boolean requestTestNotification optional,
+			WebsockNotifConfig websockNotifConfig optional,
+			DeliveryResult deliveryResult optional
+		}
+		with {
+			variant "name as uncapitalized";
+			variant (self_) "name as 'self'";
+		};
+
+		type record DeviceTriggeringDeliveryReportNotification {
+			Link transaction, 
+			DeliveryResult Result
+		}
+	
+	}//end group of DeviceTriggering_API
+
+	group Structured_data_types {
+		
+		//T8 API
+		type record Acknowledgement {
+			charstring details
+		}
+		
+		type record ProblemDetails {
+			URI type_ optional,
+			charstring title optional,
+			integer status optional,
+			charstring detail optional,
+			URI instance optional,
+			charstring cause optional,
+			InvalidParams invalidParams optional
+		}
+		with {
+			variant (type_) "name as 'type'"
+		}
+		
+		type record of InvalidParam InvalidParams;
+		
+		type record InvalidParam {
+			charstring param_,
+			charstring reason optional
+		}
+		with {
+			variant (param_) "name as 'param'"
+		}
+		
+		//NIDD API
+		type record WebsockNotifConfig {
+			Link websocketUri optional,
+			boolean requestWebsocketUri optional
+		}
+		
+		type record URI {
+			charstring apiRoot,
+			charstring apiName ("3gpp-nidd", "3gpp-device-triggering"),
+			charstring apiVersion ("v1"),
+			charstring apiSpecificSuffixes optional,
+			record of charstring queryParameters optional
+		}
+			
+		type record RdsPort {
+			Port portUE,
+			Port portSCEF
+		}
+		
+		type record of RdsPort RdsPorts;
+	}//end of Structured_data_types
+	
+	group Simple_data_types {
+	
+		type integer Bandwidth;
+		type charstring BdtReferenceId;
+		type charstring BdtReferenceIdRm;
+		type bitstring Binary;
+		type charstring Bytes;
+		type integer DayOfWeek (1..7);
+		type charstring DateTime;
+		type charstring DateTimeRm;
+		type charstring DateTimeRo;
+		type integer DurationSec;
+		type integer DurationSecRm;
+		type integer DurationSecRo;
+		type integer DurationMin;
+		type charstring ExternalId;
+		type charstring ExternalGroupId;
+		type charstring Link;
+		type charstring Mcc;
+		type charstring Mnc;
+		type charstring Msisdn;
+		type integer Port;
+		type integer PortRo;
+		type charstring ResourceId;
+		type charstring ScsAsId;
+		type charstring TimeOfDay;
+		type charstring Uri;
+		type integer Volume;
+		type integer VolumeRm;
+			
+	}//end of Simple_data_types
+	
+	group Enumerated_data_types {
+	
+		//NIDD API
+		type enumerated PdnEstablishmentOptions {
+			WAIT_FOR_UE (0),
+			INDICATE_ERROR (1),
+			SEND_TRIGGER (2)
+		}
+		
+		type enumerated DeliveryStatus {
+			SUCCESS,
+			SUCCESS_NEXT_HOP_ACKNOWLEDGED,
+			SUCCESS_NEXT_HOP_UNACKNOWLEDGED,
+			SUCCESS_ACKNOWLEDGED,
+			SUCCESS_UNACKNOWLEDGED,
+			TRIGGERED,
+			BUFFERING,
+			BUFFERING_TEMPORARILY_NOT_REACHABLE,
+			SENDING,
+			FAILURE,
+			FAILURE_RDS_DISABLE,
+			FAILURE_NEXT_HOP,
+			FAILURE_TIMEOUT,
+			FAILURE_TEMPORARILY_NOT_REACHABLE
+		}
+		
+		type enumerated NiddStatus {
+			ACTIVE,
+			TERMINATED_UE_NOT_AUTHORIZED,
+			TERMINATED,
+			RDS_PORT_UNKNOWN
+		}
+		type enumerated SupportedFeaturesNiddApi {
+			GroupMessageDelivery (1),
+			Notification_websocket (2),
+			Notification_test_event (3),
+			MT_NIDD_modification_cancellation (4),
+			Rds_port_verfication (5),
+			Rds_dynamic_port (6)
+		}
+		
+		type enumerated SupportedFeaturesDeviceTriggeringApi {
+			Notification_websocket (1),
+			Notification_test_event (2)
+		}
+		
+		//DeviceTriggering
+		type enumerated DeliveryResult {
+			SUCCESS,
+			UNKNOWN,
+			FAILURE,
+			TRIGGERED,
+			EXPIRED,
+			UNCONFIRMED,
+			REPLACED,
+			TERMINATE
+		}
+		
+		type enumerated Priority {
+			NO_PRIORITY,
+			PRIORITY
+		}
+	}//end of Enumerated_data_types
+	
+}
+with {
+  encode "JSON";
+}
+