code: def create_network(self, name, tenant_id, subnet, gw=None):
          
  
          try:
              body = {'network': {'name': name, 'tenant_id': tenant_id,
                                  'admin_state_up': True}}
              netw = self.neutronclient.create_network(body=body)
              net_dict = netw.get('network')
              net_id = net_dict.get('id')
          except Exception as exc:
              LOG.error("Failed to create network %(name)s, Exc %(exc)s",
                        {'name': name, 'exc': str(exc)})
              return None, None
  
          try:
              if gw is None:
                  body = {'subnet': {'cidr': subnet,
                                     'ip_version': 4,
                                     'network_id': net_id,
                                     'tenant_id': tenant_id,
                                     'enable_dhcp': False}}
              else:
                  body = {'subnet': {'cidr': subnet,
                                     'ip_version': 4,
                                     'network_id': net_id,
                                     'tenant_id': tenant_id,
                                     'enable_dhcp': False,
                                     'gateway_ip': gw}}
              subnet_ret = self.neutronclient.create_subnet(body=body)
              subnet_dict = subnet_ret.get('subnet')
              subnet_id = subnet_dict.get('id')
          except Exception as exc:
              LOG.error("Failed to create subnet %(sub)s, exc %(exc)s",
                        {'sub': subnet, 'exc': str(exc)})
              try:
                  self.neutronclient.delete_network(net_id)
              except Exception as exc:
                  LOG.error("Failed to delete network %(net)s, exc %(exc)s",
                            {'net': net_id, 'exc': str(exc)})
              return None, None
          return net_id, subnet_id
docs: Create the openstack network, including the subnet.