EtherPIPE: an Ethernet character device for packet processing