A method (300, 400) of processing messages in a heterogeneous network, the heterogeneous network including a plurality of disparate communication media types, the method comprising: receiving (304, 404), at a first communication interface device of a first communication device, a message addressed to a second communication device, wherein the first communication interface device is configured to communicate over a first communication media type according to a first layer in a protocol stack of a communication protocol, and a second layer in the protocol stack, and the first communication interface device is configured to relay messages between two or more other communication devices in the heterogeneous network via the first communication media type, and fusing relaying functionality specified by the second layer of the communication protocol; communicating (308, 408), using the first communication interface device, between the second layer of the communication protocol and an abstraction layer, AL, regarding relaying of the message, wherein communicating comprises exchanging one or more control messages between the second layer of the communication protocol and the AL, and wherein the AL is configured to abstract the first layer and the second layer from an upper layer in the protocol stack; receiving from the AL, at the first communication interface device, an indication that the AL rejects the message, or receiving from the AL, at the first communication interface device, an indication that the first communication interface device is to relay the message; and responsive to the received indication, relaying (316, 420), with the first communication interface device, the message via the first communication media type using the relaying functionality specified by the second layer of the communication protocol. receiving (304, 404), at a first communication interface device of a first communication device, a message addressed to a second communication device, wherein the first communication interface device is configured to communicate over a first communication media type according to a first layer in a protocol stack of a communication protocol, and a second layer in the protocol stack, and the first communication interface device is configured to relay messages between two or more other communication devices in the heterogeneous network via the first communication media type, and fusing relaying functionality specified by the second layer of the communication protocol; the first communication interface device is configured to communicate over a first communication media type according to a first layer in a protocol stack of a communication protocol, and a second layer in the protocol stack, and the first communication interface device is configured to relay messages between two or more other communication devices in the heterogeneous network via the first communication media type, and fusing relaying functionality specified by the second layer of the communication protocol; communicating (308, 408), using the first communication interface device, between the second layer of the communication protocol and an abstraction layer, AL, regarding relaying of the message, wherein communicating comprises exchanging one or more control messages between the second layer of the communication protocol and the AL, and wherein the AL is configured to abstract the first layer and the second layer from an upper layer in the protocol stack; receiving from the AL, at the first communication interface device, an indication that the AL rejects the message, or receiving from the AL, at the first communication interface device, an indication that the first communication interface device is to relay the message; and responsive to the received indication, relaying (316, 420), with the first communication interface device, the message via the first communication media type using the relaying functionality specified by the second layer of the communication protocol.