Send and receive packets at layer 3

def sr(x, promisc=None, filter=None, iface=None, nofilter=0, *args, **kargs):
    """Send and receive packets at layer 3"""
    s = conf.L3socket(promisc=promisc, filter=filter,
                      iface=iface, nofilter=nofilter)
    result = sndrcv(s, x, *args, **kargs)
    s.close()
    return result