Hi Neels,
1) Yes, segmentation happens in several points. e.g. IP fragmentation.
2) It depends on you and the implementation of your module. I would recommend to leave it open for the user, e.g. use the abstract Queue class in your module and initialize it with one of the different types using the attribute system. Look at other NetDevices.
Regards,
K.