'Pack a frame in a byte string.
Args:
dst: destination mac in byte string format
src: src mac address in byte string format
protocol: short in network byte order
payload: byte string payload data
Returns:
An ethernet frame with header and payload in a byte string.'

@staticmethod
def pack(dst, src, protocol, payload):

    frame = (struct.pack('!6s6sH', dst, src, protocol) + payload)
    return frame
