diff --git a/tools.descartes.dni.core/model/DNIMM3.xcore b/tools.descartes.dni.core/model/DNIMM3.xcore
index 81dcf00d8a00678f16065678a0e8c01db565f51d..2115b58149cb2e16c2f03d067f3e24da195a344a 100644
--- a/tools.descartes.dni.core/model/DNIMM3.xcore
+++ b/tools.descartes.dni.core/model/DNIMM3.xcore
@@ -284,8 +284,8 @@ class PerformanceLink extends PerformanceSpecification {
 class PerformanceNetworkInterface extends PerformanceSpecification {
 	boolean isUp = "true"
 	int[1] MTU = "1500"
-	contains Dependency[1] packetProcessingTime
-	contains Variable[1] interfaceThroughput
+	contains Dependency packetProcessingTime
+	contains Variable interfaceThroughput
 	refers NetworkInterfacePerformanceType entityType opposite entities
 }
 
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/PerformanceNetworkInterface.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/PerformanceNetworkInterface.java
index 0c7b58d31ec0dc47ee275152c89ce8b2163416dd..c22a0356adc76d7d7eb3c19046ea52eac3ae3882 100644
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/PerformanceNetworkInterface.java
+++ b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/PerformanceNetworkInterface.java
@@ -89,7 +89,7 @@ public interface PerformanceNetworkInterface extends PerformanceSpecification {
 	 * @return the value of the '<em>Packet Processing Time</em>' containment reference.
 	 * @see #setPacketProcessingTime(Dependency)
 	 * @see tools.descartes.dni.dnimm3.DNIPackage#getPerformanceNetworkInterface_PacketProcessingTime()
-	 * @model containment="true" required="true"
+	 * @model containment="true"
 	 * @generated
 	 */
 	Dependency getPacketProcessingTime();
@@ -115,7 +115,7 @@ public interface PerformanceNetworkInterface extends PerformanceSpecification {
 	 * @return the value of the '<em>Interface Throughput</em>' containment reference.
 	 * @see #setInterfaceThroughput(Variable)
 	 * @see tools.descartes.dni.dnimm3.DNIPackage#getPerformanceNetworkInterface_InterfaceThroughput()
-	 * @model containment="true" required="true"
+	 * @model containment="true"
 	 * @generated
 	 */
 	Variable getInterfaceThroughput();
diff --git a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DNIPackageImpl.java b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DNIPackageImpl.java
index 9fe7ab2c794b80cd3231479b3f524d3c8b696aa4..1932d41e430677a42cf05041bc9fa24982f84cd4 100644
--- a/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DNIPackageImpl.java
+++ b/tools.descartes.dni.core/src/tools/descartes/dni/dnimm3/impl/DNIPackageImpl.java
@@ -3265,8 +3265,8 @@ public class DNIPackageImpl extends EPackageImpl implements DNIPackage {
 		initEClass(performanceNetworkInterfaceEClass, PerformanceNetworkInterface.class, "PerformanceNetworkInterface", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getPerformanceNetworkInterface_IsUp(), theEcorePackage.getEBoolean(), "isUp", "true", 0, 1, PerformanceNetworkInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getPerformanceNetworkInterface_MTU(), theEcorePackage.getEInt(), "MTU", "1500", 1, 1, PerformanceNetworkInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getPerformanceNetworkInterface_PacketProcessingTime(), this.getDependency(), null, "packetProcessingTime", null, 1, 1, PerformanceNetworkInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getPerformanceNetworkInterface_InterfaceThroughput(), this.getVariable(), null, "interfaceThroughput", null, 1, 1, PerformanceNetworkInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getPerformanceNetworkInterface_PacketProcessingTime(), this.getDependency(), null, "packetProcessingTime", null, 0, 1, PerformanceNetworkInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getPerformanceNetworkInterface_InterfaceThroughput(), this.getVariable(), null, "interfaceThroughput", null, 0, 1, PerformanceNetworkInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getPerformanceNetworkInterface_EntityType(), this.getNetworkInterfacePerformanceType(), this.getNetworkInterfacePerformanceType_Entities(), "entityType", null, 0, 1, PerformanceNetworkInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(sdnFlowRuleEClass, SdnFlowRule.class, "SdnFlowRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);