Cross-Layer Support for Energy Efficient Routing in Wireless Sensor Networks

1 Department of Computer Science and Computer Engineering, La Trobe University, Melbourne 3086, Australia 2 Department of Computer Science and Information Technology, University of the District of Columbia, 4200 Connecticut Avenue NW, Washington DC 20008, USA 3 Department of Computer and Electrical Engineering, National Technical University of Athens (NTUA), Heroon Polytechniou 9, Athens 15780, Greece


Introduction
Smart environments exploit next generation technologies in the development of buildings, industries, homes, shipping, and transportation automation.These smart environments rely on sensory data from the real world.This sensory data is collected via sensor networks containing multiple wireless sensors in distributed locations.Wireless sensors, commonly known as nodes, can be described as small self-powered electronic devices which are capable of communicating with each other or other wireless devices [1,2].The wireless sensor nodes use the Tiny Operating System (Tiny OS), which has been particularly designed for devices with hardware as well as software constrained [3] requirements.
Wireless sensor network differs from other wireless networks in several ways.First, it consists of physically small network nodes which perform sensing, processing, and then radio communications.Second, each node is configured with the same peer-to-peer networking protocol, thereby allowing a group of sensor nodes to form a self-configuring network.Third, the sensor nodes are energy constrained since they are designed to operate in specific areas for years with no maintenance [4].Depending on the specific application for which they are used, sensor networks can be further divided into event-driven sensor networks or continuous monitoring sensor networks.The main difference between an eventdriven sensor network and a continuous monitoring sensor network is that in the former, the nodes remain in the sleep mode until some event occurs, as in the case of a sensor network devised for sensing forest fires.However, the main problem with this type of network is being able to switch nodes from a sleeping mode to a listening mode in a defined time.In contrast, in the latter case, sensor networks transmit data continuously from source nodes to sink nodes.
One of the main and foremost problems faced by wireless sensor networks is that they are energy constrained, due to the fact that wireless sensor networks consist of sensor nodes which are battery operated, therefore it is impossible to recharge them, as they are intended to operate in specific areas for years with no maintenance.Hence, it is important to devise ways by which the energy efficiency of these sensor nodes can be increased so that the overall lifetime of the network is also improved.In this work, we explore a crosslayer technique that can achieve the goal of maximizing the energy efficiency in sensor networks.
Cross-layer design is a new concept which has been devised for protocols of wireless networks such as ad hoc networks and sensor networks [5].More recently, a significant number of papers have proposed the use of cross-layer techniques in wireless sensor networks in order to achieve different objectives.Furthermore, it has been proven that cross-layer techniques help to improve energy conservation in wireless sensor networks [6].With crosslayer techniques, the different layers of the conventional Open System Interconnection (OSI) model interact with each other, irrespective of their positions in the model, to achieve a specific result.The traditional OSI layer architecture is modular in nature and has been implemented successfully in the case of wired networks.In the case of wireless sensor networks which have many constraints in terms of memory and energy, it becomes difficult to apply only the traditional protocol structure [7].Crosslayer designs have recently emerged as an effective approach and have been widely applied to wireless sensor networks.Constraints on energy, memory, storage resources, and low radio transmission capabilities of the wireless sensor nodes make cross-layer support more attractive [8].
The rest of the paper is organized as follows.We discuss related work in Section 2. In Sections 3 and 4, we present a brief overview of the Media Access Control (MAC) sublayer and the Dynamic Source Routing (DSR) protocol.In Section 5, we present our proposed cross-layer architecture that supports energy efficient routing in wireless sensor network environments.In Section 6, we present our performance evaluation results.We discuss future work in Section 7. Finally, we make some concluding remarks in Section 8.

Related Work
2.1.Routing Techniques.In the last decade, many energy efficient network routing protocols have been proposed for sensor networks.Previous routing schemes [9] involve direct communication protocols which facilitate direct communication between the source node and the base station.Therefore, for scenarios where the base station is quite a distance away from the source node, there is excessive usage of energy resources, ultimately resulting in a complete drainage of power.Such routing schemes are successful only where sensor nodes are near enough to the base station.In [10], the routing protocols proposed require each node to act as a router and route data from the source node to the base station through a set of selected intermediate nodes.These protocols differ from each other in terms of methodology and the algorithm used to select the intermediate nodes which fall in the route between the source and the destination.The main disadvantage of these kinds of protocols is that sometimes nodes which lie near the station are included in the routing path, therefore causing their energy resources to drain off quickly, adversely affecting the overall power efficiency of the wireless sensor network.
In [11], a protocol is proposed for wireless sensor networks based on clustering technique, which involves dividing the nodes into a set of clusters each of which selects a cluster head.Rather than transmitting data directly from the node to the base station, each node transmits the data to the cluster head which, in turn, sends data to the base station.However, as pointed in [7], the cluster heads need to be selected based on a random rotation to make sure that the energy load is distributed evenly among all nodes.This selection leads to additional overheads.

Cross-Layer Techniques Applied to Wireless Sensor Networks.
A substantial amount of work has been done on cross-layer architecture in the last couple of years.A significant portion of such work has focused on crosslayer interaction between the MAC sublayer and the routing layer.In [12], researchers focused on both power efficiency and scheduling, attempting to solve the problem of power efficiency and Quality of Service (QoS).Their proposed approach reduces the energy used to transmit and guarantee a certain level of bandwidth for the desired QoS.The main drawback of this approach is that it is a centralized approach where algorithms are executed by central agents having information of the network.Such an approach is more suited to wireless sensor networks where infrastructure support is available to the network.
In [13], the researchers proposed a cross-layer protocol called the MAC-CROSS protocol that operates by exploiting the MAC and network layer information.The MAC-CROSS protocol is based on the S-MAC protocol [14].The main drawback of the S-MAC protocol is that the listening and the sleep periods are fixed.As a result, once their Network Allocation Vector (NAV) time expires, they wake up thereby wasting energy unnecessarily.The MAC-CROSS protocol overcomes this problem by allowing only nodes which actually take part in the communication to wake up and allowing the rest to be in the sleeping mode.In [15], the authors proposed a protocol called Latency and Energy aware MAC (LE-MAC) based on the cross-layer information obtained from the MAC and the network layer.The main aim of this protocol is to achieve energy efficiency and minimize latency.
In [16], the authors propose a cross-layer design based on the MAC and the network layers.They proposed a Hierarchical Dynamic Source Routing (HDSR) protocol which is based on a modification of DSR [17].In the case of HDSR, the wireless sensor network is assumed to be divided into mobile nodes and forwarding nodes.The mobile nodes host the application, and the forwarding nodes actually route packets.In [18], a cross-layer technique has been proposed specifically for sensor networks with continuous monitoring capabilities.This approach attempts to improve power efficiency by removing collisions and idle listening (which wastes a lot of energy resources).
In [19], researchers propose a cross-layer design involving the MAC and the routing layers.Their design takes into account the energy losses which occur at the MAC layer during scheduling and during routing in the network layer, in order to improve power efficiency.In the same paper, the researchers propose algorithms known as Power Aware Random Scheduling (PARS) and Extended Power Aware Random Scheduling (EPARS).The former exploits a pseudo random number generator to generate schedules to gain access to the wireless channel rather than using a set of request to send (RTS) and clear to send (CTS) packets which incur significant overhead.The latter (EPARS) saves energy by avoiding collisions (and thus retransmissions) and by exploiting energy-consuming control signaling.A major disadvantage of the proposed scheme presented in [19] is that it requires accurate time synchronization among neighboring nodes.
Finally, Safwat et al. [20] proposed a cross-layer interaction involving the MAC sublayer, the routing layer, and the TCP layer to improve the throughput of ad hoc networks.They have proposed an extension to the DSR protocol at the routing layer where they have introduced two variables β and L. β is the number of times the DSR protocol will wait before invoking a route maintenance procedure if the MAC sublayer communicates that there was a communication failure, whereas L is the variable with which the variable β compares its value before starting a route maintenance phase.Suppose that the value of β is set to 2 and the value of L is always set to 1 before each communication when the source node starts communication with the destination node.If there is a communication failure, the message will be sent to the DSR protocol.The DSR protocol compares the value of L with β.If L is less than β, route maintenance is not initiated but if the value of L is equal to or greater than β, the route maintenance phase is initiated.The objective of this approach is to minimize the routing overhead when it is not required.This is also the main goal of this work.

Media Access Control (MAC) Sublayer
Networks can be broadly classified into two types depending on the way they transmit data, namely, point-to-point networks or broadcast networks.In the case of pointto-point networks, a separate channel exists between two separate nodes.In contrast, in the case of a broadcast network, there is only one channel available which is shared by all nodes on the network.MAC protocols control access to this shared channel.[21] (e.g., Carrier Sense Multiple Access (CSMA)) do not divide the channel into subchannels or preassign them as in the case of scheduling protocols.However, with contention protocols, the common channel which is assigned on demand is shared by all nodes in the network (Mobile Ad Hoc Network (MANET) or ad hoc network in our case).The decision of which node should access the channel at a particular moment is handled by the contention mechanism.One of the main problems associated with contention protocols is the hidden terminal problem [21].This occurs when there are certain hidden terminals or a terminal within the signal range of the receiver but out of signal range of the transmitter as illustrated in Figure 1.When node C transmits data to node B, node A which is out of transmission range of node C but within range of node B is unable to hear this transmission.As a result, node A, believing the channel to be free, starts its transmission to node B causing a collision.In this example, node A is the hidden terminal which results in collision and thus causes a loss of data or forces the nodes to resend the data.This, in turn, leads to energy inefficiency especially in ad hoc networking environments.

802.11 MAC
Layer.The 802.11 standard is a family of IEEE standards for wireless Local Area Networks (LANs).The 802.11 protocols are also referred to as Wi-Fi [22].MAC sublayers perform the sensing operation on the channel by detecting the presence carrier signal on the channel with the help of the physical layer or by checking the value of the Network Allocation Vector [23].The process of using the Network Allocation Vector for channel sensing is known as virtual sensing as it does not carry out the actual physical signal detection on the channel.A node sets the value of the Network Allocation Vector on sensing a transmission between a source node and the destination node.If a source node wants to transmit data to the destination node, it sends a request to the destination node.When neighboring nodes of the source node overhear the request to send a packet, they set the value of the Network Allocation Vector.The destination node, on the other hand, upon receipt of the request to send from the source node sends a Clear to send to the source node.In this case, the neighbors of the destination node set the value of Network Allocation Vector (Figure 2).

Routing Layer
The routing layer carries out the task of delivering data, or more specifically, a packet from the source to the destination possibly across multiple networks.The routing layer ensures that the data reaches the destination.A good routing protocol can be described as one with the following properties: minimal routing overheads, routing should be done without creating loops, automatic load balancing, control of user over selection of routes, recovery from link failures, energy efficient, provides multicasting as well as QoS, and supports proper congestion avoidance mechanism.

DSR (Dynamic Source Routing Protocol).
DSR is an ondemand routing protocol that is initiated when a source node tries to send a packet to the destination node.
The DSR protocol consists of five distinct phases: route discovery, route maintenance, data transfer, route caching, and route deletion.The operation of the DSR protocol can be summarized as follows.
The Route Cache.When a source node wants to transmit data to the destination node, it first checks DSR cache to see if there is a route available to the destination node.If a route from the source node to the destination already exists, then the source node starts sending data to the destination node.However, if there is no route information available for the destination node in the route cache, then the DSR protocol invokes the route discovery phase to establish a link between the source node and the destination node.
Route Discovery.The route discovery process is initiated by the DSR to find a suitable route between the source and the destination.This phase is accomplished by using a set of control packets called Route Requests and Route Replies.The Route Request consists of the destination address, the address of the source node, and a unique identifier.As soon as the source node sends control packets to the sending buffer in order to be broadcast, it initiates a timer called the Sendbuffer Time Out within which a response is expected.If the source node does not receive a reply within this timeframe, it will generate another route request packet using the exponential backoff algorithm.When the neighboring node receives the Route Request from the source node, it checks whether it has already received a copy of this route request.If the receiving node has already received a copy of the route request, the current copy is discarded in order to avoid loops.However, if the receiving node has not received the same route request, it checks whether this route request was actually meant for it.If the destination address in the route request does not match the address of the receiving node, then the receiving node acts as a relay node and broadcasts the control packet to its neighboring nodes after making up an address entry of its own in the route request packet.There are two ways by which the receiving node can verify whether it has already received this route request or not.First, it can search its route table to check the entry of this particular route request packet.This is carried out by matching the unique identifier which is associated with each route reply to its entry in the route table.If an entry for this route request packet already exists in the case, the packet is thrown away.Second, the receiving node can check the entries in the route request packet to see whether it has already received the packet.
Data Transfer.Once a route has been established between the source node and the destination node, the source node starts sending data.

Route Maintenance.
Due to the mobile nature of nodes in a sensor network, they may need to move from one place to another very often, making the current routes unusable.Therefore, the route maintenance process is an important phase in any routing protocol in a sensor network.When a source wants to communicate with the destination node, the MAC layer (802.11 in this case) sends a request to the destination node.If the destination node is still within the transmission range of the source node, it then sends clear to send to the source node, and the source node starts transmitting data to the destination node [23].

Proposed Cross-Layer Implementation
In this paper we proposed a cross-layer architecture using MAC and Routing layer.The cross layer architecture implemented in this paper is defined by the interaction of 802.11MAC protocol and the Dynamic Source Routing protocol.The cross-layer architecture implemented in this work will be able to reduce routing overheads, by decrementing the route management process performed by the DSR protocol in most of the scenarios.

Extended MAC 802.11.
In sensor networks, when a source sends a packet to its destination, the packet can get lost for a number of reasons: congestion due to high traffic, reduced signal strength due to mobility of network nodes or physical barriers, or power failure of nodes.When a packet does not reach its destination, the DSR algorithm assumes that it is due to route failure and initiates a route search.This happens because the DSR does not have an inbuilt mechanism to determine whether this has been caused by congestion or node failure.However, if the packet loss has been caused by congestion, in this case, initiating a route discovery process actually ends up increasing network traffic, and worsens the congestion.The end result is that it increases the energy load on the nodes and decreases the energy efficiency of the sensor nodes.Therefore, it would be beneficial if DSR could distinguish the packet loss caused by congestion versus the packet loss caused by node failure, and this is the main focus of this paper.
We have extended the 802.11MAC layer (flow chart in Figure 3) for the sensor nodes to keep a record of the last received signal strength from each adjacent nodes.This record of the last signal strength helps to track whether the adjacent node remains within the transmission range or not.If the node is still within the transmission range and there is still a packet loss, then the loss may have occurred because of congestion.This information is passed to the upper layer where the DSR operates, and the route discovery process is not initiated.However, if there is a packet loss and the comparison with the last received signal strength shows that it is due to a link failure, then in this case DSR initiates a route discovery.We exploited Network Simulator-2 (NS-2) [24] to implement the 802.11MAC extension that stores the last signal strength received from all neighboring nodes.In addition, we also modified the 802.11MAC layer to send a message to the upper layer in case there is a loss of communication but the destination node is still within the transmission range.In this case, the DSR algorithm does not initiate route discovery.When a packet is received by a node (from its neighboring node), the MAC layer extracts the ID of the sending node inside the received packet.This is done to determine whether a packet has been previously received from that node or not.If a packet from that node has not been received previously, a new entry is made for that particular node at the MAC layer, and the signal strength received from that node from the physical layer is stored.But, in case a packet has been received previously from that particular node, then it simply stores the current signal strength value received from that node.The received signal strength is used to find out whether the node is still within the transmission range.Once the signal strength has been used to determine whether the loss of communication is link related or not, an appropriate message needs to be sent to the upper layer.As explained earlier, the MAC layer transmits information with the use of a set of RTS and CTS messages.Once the RTS message has been sent, the sending node waits for the CTS message.If there is a problem in communication, the MAC layer waits for a certain period of time known as the backoff period and retries later.After a certain number of unsuccessful attempts, the MAC layer informs the routing layer that the transmission was unsuccessful.
In our implementation, the information sent will inform the routing layer whether the destination node is still within the transmission range or not (by looking at the last received signal strength stored).If this last received signal strength reveals that the node is approachable, then the routing layer is informed not to initiate the route discovery process.Otherwise, a route maintenance step is initiated.

Extended DSR.
The DSR protocol is initiated when a source node attempts to send a packet to the destination node whose IP address is or may be known to the source.As mentioned earlier, when a source node tries to communicate with the destination node (and after trying a certain number of times (at the MAC layer)), if it is unsuccessful, the DSR protocol assumes that the link is broken due to node mobility.It then triggers its route maintenance phase to search for alternative routes.However, as previously discussed, the communication problem between the source node and the destination node could be because of other reasons (such as congestion) besides link failure.If the communication between the source and the destination breaks because of congestion, there is no need for DSR to initiate route maintenance because it creates unnecessary overheads on the node's energy resources which are what we are trying to minimize.Thus, as mentioned previously, we need to indicate to DSR whether the communication failure was due to a link failure or because of congestion.In our implementation, we extended the DSR protocol, and we pass such link failure/congestion information through a variable (called xmit reason which holds the information on link failure or congestion between the source and the destination) from the MAC layer to the DSR routing layer.The variable xmit reason is set to the value of xmit reason high strength if the last received signal strength from the destination node shows that the signal strength received was equal to or greater than the threshold strength, indicating to the DSR protocol that the link is still intact.If this is not the case, then the DSR protocol initiates the route discovery/maintenance process to fix the route or to find an alternative route to the destination.

Performance Results
In this work we used Network Simulator-2 version 2.29 in all our performance evaluation tests.We used two configurations for our simulation experiments: the first configuration is a chain setup which is a static scenario where all nodes are aligned in the form of a line; the second configuration is an 11 × 11 grid setup.For both configurations, ftp traffic was generated for simulating TCP flows across the different nodes.The size of the TCP packet was set to 1024 bytes.Both simulations were set up to generate several routing faults.A routing fault is defined as the number of times the DSR protocol invokes the route maintenance process.The results were taken for both the extended DSR using our cross-layer approach exploiting MAC layer information and the normal DSR without using our cross-layer technique.

Chain Simulation Configuration.
The chain configuration is a static scenario where 22 nodes have been setup in the form of a chain.Each node is situated at a distance of 150 meters from the adjacent node [25].The transmission range for each node for this setup was set to 200 meters, whereas the carrier sense threshold was set to 400 meters.Two, four, and eight TCP flows were taken for the simulation where the numbers of hops were 4, 5, 6, 7, 8, 10, 12, 14, 16, and 20 respectively.The simulation time for this experiment was set to 2 minutes.Figures 4 and 5 show the simulation scenarios.The value of beta (where beta represents the growth rate of the TCP window W at every round-trip-time, we can say that beta represents the probing traffic of TCP) in the extended DSR was taken to be 2 [26].The simulation was executed for a period of 120 seconds, and the simulation results were obtained for the number of route errors that were generated using the normal MAC and DSR and for the extended MAC (Ex-MAC) and the extended DSR (Ex-DSR).The graphs which were generated for both simulations showed that the number of route errors that were generated in the normal DSR was much higher (almost double) than those which were generated in the extended DSR (Ex-DSR).The results clearly show that the normal DSR incorrectly assumed communication problems caused by congestion to be link-related errors and therefore performed the route maintenance operation.The chain scenario is a static scenario, therefore communication problems due to the mobility of nodes do not exist.But, the normal DSR has no way of finding out whether the communication problem between the source and the destination node is due to link failure or something else.
In the simulation experiment when the source node tries to communicate with the destination node and if communication was not possible (after a certain number of times) because of collisions, the MAC layer informs this to the DSR protocol.The normal DSR protocol assumes that it is a routing error caused by a link failure and initiates route maintenance with a set of route requests (RRQs) and route replies (RRPs).This, in fact, causes more traffic in the network and thus leads to more collisions further exacerbating the ongoing congestion.As a result, we have more route errors.On the other hand, with our proposed extended MAC layer and extended DSR approaches, when the source node tries to communicate with the destination node, after a certain number of attempts (backoffs), if communication is still not possible, the extended MAC checks the last received signal strength received from that particular node.If signal strength is equal to or greater than the threshold strength, then the variable xmit reason is set to xmit-reason high strength and is sent to the extended DSR.From this information, the Ex-DSR knows that the reason for communication errors is not because of link failure, and it checks the value of beta.If the value of beta is less than 2, in this case route maintenance is not initiated.Consequently, we experience no more additional congestion, and this ultimately leads to a lower number of routing faults compared to the normal DSR implementation (as shown in Figure 6).6.2.11 × 11 Grid Simulation Configuration.The 11 × 11 Grid Simulation configuration (as depicted in Figure 8) used a total of 121 nodes in the form of a matrix with eleven rows and an equal number of columns.Here again, each node is situated a distance of 150 meters from its adjacent node.The transmission range for each node for this setup was set to 200 meters, whereas the carrier sense threshold was set to 400 meters.The simulation time for this experiment was also set to 2 minutes.In this configuration, 11 nodes are situated in each row and column at a distance of 150 meters.The simulation was executed for a set of 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, and 22 flows.The set of 2 flows were introduced in such a way that their executions overlap with each other.Therefore, a TCP flow was induced from node 6 to node 116, and simultaneously another flow was induced perpendicularly from node 56 to node 66.The number of flows was gradually increased from 2, 4, and 6, and so on to a maximum of 22. Therefore, for 6 TCP flows, 3 flows were induced from node 6 to 116, 5 to 115, and 7 to 117, whereas the other three perpendicular flows were induced from node 45 to 55, 56 to 66, and 67 to 77.The flows were induced perpendicularly to each other to enhance collisions in the network.The tests conducted on the implemented  cross-layer architecture using the 11 × 11 grid configuration show that our proposed cross-layer approach does reduce the number of route faults (as illustrated in Figure 7).As a result, the DSR protocol does not invoke route maintenance when the routing error was caused by congestion.
The tests conducted on the static configuration verify the assumptions made during the design of our proposed cross-layer architecture.Since all nodes were static, the nodes clearly showed that the routing faults were reduced to zero when the simulations were executed using our proposed cross layer architecture.

Manhattan Configuration.
In this scenario, we used 100 nodes which were arranged in the form of a square of 500 meters by 500 meters.Six streets were defined in this square, three horizontal and three vertical, where each street consisted of two lanes.The nodes moved along these 12 lanes.Each node had a carrier sense threshold of 130 meters, and the transmission range was kept at 60 meters.The experiments were conducted for five different mobility scenarios.The speed of the nodes for the 5 scenarios was kept at 1 m/s, 2 m/s, 5 m/s, 10 m/s, and 20 m/s.The results obtained are shown in Figure 9.
Figure 9 shows the experimental results obtained for the Manhattan configuration where 20 TCP flows were induced for each scenario.The results showed that as the node mobility increases, so did the number of routing faults.However, in this configuration, the difference between the use of cross-layer and without the use of cross-layer is not as high as we have seen for the static configuration.The reason behind this is that for the mobility scenario, the nodes are actually moving causing the link failure.Therefore the crosslayer also incurs a number of routing faults.However, our cross-layer technique was still able to differentiate between a link failure caused by node mobility from the one caused by congestion.Therefore, it was still able to minimize the routing faults as there was no need to induce a route maintenance procedure where the communication error was not due to mobility but due to congestion.

Future Work
Many improvements can be made to the implementation proposed in this research paper.One of these improvements is to extend our implementation to simulate the scenario when the last received signal strength from the destination node is greater than or equal to the threshold energy.When the source node wants to communicate with this node, but the node has already moved or has suffered power failure, a link failure will occur.Since our cross-layer architecture will only check the last received signal strength, the DSR will not invoke the route maintenance phase causing an infinite loop of maintenance messages (of what?).Another improvement we plan to investigate is to extend the crosslayer architecture proposed in this work to include TCP layer interactions.
The MAC layer used in the implementation is the 802.11MAC layer which has its own limitations when it comes to deploying it in sensor networking environments because it is associated with a lot of overheads.Instead of the 802.11MAC layer, we will investigate the use of Sensor MAC (SMAC) which is a MAC protocol designed for wireless sensor networks.SMAC has the potential to make the crosslayer architecture more energy efficient.Similarly, instead of using DSR in the architecture, more energy efficient routing protocols such as Hierarchical DSR (HDSR) can be used to improve energy efficiency.

Conclusions
Cross-layer design architecture aim at increasing the energy efficiency of sensor networks.Our proposed cross-layer architecture presented in this paper achieves the goal of improving energy efficiency by minimizing routing overheads.Our performance results obtained with the configurations used demonstrate that our cross-layer approach is effective in reducing unnecessary routing maintenance operations invoked by the DSR protocol when receiving nodes are within the transmission range of the transmitting node.

Figure 3 :
Figure 3: Flow chart for the extended MAC layer.

Figure 9 :
Figure 9: Number of routing faults for various mobility scenarios (at various speeds) with and without our proposed cross-layer implementation.