Bug 2354

Summary: code review: full duplex CSMA
Product: ns-3 Reporter: Tom Henderson <tomh>
Component: csmaAssignee: ns-bugs <ns-bugs>
Status: LAST CALL ---    
Severity: enhancement CC: ljerezchaves, tommaso.pecorella
Priority: P5    
Version: unspecified   
Hardware: All   
OS: All   
Attachments: Revised patch

Description Tom Henderson 2016-03-31 15:21:38 EDT
This is to make sure we do not forget about finishing off this proposal:
https://codereview.appspot.com/187880044/
Comment 1 Luciano Chaves 2017-01-05 12:06:31 EST
Created attachment 2733 [details]
Revised patch

Revised full-duplex extension patch (derived from review https://codereview.appspot.com/187880044/). 
This patch includes the bug fixes discussed during review processes, the updated documentation to reflect the changes, and the csma-duplex.cc example for testing the extension (use the --duplex parameter to enable/disable the full-duplex extension).
Comment 2 Luciano Chaves 2017-01-05 12:09:35 EST
One final question that arrises is whether to default the ns-3 implementation to use full duplex mode or not.
Comment 3 Tom Henderson 2017-01-05 13:11:10 EST
(In reply to Luciano from comment #2)
> One final question that arrises is whether to default the ns-3
> implementation to use full duplex mode or not.

I would suggest to leave default in half duplex; otherwise it is not really 'CSMA' by default.
Comment 4 Luciano Chaves 2017-01-05 13:18:31 EST
(In reply to Tom Henderson from comment #3)
> (In reply to Luciano from comment #2)
> > One final question that arrises is whether to default the ns-3
> > implementation to use full duplex mode or not.
> 
> I would suggest to leave default in half duplex; otherwise it is not really
> 'CSMA' by default.

I agree with that.
Comment 5 Tommaso Pecorella 2017-07-10 17:24:32 EDT
I have no questions for this except one:

*What is the difference between full-duplex CSMA and Point to Point links?*

Mind, this question will be asked a LOT by out users (i.e., it must be explained both in P2P and in CSMA module.
Comment 6 Luciano Chaves 2017-07-10 21:31:48 EDT
I could say that the practical difference between CSMA full-duplex and P2P links would be the presence of the Ethernet header on the CSMA, allowing the CsmaNetDevice to be used together with the Bridge and OpenFlow modules.
Comment 7 Tommaso Pecorella 2017-07-11 06:31:51 EDT
(In reply to Luciano Chaves from comment #6)
> I could say that the practical difference between CSMA full-duplex and P2P
> links would be the presence of the Ethernet header on the CSMA, allowing the
> CsmaNetDevice to be used together with the Bridge and OpenFlow modules.

Devil's advocate would say: this makes the P2P model outdated and unnecessary :D

Anyway, +1 from my side, but I'd update both P2P and CSMA manual to point out the differences.
Comment 8 Luciano Chaves 2018-07-06 09:18:21 EDT
Hi everyone,

Do you think that this patch can be pushed for ns-3.29? 

Despite the conceptual discussions about the similarity between the full duplex csma and p2p channels, I still vote for this patch. The presence of the Ethernet headers are required for OpenFlow support, both in the default OpenFlow ns-3 module and in the OFSwitch13 module that I'm working on (http://www.lrc.ic.unicamp.br/ofswitch13/index.html).
Comment 9 Tom Henderson 2018-07-07 11:02:20 EDT
I think that we will need to review it again for possible inclusion just after ns-3.29.  I believe that it was blocked by lack of any unit tests (and no proposal on what test cases to implement).  Has that status changed?

There is an example but no specific tests around it.