# Patent

## Title
Method and system of dynamically designing and operating an optimal communication network configuration

## Abstract

A method and system of dynamically designing and operating an optimal communication network configuration is provided. The method includes the steps of (a) gathering a pre-saved data associated with communication network and/or network devices from a database, or a real-time data associated with at least one of the communication network and the network devices, (b) generating an optimal network configuration by selecting a first and a second network optimization parameters based on gathered data, designing an optimal network configuration to optimize the first network optimization parameter with respect to the second network optimization parameter based on gathered data, and generating network implementation instructions for implementing the designed optimal network configuration, and (c) adapting at least one network device to operate in compliance with the designed optimal network configuration based on the generated instructions by transmitting the instructions to the network devices and by executing the instructions at the network devices.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims priority to Indian patent application no. 5400/CHE/2014 filed on Oct. 29, 2014, the complete disclosure of which, in its entirely, is herein incorporated by reference.
BACKGROUND
Technical Field
The embodiments herein generally relate to communication networks, and more particularly, to system and method to dynamically design and operate an optimal communication network.
Description of the Related Art
Pursuant to an exemplary scenario communication networks typically perform fixed and pre-defined operations that are determined either during manufacturing of communication devices configured to operate in the communication networks or during activation of the communication devices. Currently available communication networks provide little flexibility for adapting to dynamic changes in communication environment, available resources or system capability. Due to the fixed nature of the network, typically the communications networks often do not deliver an optimal performance in scenarios involving dynamic changes in the communication environment. Examples of dynamic changes may include but is not limited to, new spectrums released due to government policy changes or due to obsolesce of earlier technology using the spectrum, dynamic changes in noise and interference in the radio spectrum, and changes in efficiency of use of spectrum due to changes in channel noise and interference conditions, power levels, location of devices in the network and the like. In several exemplary scenarios self-organizing networks (SONs) may be used to adapt to the dynamic changes in communication environment. However, SONs only cater to fixed bands, fixed bandwidth, and fixed modulation schemes and do not provide a mechanism to dynamically optimize network performance for most efficient use of all available resources, such as spectrum.
SUMMARY
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
A number of methods and network configuration systems for dynamically designing and operating an optimal communication network configuration are disclosed. In an embodiment, the method includes gathering a pre-saved data associated with at least one of the communication network and one or more network devices from a database and/or a real time data associated with at least one of the communication network and the one or more network devices. In an embodiment, an optimal network configuration is dynamically generated in one or more network devices by selecting one or more network optimization parameters based on the gathered data for designing an optimal network configuration. In an embodiment, the optimal network configuration is designed based on selected one or more network optimization parameters and the gathered data, and one or more network implementation instructions are generated for implementing the designed optimal network configuration for the one or more network devices. In an embodiment, at least one network device from among the one or more network devices of the communication network is adapted to operate in compliance with the designed optimal network configuration based on the generated one or more network implementation instructions.
In another aspect, a network configuration system for dynamically designing and operating an optimal communication network configuration is disclosed. In an embodiment, the network configuration system includes a data sensing module, a network design module, and an adapt module. The network configuration may be implemented in one of a base station, a server, a user device or any combination thereof. In an embodiment, the data sensing module is operable to gather a pre-existing data associated with at least one of the communication network and/or one or more network devices from a database, and a real-time data associated with the communication network and/or the one or more network devices. In an embodiment, the network design module is operable to select one or more network optimization parameters based on the gathered data for designing an optimal network configuration. The network design module is also operable to design an optimal network configuration based on the selected one or more network optimization parameters. The network design module is further operable to generate one or more network implementation instructions to implement the designed optimal network configuration for the one or more network devices. The adapt module is operable to adapt at least one network device of the communication network to operate in compliance with the designed optimal network configuration base on the generated one or more network implementation instructions.
The adapt module is also operable to provide the one or more network implementation instructions via a communication network from one or more network devices to one or more other network devices and implement the optimal network configuration in the one or more other network devices by executing the one or more network implementation instructions in the communication network devices. The adapt module is also operable to implement the optimal network configuration in the one or more network devices by executing the one or more network implementation instructions in the one or more network devices. In an embodiment, the adapt module is also operable to update the database with the gathered data and the optimal network configuration for subsequent use.
In yet another aspect, a non-transitory machine-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, cause the one or more processors to execute a method of dynamically designing and operating an optimal communication network configuration is disclosed. The method includes gathering a pre-saved data associated with the communication network and/or one or more network devices from a database, and/or a real time data associated with at least one of the communication network and the one or more network devices. The method also includes dynamically generating an optimal network configuration by selecting one or more network optimization parameters based on the gathered data for designing an optimal network configuration, designing the optimal network configuration based on selected one or more network optimization parameters and the gathered data, and generating one or more network implementation instructions for implementing the designed optimal network configuration for the one or more network devices. In an embodiment, the generated one or more network implementation instructions are provided via the communication network to the one or more other network devices. In an embodiment, the optimal network configuration is implemented in the one or more other network devices by executing the one or more network implementation instructions in the communication network devices. The database is updated with the gathered data and the optimal network configuration for subsequent use.
These and other aspects of the embodiments herein will be better appreciated and understood when considered in conjunction with the following description and the accompanying drawings. It should be understood, however, that the following descriptions, while indicating preferred embodiments and numerous specific details thereof, are given by way of illustration and not of limitation. Many changes and modifications may be made within the scope of the embodiments herein without departing from the spirit thereof, and the embodiments herein include all such modifications.



BRIEF DESCRIPTION OF THE DRAWINGS
The embodiments herein will be better understood from the following detailed description with reference to the drawings, in which:
FIG. 1 illustrates a network environment in which system disclosed herein is deployed, in accordance with an embodiment;
FIG. 2 exemplarily illustrates a block diagram of a network device for dynamically designing and operating an optimal communication network configuration, in accordance with an embodiment;
FIG. 3A depicts process flow diagram illustrating a method of dynamically designing and operating an optimal network configuration, in accordance with an embodiment;
FIGS. 3B-3C depicts a flow chart illustrating the method illustrated in FIG. 3A, in accordance with an embodiment;
FIG. 4 illustrates an exploded view of the user device to perform any one or more of the methodologies herein, in accordance with an embodiment; and
FIG. 5 depicts a functional block diagram of an example general-purpose digital computing environment that may be used to implement various aspects of the present technology, in accordance with an embodiment.



DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
The embodiments herein and the various features and advantageous details thereof are explained more fully with reference to the non-limiting embodiments that are illustrated in the accompanying drawings and detailed in the following description. Descriptions of well-known components and processing techniques are omitted so as to not unnecessarily obscure the embodiments herein. The examples used herein are intended merely to facilitate an understanding of ways in which the embodiments herein may be practiced and to further enable those of skill in the art to practice the embodiments herein. Accordingly, the examples should not be construed as limiting the scope of the embodiments herein.
Various embodiments of methods and systems disclosed herein provide a technique for dynamically designing and operating an optimal communication network configuration. The system disclosed herein gathers data including a pre-saved data and/or a real-time data associated with a communication network and/or one or more network devices and dynamically generates an optimal network configuration based on the gathered data and one or more network optimization parameters.
FIG. 1 illustrates a network environment 100 in which system disclosed herein is deployed, in accordance with an embodiment. The network environment 100 includes a user 102, one or more user devices 104A-N, a communication network 106, one or more base stations 108A-N, and the server 110. The one or more base stations 108A-N are communicatively associated with the server 110. The one or more user devices 104A-N are communicatively associated with the one or more base stations 108A-N through the communication network 106. It will be appreciated that the network connections shown are illustrative and other techniques for establishing a communications link between the computers can be used. The server 110 may include, but is not limited to a local server, a remote server, a sever based on a cloud, and the like. An example of the one or more user devices 104A-N includes, but is not limited to a customer premises equipment, a personal computer (PC), a mobile communication device, a smart phone, a tablet PC, a laptop, a desktop, an ultra-book, a router, a network PC, a peer device, a network node, a modem, a dongle, any other network device capable of connecting to the communication network 106 for operational purposes.
In various embodiments, a compute infrastructure in one or more user devices 104A-N and/or one or more base stations 108A-N may range from a highly optimized hardware to a highly flexible cognitive radio platform capable of supporting wide range of radio frequencies and modulation schemes and dynamically switching between them in real-time. In various embodiments, the compute infrastructure of the one or more user devices 104A-N and/or the one or more base stations 108A-N may also comprise a virtual machine (VM) model supporting a set of primitives. The VM model may be capable of receiving a file containing one or more virtual machine primitives and generating one or more binary executable instructions. As used herein the term “VM” refers to a platform-independent execution environment that converts a byte-code into machine language instructions (also known as binary executable instructions) and executes the machine language instructions. The virtual machine primitives may be represented as byte codes. The VM may be for example a Java Virtual Machine (JVM) or any other abstract computing machine defined by a specification, omitting an implementation and run-time details.
An example of the communication network 106 includes, but is not limited to an internet, intranet, a wide area network, a wired cable network, a broadcasting network, a wired communication network, a wireless communication network, a fixed wireless network, a mobile wireless network, and the like. The one or more user devices 104A-N interact with the one or more base stations 108A-N and the server 110 to establish an optimal network in a variable network environment. In an embodiment, one or more base stations 108A-N, sever 110, and/or one or more user device 104A-N may be operable to perform a sequence of operations on different types of structured or unstructured data to derive required higher-level information, inferences and conclusions required for the optimal operation of the network (such as for example, Big data processing). In one embodiment, the one or more base stations 108A-N may be connected to centralized equipment which may in turn be connected to multiple other base stations. Either of the one or more user devices 104A-N and/or the one or more base stations 108A-N and/or the server 110 may constitute a network device of the present technology and may be operable to dynamically design and operate an optimal communication network configuration in the network environment 100.
FIG. 2 exemplarily illustrates a block diagram of system 200 for dynamically designing and operating an optimal communication network configuration, in accordance with an embodiment. In an embodiment, the system 200 may be implemented in for example a user device from among the one or more user devices 104A-N, a base station (BS) from among the one or more BSs (108A-N) or a (such as server 110) deployed in the network environment 100 of FIG. 1. In an embodiment, the system 200 includes a network configuration system 202 communicatively associated with a database 204 and a network management unit 205. The network management unit 205 may be communicatively associated with the network configuration system 202 and/or the database 204. The network configuration system 202 is operable to dynamically design and operate an optimal communication network. In an embodiment, the network configuration system 202 is implemented in a user device (such as user device 104A of FIG. 1), a base station (such as base station 108A of FIG. 1), a server (such as server 110 of FIG. 1), or any combination thereof. In an embodiment, network configuration system 202 includes one or more modules such as a data sensing module 206, a network design module 208, an adapt module 210, and a radio frequency module 211. The network management unit 205 may be implemented either in a base station, a user device or a server. The network management unit 205 may be operable to manage the functionalities of various modules associated with the network configuration system 202.
Although the present embodiments have been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the various embodiments, for example, the various modules, such as the data sensing module 206, the network design module 208, the adapt module 210, and the radio frequency module 211 described herein may be enabled and operated using a firmware, software and/or hardware circuitry (e.g., CMOS based logic circuitry) or any combination of hardware, firmware, and/or software (e.g., embodied in a machine readable medium). Also various network devices and methods disclosed herein may be embodied using transistors, logic gates, and electrical circuits (e.g., Application Specific Integrated (ASIC) Circuitry and/or in Digital Signal Processor (DSP) circuitry). In an embodiment, one or more of the data sensing module 206, the network design module 208, the adapt module 210, radio frequency module 211 and/or the associated functionalities may be fully or partly implemented in one or more BSs 108A-N, the server 110, one or more user devices 104A-N or any combination thereof. For example, in an embodiment, the data sensing module 206 is fully or partly implemented in a BS form among the BSs 108A-N and/or a user device from among the user devices 104A-N. In an embodiment, the network design module 208 may be implemented in the server 110. In an embodiment, the adapt module 210 may be fully or partly implemented in a BS form among the BSs 108A-N and/or a user device from among the user devices 104A-N. Also various modules such as data sensing module 206, the network design module 208, radio frequency module 211, and the adapt module 210 described herein and their associated functionalities may be distributed across network devices belonging to different communication networks.
In an embodiment, the data sensing module 206 may be operable to gather a pre-saved data associated with a communication network and/or one or more network devices from a database and/or a real-time data associated with the communication network and/or one or more network devices. In an embodiment, the data sensing module 206 may be deployed on the server 110, one or more base stations 108A-N, and/or one or more user devices 104A-N. In an embodiment, the real-time data is gathered by sensing the communication network 106 and/or one or more network devices. In an embodiment, the data sensing module 206 may sense the real-time data based on for example, e.g., a spectrum sensing. The data sensing module 206 may be enabled to include functionalities of a camera, a microphone, a temperature sensor, a pressure sensor, a gyro, acceleration or wind speed sensor, and the like. In an embodiment, the real-time data may be gathered by sensing the radio frequency environment and the network environment 100. The real-time data may be gathered by the data sensing module 206 over an initial-handshake channel with one or more user devices 104A-N. A used herein the term “initial-handshake” refers to a channel used by the user device to initially join the network before the optimization process begins. This may be known to the user device because of prior settings or discovered by listening to a default channel.
In an embodiment, the pre-saved data and/or the real-time data may include, for example a structured data and/or an unstructured data. The database 204 includes for example, an organized database and an unorganized database. The database 204 may be located/implemented in a user device (such as one or more user device 104A-N), in a base station (such as one or more BSs 108 A-N), in a server (such as server 110), in a networked remote database, or on a cloud. The pre-saved data and/or the real-time data may include for example, big data and the big data may be gathered via big data analysis. The data sensing module 206 may perform a sequence of operations on the big data to derive higher-level information, inferences and conclusions required for the optimal operation of network. In an embodiment, the pre-saved data may include cloud data gathered from database including a storage database based on cloud computing. In an embodiment, the real-time data and/or the pre-saved data may include data associated with one or more capabilities of the network devices of the network environment 100, one or more user preferences, and/or one or more network operator preferences.
Examples of the pre-saved data may include, but is not limited to one or more radio frequency (RF) related parameters (such as RF band center frequency, a bandwidth, nature of a band (such as licensed/unlicensed) a maximum transmitter power permitted in the band), one or more baseband related parameters (such as, a channel quality information from previous day/week/month/year/average such as a signal to noise ratio (SNR), a carrier to noise ratio (CNR), an adjacent channel interference (ACI), a co-channel interference (CCI), impulse noise, details for ACI (out of band or far-off band), an implementation margin required), a media access control (MAC) related parameters (such as a maximum number of users to be supported in the communication network, a connectivity to centralized data base or only to local database), one or more network and/or user preference data (such as, data required optimize network for bits per hertz (Hz), latency or bits per Watt, reliability/graceful degradation or data security or in a combination of many in certain priority, a quality of service (OoS)/service level agreement (SLA) requirements if any, a degree of security needed in communication physical layer or higher layer, a maximum bit error rate, packet error rate or frame error rate allowable for an application), past performance data and/or other miscellaneous parameters (such as application details like nature of information sent that could be voice, video, data or a combination of those, a maximum propagation distance, terrain conditions, initial hand-shake communication channel and modulation details)
Examples of the real-time data may include, but is not limited to one or more RF related parameters (such as spectrum sensing in-band and adjacent bands an adjacent channel interference (ACI), in-band interference like level, nature (impulse/burst characteristics), out of band interference, far-off band interference, maximum distance from BS to user devices), one or more baseband related parameters (such as a co-channel interference (CCI), multi-path profile, fading profiles, and doppler), one or more MAC related parameters (such as maximum number of active users in the communication network), one or more miscellaneous parameters (such as ambient temperature), data associated with one or more capabilities of one or more base stations 108A-N and one or more user devices 104A-N in the network 106, a run time specifications, and the like.
The pre-saved data or the real-time data may also include data associated with capability of devices in the network, including but not limited to, RF related parameters (such as, a number of transmitter antennas at the base station, a number of receiver antennas at the base station, a number of transmitter antennas at the user device, a number of receiver antennas at the customer premise equipment, base station multiple input multiple output (MIMO)/multiple input single output (MISO)/single input multiple output (SIMO), or single input single output (SISO) configuration support, customer premise equipment MIMO/MISO/SIMO/SISO configuration support, base station radio frequency (RF) transmitter characteristics, base station radio frequency receiver characteristics, typical customer premise equipment RF transmitter characteristics, typical customer premise equipment RF receiver characteristics, maximum BS RF power possible, maximum customer premise equipment RF power possible, base station noise figure, typical customer premise equipment noise figure, base station Third order intercept point (IP3), typical customer premise equipment IP3, base station/customer premise equipment duplexer support, base station/customer premise equipment diplexer support, base station/customer premise equipment carrier aggregation support (contiguous, noncontiguous), base station/customer premise equipment time division duplexing (TDD)/frequency division duplexing (FDD) support, one or more baseband related parameters (such as digital signal processor-virtual Machine (DSPVM) capability (maximum MAC support, List of DSP primitives supported (maximum fast fourier transform (FFT) etc)), one or more MAC related information (such as maximum compute cycles supported for MAC, maximum memory supported for MAC), and other parameters associated with the capability of the devices in the network.
The radio frequency module 211 is operable to enable radio frequency transmission and/or reception functionalities of the network configuration system 202. In an embodiment, the network design module 208 is operable to select one or more network optimization parameters based on the gathered data for designing an optimal network configuration. As used herein the term “network optimization parameters” refers to one or more parameters associated with the communication network and/or network devices associated with the communication network that may be selected so as to optimize performance of the communication network. In an embodiment, the network optimization parameters may be selected so as to be optimized relative to one or more other network optimization parameters. For example, the network design module 208 may select the network optimization parameters with an aim to optimize one network optimization parameters while keeping a minimum or a maximum target value for one or more other network optimization parameters. The minimum or maximum target value is a “constraint” for optimization, for example target value of a network optimization parameter may include a bit error rate of 10e−4. So bits per hertz may be optimized while maintaining a maximum bit error rate of 10e−4.
In an embodiment, the network design module 208 may be deployed on the server 110, one or more base stations 108A-N, and/or one or more user devices 104A-N. In an embodiment, the one or more network optimization parameters may include one or more performance parameters such as bit error rate, reliability (uptime), throughput or data rate, latency, security, and other user defined criteria.
In an embodiment, the network design module 208 designs the optimal network configuration by selecting various network parameters and/or by designing network schemes. Examples of the network parameters may include, but is not limited to, selection of a radio frequency channel, a modulation/demodulation scheme, multi-access scheme, a MAC scheme, and the like. Examples of network schemes may include, but not limited to, a modulation/demodulation scheme, multi-access scheme, a MAC scheme, and the like. In an embodiment, the network schemes designed may be custom or scenario specific scheme and different from existing, standard or popular schemes. In an embodiment, the network design may be performed by using one or more rules of performance-of-operation of communication networks and by applying certain optimization techniques. In an embodiment, the network optimization may be performed based on a cost function. In an embodiment, the network design module 208 selects at least one radio frequency channel based on the gathered data for enabling optimal network performance based on the selected one or more network optimization parameters. The network design module 208 may also select or design a modulation scheme and/or a demodulation scheme based on the gathered data for enabling optimal network performance based on the selected one or more network optimization parameters. Additionally, the network design module 208 may select or design a media access control (MAC) scheme based on the gathered data to ensure optimal network performance based on the selected one or more network optimization parameters.
The network design module 208 designs the optimal network configuration to optimize the selected one or more network optimization parameters, and generates one or more network implementation instructions to implement the designed optimal network configuration for the one or more network devices. The network implementation instructions may include, but is not limited to one or more executable instructions (for example, a computer executable code), one or more configuration files, one or more files containing virtual machine primitives, one or more binary executable instructions and/or any combination thereof.
In an embodiment, the network design module 208 residing on the server 110 generates network implementation instructions for optimal network configuration for both BS and user device. In another embodiment, the network design module 208 residing on the BS or the user device generates the network implementation instructions for the BS and/or one or more user devices in the communication network 106. In an embodiment, the network design module 208 generates network implementation instructions including a PHY code for PHY configuration and/or a MAC code for MAC configuration. As used herein the term “PHY code” refers to network implementation instructions for the physical layer and the term “MAC code” refers to network implementation instructions for the MAC layer. The MAC code may be generated automatically based on one or more parameters associated with a MAC configuration and the PHY code may be automatically generated based on one or more PHY parameters. In an embodiment, the MAC code and the PHY code may be generated for all the user devices and the BSs in the communication network 106.
In an embodiment, the adapt module 210 is operable to adapt at least one network device of a communication network to operate in compliance with the designed optimal network configuration based on the generated one or more network implementation instructions. In an embodiment, in order to adapt at least one network device of the communication network to operate in compliance with the designed optimal network configuration, the adapt module 210 provides the network implementation instructions via the communication network from one or more network devices to one or more other network devices. In an embodiment, the network implementation instructions may be transmitted (for example, downloaded) via the communication network from one or more network devices to one or more other network devices. For example, the network implementation instructions comprising binary executable instructions generated at the server 110 for the base stations may be transmitted from the server 110 to the one or more BSs 108A-N.
Similarly, the network implementation instructions comprising for example, binary executable instructions for user devices may be transmitted from one or more BSs 108A-N to one or more user devices 104 A-N. In an embodiment, the network implementation instructions (comprising for example, a code) may be generated at one or more BSs 108A-N and a user device code component of the generated network implementation instruction may be transmitted from one or more BSs 108A-N to one or more user devices 104 A-N. In another embodiment, the adapt module 210 is operable to transmit the one or more network implementation instructions from the one or more user devices 104A-N to another one or more user devices 104A-N, upon the network implementation instruction being generated in the one or more user devices 104A-N in an ad-hoc network.
In an instance where one or more BSs 108 A-N and/or one or more user devices 104A-N support a VM model supporting a set of primitives, network implementation instructions including one or more configuration files or one or more files containing virtual machine primitives may be generated for one or more BSs 108 A-N and/or one or more user device 104A-N. Upon the network implementation instructions (including configuration files or one or more files containing virtual machine primitives) being generated at server 110, the configuration files or the files containing virtual machine primitives may be transmitted to one or more BSs 108 A-N, and, subsequently from the BSs 108 A-N to one or more user devices 104A-N that may be configured to generate one or more binary executable instructions from the configuration files or the files containing virtual machine primitives. Upon the network implementation instructions (including configuration files or one or more files containing virtual machine primitives) being generated at one or more BSs 108 A-N, the configuration files or the files containing virtual machine primitives may be transmitted to one or more user devices 104A-N that may be configured to generate one or more binary executable instructions from the configuration files or the files containing virtual machine primitives. Similarly, upon the network implementation instructions (including configuration files or one or more files containing virtual machine primitives) being generated at one or more user devices 104 A-N, the one or more user devices 104A-N may be configured to generate one or more binary executable instructions from the configuration files or the files containing virtual machine primitives. In an ad-hoc network, the network implementation instructions including configuration files or one or more files containing virtual machine primitives generated at user devices 104 A-N may be transmitted to one or more other user devices 104A-N that may be configured to generate one or more binary executable instructions from the configuration files or the files containing virtual machine primitives.
In an embodiment, the configuration files or the files containing virtual machine primitives may further include, for example, an optimum parameters set, a device capability of one or more user devices 104 A-N and/or one or more BSs 108A-N, or a run time specification, and the like. The optimum parameters set may be for example, derived by the network design module 208 during designing the optimal network configuration. In an embodiment, the optimum parameter set may be derived by optimizing a cost function consisting of various parameters.
The device capability may provide one or more constraints on generating the network implementation instruction (for example, code) capable of being executed on a network device. In an embodiment, the generation of the network implementation instruction by a Server or BS for the user device requires the Server or BS to be aware of one or more device capabilities of the user device, such as for example, a processing power on the PHY/MAC, single/multi core processor, a memory configuration, and the like. For example, if the network optimization parameters for a downlink includes a security information using a Kasumi encryption, a schedule for MAC-round robin, a frame structure for MAC, a transmission time interval (TTI) duration (for example 5 milliseconds), an acknowledgement at MAC, a handover capability, an inter-radio access technology (RAT) capability, a user device may be configured to design an optimal network configuration for a receiver based on the above network optimization parameters, and the configuration file including a run-time specification based on the above listed network optimization parameters may be as given below:










message structure















struct _message {


   BYTE message_plane


   BYTE message_type


   BYTE forward_timeout


   BYTE forward_priority


   UINT payload_size


   ULONG *message_payload


}


MESSAGE_QUEUE {


   queues = 3 /* Total number of message queues */


   ASSOCIATION {


      APP = CG , /* App interface to CG */


      SYNCHRONOUS,


      0, /* 10ms read timeout */


      10, /* 10ms write timeout , global configuration , should be possible to override


      based on <channel


      type : timeout> mapping*/


      5 , /* number of messages in queue */


      0 /* run-time creation of message queue 0 = NOT SUPPORTED , 1 = SUPPORTED


      */


   }


   ASSOCIATION {


      MAC = CG , /* MAC interface to Common Gateway */


      SYNCHRONOUS,


      0, /* 10ms read timeout */


      10, /* 10ms write timeout , global configuration , should be possible to override


      based on <channel


      type : timeout> mapping*/


      5 , /* number of messages in queue */


      0 /* run-time creation of message queue 0 = NOT SUPPORTED , 1 = SUPPORTED


      */


   }


   ASSOCIATION {


      CG = ALL, /* Common Gateway interface to all threads*/


      SYNCHRONOUS,


      0, /* 10ms read timeout */


      10, /* 10ms write timeout , global configuration , should be possible to override


      based on <channel


      type : timeout> mapping*/


      5 , /* number of messages in queue */


      0 /* run-time creation of message queue 0 = NOT SUPPORTED , 1 = SUPPORTED


      */


   }


}


MESSAGE_PAYLOAD {


   ALLOC = MAC /* MAC to allocate memory for payload */


   DEALLOC = MAC /* MAC to deallocate memory for payload */


   ALLOC_TYPE = STACK_INTERNAL


}


THREAD {


   THREADS = 8


   ASSOCIATION {


      NAS_Thread , /* thread name */


      10 , /* low priority */


      MODULE, /* scope */


      NONE , /* critical region locking */


      STATIC , /* STATIC - created during initialization or DYNAMIC - created


      and deleted dynamically */


      ASSOC_INFO {


         initNAS /* procedure name */


      }


   }


   ASSOCIATION {


      CG_Thread , /* thread name */


      5 , /* high priority */


      MODULE , /* scope */


      NONE , /* critical region locking */


      STATIC,


      ASSOC_INFO {


         /* no procedures are implemented in dispatcher thread */


      }


....


}









If the network implementation instruction is generated for a user device on the server or BS, additional information on the device capability that may be required to generate the network implementation instruction based on the above configuration file may be as below:













CPU {


   DualCore , /* CPU type */


   CPU_1_ASSOC {


   PROCEDURE_1 ,


   CG_Thread ,


   ....


   }


   CPU_2_ASSOC {


   PROCEDURE_2 ,


   MAC_Control_Thread ,


   MAC_Uplink_Thread ,


   ....


   }


}


MEMORY {


   TCM {


      TYPE_A , /* memory sub-type */


      True , /* memory manager support for data */


      True , /* memory manager suport for instructions */


      REGIONS {


         0X07FFFFFF - 0X07FFFF00, /* dummy values */


         NON-CACHEABLE


         ....


      }


      PROC_ASSOC { /* code association */


         interrupt_handler ,


         ....


      }


      DATA_ASSOC { /* data association */


         interrupt_vector_table : byte ,


         /* data : alignment */


         ....


      }


   }


   TCM {


      TYPE_B , /* enum to identify the memory table */


      True , /* memory manager support for data */


      True , /* memory manager suport for instructions */


      REGIONS {


         0X07FFFF00 - 0X07FFFEBC, /* dummy values */


         NON-CACHEABLE


         ....


      }


      PROC_ASSOC { /* code association */


      L1_handler ,


      ....


      }


      DATA_ASSOC { /* data association */


         frequency_static_vector : byte ,


         /* data : alignment */


         ....


      }


   }


   EXT_MEM {


      TYPE_C , /* enum to identify the memory table */


      True , /* memory manager support for data */


      True , /* memory manager suport for instructions */


      REGIONS {


         0X07FF0000- 0X07FFFFA0, /* dummy values */


         CACHEABLE


         ....


      }


      PROC_ASSOC { /* code association */


         SegmentationAlgo ,


         ....


      }


      DATA_ASSOC { /* data association */


         SegmentationConfig : byte , /* data : alignment */


         ....


      }


   }


   }









Based on above set of information, the server or BS may generate network implementation instructions that may be executed on a specific platform in the user device supporting a virtual machine model.

In an embodiment, the adapt module 210 implements the provided optimal network configuration in the one or more other network devices. In an embodiment, the adapt module 210 implements the optimal network configuration in one or more network devices by executing the one or more network implementation instructions in the one or more network devices. For example, upon one or more network implementation instructions being transmitted from the server 110 to a BS, the adapt module 210 may cause the transmitted one or more network implementation instructions to be executed at the BS. Similarly, upon the one or more network implementation instructions being transmitted from the BS to a user device, the adapt module 210 may cause the one or more network implementation instructions to be executed at the user device. In an embodiment, subsequent to implementing the optimal network configuration, the adapt module 210 updates the database with the gathered data and the optimal network configuration for subsequent use.
In an embodiment, the operations of the data sensing module 206, the network design module 208, and the adapt module 210 may be triggered and repeated upon a criterion being fulfilled. In another embodiment, the operations of the data sensing module 206, the network design module 208, and the adapt module 210 may be triggered and repeated upon a plurality of criteria being fulfilled. In an embodiment, the criterion/plurality of criteria may be based on operation of the data sensing module 206 and/or the network design module 208. The criterion/plurality of criteria may include, for example one or more of (a) time based/periodic update such as lapse of certain time from a previous update, (b) environmental changes, such as when certain sensed parameter changes beyond certain percentage from a previously observed value (For example, SNR of a radio channel), (c) performance change, such as when measured performance falls below certain percentage of a previously observed performance (For example, a channel throughput), and (d) any other user defined/administrator defined event.
In various embodiment, the network configuration system 202 may additionally include other components (not shown), such as, for example, an input unit (e.g., a video processing device), a video display unit (e.g., a liquid crystals display (LCD), a cathode ray tube (CRT), and the like), a cursor control device (e.g., a mouse), a drive unit (e.g., a disk drive), a signal generation unit (e.g., a speaker) and/or a network interface unit. The drive unit includes a machine-readable medium upon which are stored one or more sets of instructions (e.g., software) embodying one or more of the methodologies and/or functions described herein. In an embodiment, the software resides, either completely or partially, within the data sensing module 206, the network design module 208, and the adapt module 210 also constitute machine-readable media. The software may further be transmitted and/or received over a network via or through the network interface unit. The term “machine-readable medium” may be construed to include a single medium and/or multiple media (e.g., a centralized and/or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. Moreover, the term “machine-readable medium” may be construed to include any medium that is capable of storing, encoding and/or carrying a set of instructions that may be executed by a network device such that the execution of these instructions causes the network device to perform one or more of the methodologies of the various embodiments. Furthermore, the term “machine-readable medium” may be construed to include, but shall not be limited to, solid-state memories, optical and magnetic media, and carrier wave signals.
FIG. 3A is a process flow diagram depicting a method 300 of dynamically designing and operating an optimal network configuration according to an embodiment herein. In an example, the method 300 may be performed in the network environment 100 described with reference to FIG. 1 by a network configuration system 202 as described herein with reference to FIG. 2. In operation 302, a pre-saved data associated with a communication network (such as communication network 106) and/or one or more network devices is gathered (by for example, the data sensing module 206 of FIG. 2) from a database and/or a real-time data associated with the communication network and/or one or more network devices is gathered (by for example, the data sensing module 206 of FIG. 2) from the communication network and/or the associated devices. In an embodiment, the real-time data may be gathered by sensing the communication network and/or one or more network devices (such as a BS or a user device of FIG. 1) associated with the communication network. In an embodiment, the real-time data may be gathered by sensing based on for example, e.g., a spectrum sensing. In an embodiment, the real-time data may be gathered by sensing the radio frequency environment and the network environment. In an embodiment, the real-time data may be gathered by listening to or by communicating over an initial-handshake channel with one or more user devices associated with the communication network. In an embodiment, the pre-saved data and/or the real-time data may include, for example a structured data and/or an unstructured data. The database includes for example, an organized database and an unorganized database. In an embodiment, the pre-saved data and/or real-time data may include, for example big data and the big data may be gathered by the network environment via big data analysis. In an embodiment, the pre-saved data may include cloud data gathered from a storage database based on cloud computing. Various examples of the real-time data and pre-saved data is as described along with FIG. 2.
At step 304, an optimal network configuration may be dynamically generated in one or more network devices (by using for example, network design module 208). At sub-step 304A of step 304 one or more network optimization parameters may be selected based on the gathered data for designing an optimal network configuration. In an embodiment, the network optimization parameters may be selected so as to be optimized relative to one or more other network optimization parameters. For example, the network optimization parameters may be selected with an aim to optimize one or more network optimization parameters while keeping a minimum or a maximum target value for one or more other network optimization parameters. The minimum or maximum target value is a “constraint” for optimization, for example target value of a network optimization parameter may include a bit error rate of 10e−4. So bits per hertz may be optimized while maintaining a maximum bit error rate of 10e−4. In an embodiment, the one or more network optimization parameters may include one or more performance parameters such as bit error rate, reliability (uptime/graceful degradation), throughput or data rate, latency, security, and other user defined criteria.
At sub-step 304B, an optimal network configuration may be designed (for example, using network design module 208) based on selected one or more network optimization parameters and the gathered data. In an embodiment, the network optimization may be performed using one or more rules of performance-of-operation of communication networks and by applying certain optimization techniques. In an embodiment, one or more of at least one radio frequency channel, at least one of a modulation scheme and a demodulation scheme, and/or a media access control (MAC) scheme may be selected based on the gathered data for enabling optimal network performance based on the selected one or more network optimization parameters.
At sub-step 304C, one or more network implementation instructions may be generated (for example, using network design module 208) for implementing the designed optimal network configuration for one or more network devices in the network environment (such as network environment 100 of FIG. 1). The network implementation instructions may include, but is not limited to one or more executable instructions (for example, a computer executable code), one or more configuration files, one or more files containing virtual machine primitives, one or more binary executable instructions and/or any combination thereof. In an embodiment, network implementation instructions may be generated (in for example server 110 of FIG. 1) for optimal network configuration for both a BS and a user device of the network environment. In another embodiment, the BS or the user device may generate the network implementation instructions for the BS and/or one or more user devices in the communication network.
In an embodiment, at sub-step 304C, upon one or more BSs and/or one or more user devices comprising a VM model supporting a set of primitives, network implementation instructions including configuration files or one or more files containing virtual machine primitives may be generated at server, or one or more BSs or one or more user devices. Upon the network implementation instructions including configuration files or one or more files containing virtual machine primitives being generated at one or more network devices, the configuration files or the files containing virtual machine primitives may be transmitted to one or more user devices that may be configured to generate one or more binary executable instructions from the configuration files or the files containing virtual machine primitives. Similarly, upon the network implementation instructions including configuration files or one or more files containing virtual machine primitives being generated at one or more user devices, the one or more user devices may be configured to generate one or more binary executable instructions from the configuration files or the files containing virtual machine primitives. In an ad-hoc network, the network implementation instructions including configuration files or one or more files containing virtual machine primitives being generated at user devices may be transmitted to one or more other user devices that may be configured to generate one or more binary executable instructions from the configuration files or the files containing virtual machine primitives. In an embodiment, the configuration files or the files containing virtual machine primitives may further include, for example, an optimum parameters set, a device capability of one or more user devices and/or one or more BSs, or a run time specification, and the like. The optimum parameters set may be for example, derived during designing the optimal network configuration. In an embodiment, the optimum parameter set may be selected based on an optimized cost function resulting on variable set of parameters.
The device capability may provide one or more constraints on generating the network implementation instruction (for example, code) capable of being executed on a network device. In an embodiment, upon the network implementation instructions being generated by a BS for the user device, the BS may need to be aware of one or more device capabilities of the user device, such as for example, a processing power on the PHY/MAC, single/multi core processor, a memory configuration, and the like for generating the network implementation instruction. For example, if the network optimization parameters for a downlink includes a security information using a Kasumi encryption, a schedule for MAC-round robin, a frame structure for MAC, a TTI Duration of 5 ms, an acknowledgement at MAC, a handover capability, an inter-radio access technology (RAT) capability a user device may be configured to design an optimal network configuration for a received based on the above network optimization parameters.
In another embodiment, network implementation instructions including a PHY code for PHY configuration and/or MAC code for MAC configuration may be generated. The MAC code may be generated automatically based on one or more parameters associated with a MAC configuration and the PHY code may be automatically generated based on one or more PHY parameters. In an embodiment, the MAC code and the PHY code may be generated for all the user devices and all the BSs in the communication network.
At step 306, at least one network device of the communication network may be adapted to operate in compliance with the designed optimal network configuration based on the generated one or more network implementation instructions. In an embodiment, in order to adapt at least one network device of the communication network to operate in compliance with the designed optimal communication network configuration, the network implementation instructions is provided (by for example, adapt module 210) via the communication network from one or more network devices to one or more other network devices. In an embodiment, the network implementation instructions may be transmitted (for example, downloaded) via the communication network from one or more network devices to one or more other network devices. In an embodiment, one or more network implementation instructions may be transmitted from a server to a BS and subsequently from the BS to a user device, upon the network implementation instructions being generated in the server. For example, the network implementation instructions comprising for example, a BS code generated at the server may be transmitted from the server to the one or more BSs of the communication network.
Similarly, the network implementation instructions comprising for example, a user device code may be transmitted from one or more BSs to one or more user devices. In an embodiment, one or more network implementation instructions may be provided from the base station to one or more user devices, upon the network implementation instructions being generated at the base station. In an embodiment, the network implementation instructions transmitted to the one or more user devices may include a user device code component of the generated network implementation instructions.
In another embodiment, one or more network implementation instructions may be transmitted (by for example, the adapt module 210) from the one or more user devices to one or more other user devices of the communication network, upon the network implementation instruction/the optimal network configuration being generated in the one or more user devices in an ad-hoc network. The optimal network configuration may be implemented in the one or more network devices by executing the one or more network implementation instructions in the one or more network devices to which the network implementation instructions is transmitted to.
In an embodiment, the database may be updated (by for example, adapt module 210) with the gathered data and the optimal network configuration for subsequent use. In an embodiment, the steps 302, 304, and 306 are repeated upon a criterion being fulfilled, the criterion is being based on at least one of the steps a) and b). For example, the criterion may include, (a) time based/periodic update such as lapse of certain time from a previous update, (b) environmental changes, such as when certain sensed parameter changes beyond certain percentage from a previously observed value (For example, SNR of a radio channel), (c) performance change, such as when measured performance falls below certain percentage of a previously observed performance (For example, a channel throughput), and/or (d) any other user defined/administrator defined event. In an embodiment, the repetition is triggered upon or subsequent to criterion being fulfilled. For example, the optimal communication network configuration may be dynamically designed and operated after every 6 hours.
FIGS. 3B-3C depicts a flow chart 310 illustrating the method illustrated in FIG. 3A, in accordance with an embodiment. In step 312, a pre-saved data associated with a communication network (such as communication network 106) and/or one or more network devices is gathered (by for example, the data sensing module 206 of FIG. 2) from a database and/or a real-time data associated with the communication network and/or one or more network devices is gathered (by for example, the data sensing module 206 of FIG. 2) from the communication network and/or the associated devices. The step 312 is substantially similar to the step 302 of FIG. 3A. In an embodiment, in step 314, one or more network optimization parameters may be selected based on the gathered data for designing an optimal network configuration. In an embodiment, the network optimization parameters may be selected so as to be optimized relative to one or more other network optimization parameters. The step 314 is substantially similar to step 304A of FIG. 3A. In step 316, an optimal network configuration may be designed (for example, using network design module 208) based on selected one or more network optimization parameters and the gathered data. In an embodiment, the network optimization may be performed using one or more rules of performance-of-operation of communication networks and by applying certain optimization techniques. The step 316 is substantially similar to step 304B of FIG. 3A. In step 318, it is determined if a network update is required. If at step 318 it is determined that network update is required, then at 320 one or more network implementation instructions are generated. The step 320 is substantially similar to step 304C of FIG. 3A. At step 322 the generated network implementation instructions are downloaded to one or more network devices. The step 322 is substantially similar to the step of implementing the network implementation instructions as described along with FIG. 3A. Else, if at step 318 it is determined that network update is not required then step 312 is performed.
In step 324 it is determined if the downloaded network implementation instruction is a configuration file or a binary code. If the downloaded network implementation instruction is a configuration file, then step 326 is performed. At step 326 a binary code is generated from the downloaded configuration file. Else if at step 324 it is determined that the downloaded network implementation instruction is either a binary code, or is not a configuration file, then step 328 is performed. At step 328 the network implementation instructions are executed. At step 330, the database (e.g., database 204) is updated. After step 330, process 310 is repeated starting from step 312 onwards.
In step 318, a network update required is determined based on whether a criterion is fulfilled. The criterion may be based on at least one of operation of the data sensing module 206 and the network design module 208 as described along with FIG. 2. The criterion may include, for example, (a) time based/periodic update such as lapse of certain time from a previous update, (b) environmental changes, such as when certain sensed parameter changes beyond certain percentage from a previously observed value (For example, SNR of a radio channel), (c) performance change, such as when measured performance falls below certain percentage of a previously observed performance (For example, a channel throughput), and (d) any other user defined/administrator defined event. If at step 318 it is determined that network update is not required, then process 310 is repeated starting from step 312 onwards, either immediately or after certain delay depending on the data gathered in step 312. In an embodiment, the steps 324, 326 and 328 may be performed in a network device. In an embodiment, step 330 may be performed at a server or BS or a user device or a combination thereof.
To provide optimal performance in changing scenarios, a dynamic network with ability to adapt to changes in the environment and the resources is achieved. The ability to gather information about the environment and other relevant data and adapt the network to perform optimally. In addition, the network monitors the changes in the environment and continuously performs optimally.
Example Consideration for a PHY layer Code Generation:
Let us consider a parameter set decision from the network design module 208 that decides on the following set of design decisions, for a downlink:


    
    
        a. OFDM Modulation technique
        b. BW of 8 MHz
        c. FFT Size of 2K
        d. GI usage of 1/16
        e. Pilot pattern PPx (one of the predefined pattern)
        f. 64-QAM mode

Now in the above case, the user equipment (UE) subsystem should design the demodulation for the above automatically. The baseband module on the UE designs the Sub modules requirement as IQ Imbalance corrector, SRC, Synchronizing module, FFT/IFFT, Channel Estimation based on Pilots, etc. can be identified. Each of these modules is a certain library within the VM.

Example of virtual machine primitives for the physical (PHY) layer:

        Carrier=single|Multi
        DOWNLINK Mulit-USER=TDMA|OFDMA|CDMA
        UPLINK Multi-USER=TDMA|OFDMA|CDMA
        Modulation alphabet={complex numbers}
        RRC=Yes|No
        RRC Roll OFF=number
        Frame=Sync+PN_SEQUENCE+GI+Body
        Sync type=Subset of Modulation alphabet
        Frame_length=no in microseconds
        FFT length=Set of numbers which are powers of 2
        GI type=PN_SEQUENCE|CP
        PN_SEQUENCE=polynomial
        PN_SEQUENCE_REP RATE=Units of FRAME_RATE
        PILOT_TYPE=CP only|CP and SP
        SCATTERED_PILOT_REP_TYPE=Repeat every 12 Carriers
        INTERLEAVERS=Ordered pair of Frequency and Time
        CONSTELLATION=rotated, no rotated
        ROTATION ANGLE=0 degrees
        FEC_TYPE=LDPC|Turbo

An example run-time specification, providing information on the data flow path is given below.

        MODULE_ORDER
        {
        
            FEC_BCH,/* FEC involved */
            FEC_INTERLEAVER_LDPC, /* Any interleavers */
            FEC_LDPC, /* Inner FEC */
            TDI_DEPTH2, /* Time Domain interleavers, if any */
            QAM_64, /* QAM mapping */
            FFT_2K, /* FFT size */
            PP_8, /* Pilot pattern if any */
            GI_1_16/* Size of Guard Interval/PN seq used */
        
        
        };

In cases of code generated for CPE on the base station, Additional information on the device capability serves as inputs to the virtual machine to generate optimal code. Ex.:

        CPU=SINGLE/DUAL/QUAD
        CACHE_SIZE=2 MB
        OS=NO_OS
        MEM_CONFIG=EXT:
        MEM_CONFIG=SRAM:
        THREAD_SUPPORT=YES;

Based on above set of information, the virtual machine generates an optimal code (e.g. one or more binary executable instructions) that can be run on the specific platform.

    
    


FIG. 4 illustrates an exploded view of the user device having a memory 402 storing a set of computer instructions, a bus 404, a video display unit 406, an audio output unit 408, an input unit 409, and a processor 410 capable of processing a set of instructions to perform any one or more of the methodologies herein, according to an embodiment herein. The processor 410 may enable digital content to be consumed in the form of video for output via the video display unit 406 or audio for output via the audio output unit 408. An example of the audio output unit 408 may include a speaker. An example of the input unit 409 may include, but is not limited to a microphone, a keyboard, a haptic input device, a camera, and the like. The processor 410 may also carry out the methods described herein and in accordance with the embodiments herein.
Digital content may also be stored in the memory 402 for future processing or consumption. The memory 402 may also store program specific information and/or service information (PSI/SI), including information about digital content (e.g., the detected information bits) available in the future or stored from the past. A user (for example user 102 of the one or more user devices 104A-N) may view the stored information on the display 406 and select an item of for viewing, listening, or other uses via input, which may take the form of keypad, scroll, or other input device(s) or combinations thereof. When digital content is selected, the processor 410 may pass information. The content and PSI/SI may be passed among functions within the user devices using the bus 404.
The techniques provided by the embodiments herein may be implemented on an integrated circuit chip (not shown). The chip design is created in a graphical computer programming language, and stored in a computer storage medium (such as a disk, tape, physical hard drive, or virtual hard drive such as in a storage access network). If the designer does not fabricate chips or the photolithographic masks used to fabricate chips, the designer transmits the resulting design by physical means (e.g., by providing a copy of the storage medium storing the design) or electronically (e.g., through the Internet) to such entities, directly or indirectly.
The stored design is then converted into the appropriate format (e.g., GDSII) for the fabrication of photolithographic masks, which typically include multiple copies of the chip design in question that are to be formed on a wafer. The photolithographic masks are utilized to define areas of the wafer (and/or the layers thereon) to be etched or otherwise processed. The resulting integrated circuit chips can be distributed by the fabricator in raw wafer form (that is, as a single wafer that has multiple unpackaged chips), as a bare die, or in a packaged form. In the latter case the chip is mounted in a single chip package (such as a plastic carrier, with leads that are affixed to a motherboard or other higher level carrier) or in a multichip package (such as a ceramic carrier that has either or both surface interconnections or buried interconnections). In any case the chip is then integrated with other chips, discrete circuit elements, and/or other signal processing devices as part of either (a) an intermediate product, such as a motherboard, or (b) an end product. The end product can be any product that includes integrated circuit chips, ranging from toys and other low-end applications to advanced computer products having a display, a keyboard or other input device, and a central processor.
The embodiments herein can take the form of, an entirely hardware embodiment, an entirely software embodiment or an embodiment including both hardware and software elements. The embodiments that are implemented in software include but are not limited to, firmware, resident software, microcode, etc. Furthermore, the embodiments herein can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can comprise, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, Subscriber Identity Module (SIM) card, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/output (I/O) devices (including but not limited to keyboards, displays, pointing devices, remote controls, camera, microphone, temperature sensor, accelerometer, gyroscope, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
FIG. 5 depicts a functional block diagram of an example general-purpose digital computing environment 500 that may be used to implement various aspects of the present technology disclosed herein (such as for example, a user device, a base station or system 200). The general purpose digital computing environment of FIG. 5 includes a processor 502, a main memory 504, a static memory 506, a bus 508, a video display 510, an alpha-numeric input device 512, a cursor control device 514, a drive unit 516, a signal generation device 518, a network interface device 520, a machine readable medium 522, instructions 524, and a network 526, according to one embodiment.
The processor 502 may be include, but is not limited to a microprocessor, a state machine, an application specific integrated circuit, a field programmable gate array, etc. (e.g., an Intel® Pentium® processor). The main memory 504 may be a dynamic random access memory and/or a primary memory of a computer system. The static memory 506 may include for example a hard disk drive for reading from and writing to a hard disk (not shown), a magnetic disk drive for reading from or writing to a removable magnetic disk, or an optical disk drive for reading from or writing to a removable optical disk such as a CD ROM or other optical media. The drives and their associated computer-readable media provide nonvolatile storage of computer readable instructions, data structures, program modules and other data for a computer. It will be appreciated by those skilled in the art that other types of computer readable media that can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, RAMs, ROMs, and the like, may also be used in the example general purpose computing environment 500.
The bus 508 may be an interconnection between various circuits and/or structures of the purpose computing environment 500. The video display 510 may provide a graphical representation of information on the data processing system. The alpha-numeric input device 512 may be a keypad, a keyboard and/or any other input device of text (e.g., a special device to aid the physically handicapped), a microphone, joystick, game pad, satellite dish, scanner or the like. The alpha-numeric input device 512 is often connected to the processing unit through a serial port interface that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port or a universal serial bus (USB).
The cursor control device 514 may be a pointing device such as a mouse. The drive unit 516 may be the hard drive, a storage system, and/or other longer term storage subsystem. The signal generation device 518 may be a bios and/or a functional operating system of the data processing system. The network interface device 520 may be a device that performs interface functions such as code conversion, protocol conversion and/or buffering required for communication to and from the network 526. The machine readable medium 522 may provide instructions on which any of the methods disclosed herein may be performed. The instructions 524 may provide source code and/or data code to the processor 502 to enable any one or more operations disclosed herein.
The foregoing description of the specific embodiments will so fully reveal the general nature of the embodiments herein that others can, by applying current knowledge, readily modify and/or adapt for various applications such specific embodiments without departing from the generic concept, and, therefore, such adaptations and modifications should and are intended to be comprehended within the meaning and range of equivalents of the disclosed embodiments. It is to be understood that the phraseology or terminology employed herein is for the purpose of description and not of limitation. Therefore, while the embodiments herein have been described in terms of preferred embodiments, those skilled in the art will recognize that the embodiments herein can be practiced with modification within the spirit and scope of the appended claims.

## Claims

1. A method of dynamically designing and operating an optimal communication network configuration, said method comprising steps of:
a) gathering at least one of:
a pre-saved data associated with at least one of a communication network and one or more network devices from a database; and
a real-time data associated with at least one of said communication network and said one or more network devices by sensing real time radio frequency (RF) related parameters; and

b) dynamically generating an optimal communication network configuration in said one or more network devices by:
selecting a first network optimization parameter for optimization,
selecting a second network optimization parameter with respect to which said first network optimization parameter is to be optimized, wherein said first network optimization parameter and said second network optimization parameter are selected from (i) bit error rate, (ii) reliability, (iii) throughput or data rate, (iv) latency, or (v) security based on said gathered data for designing an optimal communication network configuration;
designing said optimal communication network configuration that comprises a network scheme with at least one of (i) a modulation or demodulation scheme, (ii) a multi-access scheme or (iii) a media access control (MAC) scheme and optimum parameters of at least one of (i) said modulation or demodulation scheme, (ii) said multi-access scheme or (iii) said media access control (MAC) scheme to optimize said first network optimization parameter with respect to said second network optimization parameter based on said gathered data; and
generating one or more network implementation instructions that comprise at least one of (a) a physical layer code or (b) a MAC layer code for implementing said designed optimal communication network configuration for said one or more network devices, wherein said physical layer code or said MAC layer code is generated for said one or more network devices, wherein said physical layer code is automatically generated based on a physical layer (PHY) configuration and said MAC layer code is automatically generated based on a media access control (MAC) configuration, wherein said physical layer code and said MAC layer code comprises at least one of (a) one or more computer executable code, or (b) one or more files containing virtual machine primitives, wherein one or more binary executable instructions are generated based on said one or more files containing said virtual machine primitives, wherein said virtual machine primitives comprise one or more digital signal processor primitives; and

c) adapting at least one network device from among said one or more network devices of said communication network to operate in compliance with said designed optimal network configuration based on said generated one or more network implementation instructions.

2. The method of claim 1, wherein said one or more network implementation instructions comprises at least one of: said one or more computer executable code, said one or more files containing virtual machine primitives for generating said one or more binary executable instructions, and said one or more binary executable instructions and any combination thereof.

3. The method of claim 1, wherein said pre-saved data comprises big data that is gathered from said communication network and said one or more network devices using big data analysis, wherein said pre-saved data comprises cloud data that is gathered from a storage database using cloud computing.

4. The method of claim 1, wherein said adapting comprises:
implementing said optimal network configuration in said one or more network devices by executing said one or more network implementation instructions in said one or more network devices.

5. The method of claim 1, wherein adapting comprises:
providing said generated one or more network implementation instructions from said one or more network devices via said communication network to one or more other network devices of said communication network; and
implementing said optimal network configuration in said one or more other network devices by executing said one or more network implementation instructions in said network devices.

6. The method of claim 1, wherein one or more files containing virtual machine primitives and further containing at least one of (a) a device capability of one or more user devices and one or more base stations, or (b) a run time specification.

7. The method of claim 3, wherein said pre-saved data comprises (i) pre saved RF related parameters, (ii) pre saved base band related parameters, (iii) pre saved media access control (MAC) related parameters, and (iv) parameters associated with a capability of said one or more network devices in said communication network.

8. The method of claim 1, wherein said steps a) to c) of said method are performed at least in part in one of: a server, a base station, a user device or any combination thereof.

9. The method of claim 1, wherein said real-time data is gathered by sensing at least one of said communication network and said one or more network devices, wherein said real-time data is gathered over an initial-handshake channel that is used by said network device to join with said communication network before said optimization process begins.

10. The method of claim 5, wherein to perform said implementing, one of said base station and said user device is configured as a virtual machine, wherein said virtual machine is a platform-independent execution environment that converts said physical layer code or said MAC layer code comprising said one or more files containing virtual machine primitives into said one or more binary executable instructions and executes said one or more binary executable instructions.

11. The method of claim 9, wherein said real-time data comprises (i) said real time radio frequency (RF) related parameters, (ii) one or more baseband related parameters, (iii) one or more media access control (MAC) related parameters, and (iv) one or more parameters associated with a capability of said one or more network devices in said communication network.

12. The method of claim 4, wherein providing comprises transmitting said one or more network implementation instructions from a server to a base station and from said base station to a user device, upon said one or more network implementation instructions being generated in said server.

13. The method of claim 4, wherein providing comprises transmitting said one or more network implementation instructions from said base station to said user device, upon said one or more network implementation instructions being generated at said base station.

14. The method of claim 4, wherein providing comprises transmitting said one or more network implementation instructions from a user device to another user device, upon said implementation instructions being generated in said user device in an ad-hoc network.

15. The method of claim 1, wherein said first network optimization parameter and said second network optimization parameter are selected from one or more performance parameters.

16. The method of claim 1, wherein said designing comprises:
selecting at least one of said modulation scheme and said demodulation scheme or designing a custom modulation scheme or a custom demodulation scheme and optimum parameters of said modulation scheme and said demodulation scheme to optimize said first network optimization parameter with respect to said second network optimization parameter based on said gathered data.

17. The method of claim 1, wherein said designing comprises:
selecting said media access control (MAC) scheme or designing a custom media access control scheme and optimum parameters of said media access control (MAC) scheme to optimize said first network optimization parameter with respect to said second network optimization parameter based on said gathered data.

18. The method of claim 1, wherein said designing comprises:
selecting said multi-access scheme or designing a custom multi-access scheme and optimum parameters of said multi-access scheme to optimize said first network optimization parameter with respect to said second network optimization parameter based on said gathered data.

19. A network configuration system for dynamically designing and operating an optimal communication network configuration, said communication network configuration system comprising:
a) a data sensing module, executed by a processor, that is operable to gather:
a pre-existing data associated with at least one of said communication network and one or more network devices from a database; and
a real-time data associated with at least one of said communication network and said one or more network devices by sensing real time radio frequency (RF) related parameters; and

b) a network design module, executed by said processor, that is operable to:
select a first network optimization parameter for optimization,
select a second network optimization parameter with respect to which said first network optimization parameter is to be optimized, wherein said first network optimization parameter and said second network optimization parameter are selected from (i) bit error rate, (ii) reliability, (iii) throughput or data rate, (iv) latency, or (v) security based on said gathered data for designing an optimal communication network configuration;
design said optimal communication network configuration that comprises a network scheme with at least one of (i) a modulation or demodulation scheme, (ii) a multi-access scheme or (iii) a media access control (MAC) scheme and optimum parameters of at least one of (i) said modulation or demodulation scheme, (ii) said multi-access scheme or (iii) said media access control (MAC) scheme to optimize said first network optimization parameter with respect to said second network optimization parameter based on said gathered data; and
generate one or more network implementation instructions that comprise at least one of (a) a physical layer code or (b) a MAC layer code to implement said designed optimal communication network configuration for said one or more network devices, wherein said physical layer code or said MAC layer code is generated for said one or more network devices, wherein said physical layer code is automatically generated based on a physical layer (PHY) configuration and said MAC layer code is automatically generated based on a media access control (MAC) configuration, wherein said physical layer code and said MAC layer code comprises at least one of (a) one or more computer executable code, or (b) one or more files containing virtual machine primitives, wherein one or more binary executable instructions are generated based on said one or more files containing virtual machine primitives, wherein said virtual machine primitives comprise one or more digital signal processor primitives; and

c) an adapt module, executed by said processor, that is operable to adapt at least one network device of said communication network to operate in compliance with said designed optimal network configuration base on said generated one or more network implementation instructions.

20. The network configuration system of claim 19, wherein said one or more network implementation instructions comprises at least one of: said one or more computer executable code, said one or more files containing one or more virtual machine primitives for generating said one or more binary executable instructions, and said one or more binary executable instructions and any combination thereof.

21. The network configuration system of claim 19, wherein said pre-saved data comprises big data that is gathered from aid communication network and said one or more network devices using big data analysis, wherein said pre-saved data comprises cloud data that is gathered from a storage database using cloud computing.

22. The network configuration system of claim 19, wherein said adapt module is further operable to:
provide said one or more network implementation instructions via said communication network from said one or more other network devices to one or more other network devices;
implement said optimal network configuration in said one or more other network devices by executing said one or more network implementation instructions in said one or more other network devices.

23. The network configuration system of claim 19, wherein said adapt module is further operable to:
implement said optimal network configuration in said one or more network devices by executing said one or more network implementation instructions in said one or more network devices.

24. The network configuration system of claim 21, wherein said pre-saved data comprises (i) pre saved RF related parameters, (ii) pre saved base band related parameters, (iii) pre saved media access control (MAC) related parameters, and (iv) parameters associated with a capability of said one or more network devices in said communication network.

25. The network configuration system of claim 19, wherein operation of said data sensing module, said network design module and said adapt module is triggered upon a criterion being fulfilled, wherein said criterion is based on at least one of operation of said data sensing module and operation.

26. The network configuration system of claim 19, wherein said real-time data is gathered by sensing at least one of said communication network and said one or more network devices, wherein said real-time data is gathered over an initial-handshake channel that is used by said network device to join with said communication network before said optimization process begins.

27. The network configuration system of claim 19, wherein said network configuration system is implemented in one of a base station, a server, a user device or any combination thereof.

28. The network configuration system of claim 19, wherein said adapt module is further configured to perform one or more of:
transmit said one or more network implementation instructions from a server to a base station and from said base station to a user device, upon said network implementation instructions being generated in said server;
transmit said one or more network implementation instructions from said base station to said user device, upon said one or more network implementation instructions being generated at said base station; and
transmit said one or more network implementation instructions from a user device to another user device, upon said network implementation instructions being generated in said user device in an ad-hoc network.

29. The network configuration system of claim 26, wherein said real-time data comprises (i) said real time radio frequency (RF) related parameters, (ii) one or more baseband related parameters, (iii) one or more media access control (MAC) related parameters, (iv) one or more miscellaneous parameters and (v) one or more parameters associated with a capability of said one or more network devices in said communication network.

30. The network configuration system of claim 19, wherein said network design module is further configured to perform at least one of:
selecting at least one radio frequency channel based on said gathered data for enabling optimal network performance based on said selected one or more network optimization parameters;
selecting at least one of said modulation scheme and said demodulation scheme or designing a custom modulation scheme and a custom demodulation scheme and optimum parameters of said modulation scheme and said demodulation scheme to optimize said first network optimization parameter with respect to said second network optimization parameter based on said gathered data;
selecting said media access control (MAC) scheme or designing a custom media access control scheme and optimum parameters of said media access control (MAC) scheme to optimize said first network optimization parameter with respect to said second network optimization parameter based on said gathered data;
selecting said multi-access scheme or designing a custom multi-access scheme and optimum parameters of said multi-access scheme to optimize said first network optimization parameter with respect to said second network optimization parameter based on said gathered data.

31. The network configuration system of claim 19, wherein said network device is further adapted to generate said one or more network implementation instructions in binary executable form from a file containing one of one or more virtual machine primitives, wherein said network device is a base station or a user equipment.

32. The network configuration system of claim 19, wherein said one or more files containing virtual machine primitives and further containing at least one of (a) a device capability of one or more user devices and one or more base stations, or (b) a run time specification.

33. The network configuration system of claim 19, wherein said at least one of: said processor and said one or more modules are modeled as a virtual machine, wherein said virtual machine is a platform-independent execution environment that converts said physical layer code or said MAC layer code comprising said one or more files containing virtual machine primitives into said one or more binary executable instructions and executes said one or more binary executable instructions, wherein said network device is a base station or a user equipment.

34. A non-transitory machine-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, cause the one or more processors to execute a method comprising:
a) gathering at least one of:
a pre-saved data associated with at least one of said communication network and one or more network devices from a database; and
a real-time data associated with at least one of said communication network and said one or more network devices by sensing real time radio frequency (RF) related parameters;

b) dynamically generating an optimal communication network configuration in said one or more network devices by:
selecting a first network optimization parameter for optimization,
selecting a second network optimization parameter with respect to which said first network optimization parameter is to be optimized, wherein said first network optimization parameter and said second network optimization parameter are selected from (i) bit error rate, (ii) reliability, (iii) throughput or data rate, (iv) latency, or (v) security based on said gathered data for designing an optimal communication network configuration;
designing said optimal communication network configuration that comprises a network scheme with at least one of (i) a modulation or demodulation scheme, (ii) a multi-access scheme or (iii) a media access control (MAC) scheme and optimum parameters of at least one of (i) said modulation or demodulation scheme, (ii) said multi-access scheme or (iii) said media access control (MAC) scheme to optimize said first network optimization parameter with respect to said second network optimization parameter based on said gathered data; and
generating one or more network implementation instructions that comprise at least one of (a) a physical layer code or (b) a MAC layer code for implementing said designed optimal communication network configuration for said one or more network devices, wherein said physical layer code or said MAC layer code is generated for said one or more network devices, wherein said physical layer code is automatically generated based on a physical layer (PHY) configuration and said MAC layer code is automatically generated based on a media access control (MAC) configuration, wherein said physical layer code and said MAC layer code comprises at least one of (a) one or more computer executable code, or (b) one or more files containing virtual machine primitives, wherein one or more binary executable instructions are generated based on said one or more files containing virtual machine primitives, wherein said one or more files containing virtual machine primitives comprise at least one of (a) a device capability of one or more user devices and one or more base stations, or (b) a run time specification, wherein said virtual machine primitives comprise one or more digital signal processor primitives; and

c) adapting at least one network device from among said one or more network devices of said communication network to operate in compliance with said designed optimal network configuration based on said generated one or more network implementation instructions.