diff --git a/openstack/networking/v2/extensions/layer3/routers/requests.go b/openstack/networking/v2/extensions/layer3/routers/requests.go
index 8b6e73d..a5f2644 100644
--- a/openstack/networking/v2/extensions/layer3/routers/requests.go
+++ b/openstack/networking/v2/extensions/layer3/routers/requests.go
@@ -18,6 +18,7 @@
 	AdminStateUp *bool  `q:"admin_state_up"`
 	Status       string `q:"status"`
 	TenantID     string `q:"tenant_id"`
+	RouterType   string `q:"router_type"`
 	Limit        int    `q:"limit"`
 	Marker       string `q:"marker"`
 	SortKey      string `q:"sort_key"`
@@ -47,6 +48,7 @@
 	Name         string
 	AdminStateUp *bool
 	TenantID     string
+	DriverOpts   map[string]string
 	GatewayInfo  *GatewayInfo
 }
 
@@ -59,27 +61,37 @@
 // an external network (it is external if its `router:external' field is set to
 // true).
 func Create(c *gophercloud.ServiceClient, opts CreateOpts) CreateResult {
-	type router struct {
-		Name         *string      `json:"name,omitempty"`
-		AdminStateUp *bool        `json:"admin_state_up,omitempty"`
-		TenantID     *string      `json:"tenant_id,omitempty"`
-		GatewayInfo  *GatewayInfo `json:"external_gateway_info,omitempty"`
-	}
 
 	type request struct {
-		Router router `json:"router"`
+		Router map[string]interface{} `json:"router"`
 	}
 
-	reqBody := request{Router: router{
-		Name:         gophercloud.MaybeString(opts.Name),
-		AdminStateUp: opts.AdminStateUp,
-		TenantID:     gophercloud.MaybeString(opts.TenantID),
-	}}
+	routerMap := make(map[string]interface{})
+
+	if gophercloud.MaybeString(opts.Name) != nil {
+		routerMap["name"] = opts.Name
+	}
+
+	if opts.AdminStateUp != nil {
+		routerMap["admin_state_up"] = opts.AdminStateUp
+	}
+
+	if gophercloud.MaybeString(opts.TenantID) != nil {
+		routerMap["tenant_id"] = opts.TenantID
+	}
 
 	if opts.GatewayInfo != nil {
-		reqBody.Router.GatewayInfo = opts.GatewayInfo
+		routerMap["external_gateway_info"] = opts.GatewayInfo
 	}
 
+	if opts.DriverOpts != nil {
+		for k, v := range opts.DriverOpts {
+			routerMap[k] = v
+		}
+	}
+
+	reqBody := request{Router: routerMap}
+
 	var res CreateResult
 	_, res.Err = c.Post(rootURL(c), reqBody, &res.Body, nil)
 	return res
diff --git a/openstack/networking/v2/extensions/layer3/routers/requests_test.go b/openstack/networking/v2/extensions/layer3/routers/requests_test.go
index 1981733..1bb0745 100644
--- a/openstack/networking/v2/extensions/layer3/routers/requests_test.go
+++ b/openstack/networking/v2/extensions/layer3/routers/requests_test.go
@@ -37,6 +37,7 @@
             "name": "second_routers",
             "admin_state_up": true,
             "tenant_id": "6b96ff0cb17a4b859e1e575d221683d3",
+						"router_type": "shared",
             "id": "7177abc4-5ae9-4bb7-b0d4-89e94a4abf3b"
         },
         {
@@ -47,6 +48,7 @@
             "name": "router1",
             "admin_state_up": true,
             "tenant_id": "33a40233088643acb66ff6eb0ebea679",
+						"router_type": "shared",
             "id": "a9254bdb-2613-4a13-ac4c-adc581fba50d"
         }
     ]
@@ -72,6 +74,7 @@
 				Name:         "second_routers",
 				ID:           "7177abc4-5ae9-4bb7-b0d4-89e94a4abf3b",
 				TenantID:     "6b96ff0cb17a4b859e1e575d221683d3",
+				RouterType:   "shared",
 			},
 			Router{
 				Status:       "ACTIVE",
@@ -80,6 +83,7 @@
 				Name:         "router1",
 				ID:           "a9254bdb-2613-4a13-ac4c-adc581fba50d",
 				TenantID:     "33a40233088643acb66ff6eb0ebea679",
+				RouterType:   "shared",
 			},
 		}
 
@@ -127,6 +131,7 @@
         "name": "foo_router",
         "admin_state_up": false,
         "tenant_id": "6b96ff0cb17a4b859e1e575d221683d3",
+				"router_type": "shared",
         "id": "8604a0de-7f6b-409a-a47c-a1cc7bc77b2e"
     }
 }
@@ -176,6 +181,7 @@
         "name": "router1",
         "admin_state_up": true,
         "tenant_id": "d6554fe62e2f41efbb6e026fad5c1542",
+				"router_type": "shared",
         "id": "a07eea83-7710-4860-931b-5fe220fae533"
     }
 }
@@ -233,6 +239,7 @@
         "name": "new_name",
         "admin_state_up": true,
         "tenant_id": "6b96ff0cb17a4b859e1e575d221683d3",
+				"router_type": "shared",
         "id": "8604a0de-7f6b-409a-a47c-a1cc7bc77b2e",
         "routes": [
             {
@@ -287,6 +294,7 @@
         "name": "name",
         "admin_state_up": true,
         "tenant_id": "6b96ff0cb17a4b859e1e575d221683d3",
+				"router_type": "shared",
         "id": "8604a0de-7f6b-409a-a47c-a1cc7bc77b2e",
         "routes": []
     }
diff --git a/openstack/networking/v2/extensions/layer3/routers/results.go b/openstack/networking/v2/extensions/layer3/routers/results.go
index 5e297ab..b65a8bc 100644
--- a/openstack/networking/v2/extensions/layer3/routers/results.go
+++ b/openstack/networking/v2/extensions/layer3/routers/results.go
@@ -45,6 +45,9 @@
 	// other than its own.
 	TenantID string `json:"tenant_id" mapstructure:"tenant_id"`
 
+	// Whether router is Exclusive or Shared.
+	RouterType string `json:"router_type" mapstructure:"router_type"`
+
 	Routes []Route `json:"routes" mapstructure:"routes"`
 }
 
