code: def allocate_hosting_port(self, context, router_id, port_db, network_type,
                                hosting_device_id):
          
          l3admin_tenant_id = self._dev_mgr.l3_tenant_id()
          hostingport_name = 'hostingport_' + port_db['id'][:8]
          p_spec = {'port': {
                    'tenant_id': l3admin_tenant_id,
                    'admin_state_up': True,
                    'name': hostingport_name,
                    'network_id': port_db['network_id'],
                    'mac_address': bc.constants.ATTR_NOT_SPECIFIED,
                    'fixed_ips': [],
                    'device_id': '',
                    'device_owner': '',
                    'port_security_enabled': False}}
          try:
              hosting_port = self._core_plugin.create_port(context, p_spec)
          except n_exc.NeutronException as e:
              LOG.error('Error %s when creating hosting port'
                        'Cleaning up.', e)
              self.delete_hosting_device_resources(
                  context, l3admin_tenant_id, hosting_port)
              hosting_port = None
          finally:
              if hosting_port:
                  return {'allocated_port_id': hosting_port['id'],
                          'allocated_vlan': None}
              else:
                  return None
docs: Allocates a hosting port for a logical port.
  
          We create a hosting port for the router port