  In this paper, we consider the use of cross-layer network coding (CLNC),
caching, and device-to-device (D2D) communications to jointly optimize the
delivery of a set of popular contents to a set of user devices (UDs). In the
considered D2D network, a group of near-by UDs cooperate with each other and
use NC to combine their cached files, so as the completion time required for
delivering all requested contents to all UDs is minimized. Unlike the previous
work that considers only one transmitting UD at a time, our work allows
multiple UDs to transmit simultaneously given the interference among the active
links is small. Such configuration brings a new trade-off among scheduling UDs
to transmitting UDs, selecting the coding decisions and the transmission
rate/power. Therefore, we consider the completion time minimization problem
that involves scheduling multiple transmitting UDs, determining their
transmission rates/powers and file combinations. The problem is shown to be
intractable because it involves all future coding decisions. To tackle the
problem at each transmission slot, we first design a graph called herein the
D2D Rate-Aware IDNC graph where its vertices have weights that judiciously
balance between the rates/powers of the transmitting UDs and the number of
their scheduled UDs. Then, we propose an innovative and efficient CLNC solution
that iteratively selects a set of transmitting UDs only if the interference
caused by the transmissions of the newly selected UDs does not significantly
impact the overall completion time. Simulation results show that the proposed
solution offers significant completion time reduction compared with the
existing algorithms.
