diff --git a/apps/openstackswitching/api/src/main/java/org/onosproject/openstackswitching/OpenstackSubnet.java b/apps/openstackswitching/api/src/main/java/org/onosproject/openstackswitching/OpenstackSubnet.java
index bc536e8..f832768 100644
--- a/apps/openstackswitching/api/src/main/java/org/onosproject/openstackswitching/OpenstackSubnet.java
+++ b/apps/openstackswitching/api/src/main/java/org/onosproject/openstackswitching/OpenstackSubnet.java
@@ -17,6 +17,8 @@
 
 import org.onlab.packet.Ip4Address;
 
+import java.util.Collection;
+import java.util.Collections;
 import java.util.List;
 
 import static com.google.common.base.Preconditions.checkNotNull;
@@ -34,10 +36,11 @@
     private String gatewayIp;
     private String cidr;
     private String id;
+    private Collection<String> securityGroups;
 
     private OpenstackSubnet(String name, boolean enableHhcp, String networkId,
                             String tenantId, List<Ip4Address> dnsNameservers, String gatewayIp,
-                            String cidr, String id) {
+                            String cidr, String id, Collection<String> securityGroups) {
         this.name = name;
         this.enableHhcp = enableHhcp;
         this.networkId = checkNotNull(networkId);
@@ -46,6 +49,7 @@
         this.gatewayIp = gatewayIp;
         this.cidr = checkNotNull(cidr);
         this.id = checkNotNull(id);
+        this.securityGroups = securityGroups;
     }
 
     /**
@@ -89,6 +93,10 @@
         return id;
     }
 
+    public Collection<String> securityGroups() {
+        return Collections.unmodifiableCollection(this.securityGroups);
+    }
+
     /**
      * OpenstackSubnet Builder class.
      *
@@ -102,6 +110,7 @@
         private String gatewayIp;
         private String cidr;
         private String id;
+        private Collection<String> securityGroups;
 
         Builder() {}
 
@@ -153,9 +162,15 @@
             return this;
         }
 
+        public Builder securityGroups(Collection<String> securityGroups) {
+            this.securityGroups = securityGroups;
+
+            return this;
+        }
+
         public OpenstackSubnet build() {
             return new OpenstackSubnet(name, enableDhcp, networkId, tenantId,
-                    dnsNameservers, gatewayIp, cidr, id);
+                    dnsNameservers, gatewayIp, cidr, id, securityGroups);
         }
     }
 }
