Last week I made several modifications to the CSMA module. The changes are
1. Made a new class CsmaNetDeviceState inheriting from NetDeviceState.
2. Added methods in the CsmaHelper class to allow users to issue
commands to the NetDevice.
3. Added methods in CsmaHelper to detach NetDevice from the channel.
4. Added methods to CsmaNetDevice class to turn itself off and on. I
call it OpenDevice () and CloseDevice () similar in spirit to dev_open ()
and dev_close() in Linux. After discussing with the mentor, I feel that is
a questionable choice and these functions should live in CsmaNetDeviceState.
5. Made some changes to the base class NetDeviceState according to the
feedback I received.
Tasks left to do for Phase 1:
1. Create test cases and verify that the disconnection of channel and
administrative state changes are reflected in NetDeviceState.
2. CsmaNetDevice can be partially operational in the sense there are 2
bool variables m_sendEnable and m_receiveEnable. It is possible that the
device can only receive packets or only send packets. During the
discussion, it is decided that either we can deem the device as not
operational at all as far as NetDeviceState is concerned in both cases or
we can look into Linux to see whether Linux care about such partially
operational states and if it does see how it handles them and try to model
that behavior in CsmaNetDeviceState.I would really appreciate some feedback
on what needs to be done here.
3. Make Documentation.