ns-3 เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดธเดฟเดฎเตเดฒเต‡เดฑเตเดฑเตผ เดŸเตเดฏเต‚เดŸเตเดŸเต‹เดฑเดฟเดฏเตฝ. เด…เดงเตเดฏเดพเดฏเด‚ 3

ns-3 เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดธเดฟเดฎเตเดฒเต‡เดฑเตเดฑเตผ เดŸเตเดฏเต‚เดŸเตเดŸเต‹เดฑเดฟเดฏเตฝ. เด…เดงเตเดฏเดพเดฏเด‚ 3
เด…เดงเตเดฏเดพเดฏเด‚ 1,2

3 เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต
3.1 เด…เดตเดฒเต‹เด•เดจเด‚
3.2 เดฎเตเตปเดตเตเดฏเดตเดธเตเดฅเด•เตพ
3.2.1 เด’เดฐเต เดธเต‹เดดเตเดธเต เด†เตผเด•เตเด•เตˆเดตเดพเดฏเดฟ ns-3 เดฑเดฟเดฒเต€เดธเต เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต
3.3 Git เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต ns-3 เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต
3.3.1 เดฌเต‡เด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต ns-3 เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต
3.4 เด…เดธเด‚เดฌเตเดฒเดฟ ns-3
3.4.1 build.py เด‰เดณเตเดณ เด•เต†เดŸเตเดŸเดฟเดŸเด‚
3.4.2 เดฌเต‡เด•เตเด•เดฟเดจเตŠเดชเตเดชเด‚ เด•เต†เดŸเตเดŸเดฟเดŸเด‚
3.4.3 เดตเดพเดซเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเด•
3.5 เดŸเต†เดธเตเดฑเตเดฑเดฟเด‚เด—เต ns-3
3.6 เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต
3.6.1 เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเตเด•เตพ
3.6.2 เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต
3.6.3 เดตเตผเด•เตเด•เดฟเด‚เด—เต เดกเดฏเดฑเด•เตเดŸเดฑเดฟ

เดšเดพเดชเตเดฑเตเดฑเตผ 3

เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต

เด’เดฐเดฟเด•เตเด•เดฒเตเด‚ ns-3 เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒเดพเดคเตเดค เด’เดฐเต เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฑเดฟเตฝ เดคเตเดŸเด™เตเด™เดพเตป เดตเดพเดฏเดจเด•เตเด•เดพเดฐเดจเต† เดธเดœเตเดœเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเดฃเต เดˆ เด…เดงเตเดฏเดพเดฏเด‚ เด‰เดฆเตเดฆเต‡เดถเดฟเด•เตเด•เตเดจเตเดจเดคเต. เดชเดฟเดจเตเดคเตเดฃเดฏเตโ€Œเด•เตเด•เตเดจเตเดจ เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เดฎเตเด•เตพ, เดฎเตเตปเดตเตเดฏเดตเดธเตเดฅเด•เตพ, ns-3 เดŽเด™เตเด™เดจเต† เดจเต‡เดŸเดพเด‚, ns-3 เดŽเด™เตเด™เดจเต† เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเด‚, เดจเดฟเด™เตเด™เดณเตเดŸเต† เดฌเดฟเตฝเดกเต เดชเดฐเต€เด•เตเดทเดฟเดšเตเดšเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต†เด™เตเด™เดจเต† เดŽเดจเตเดจเดฟเดต เด‡เดคเดฟเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต.

3.1 เด…เดตเดฒเต‹เด•เดจเด‚

เดธเดนเด•เดฐเดฃ เดธเต‹เดซเตเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเตเดŸเต† เด’เดฐเต เดธเด‚เดตเดฟเดงเดพเดจเดฎเดพเดฏเดพเดฃเต ns-3 เดธเดฟเดฎเตเดฒเต‡เดฑเตเดฑเตผ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต. เด…เดธเด‚เดฌเตเดฒเดฟ เดธเดฎเดฏเดคเตเดคเต, เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เดณเตเดŸเต† เด•เต‹เดกเต เดˆ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดค เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เตพ เดŽเดดเตเดคเดพเตป C++ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเตˆเดคเตเดคเตบ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดทเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.

Ns-3 เดธเต‹เดดเตโ€Œเดธเต เด•เต‹เดกเดพเดฏเดฟ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด…เดคเดพเดฏเดคเต เด†เดฆเตเดฏเด‚ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดคเตเดŸเตผเดจเตเดจเต เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดŸเดพเตผเด—เต†เดฑเตเดฑเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเต เด’เดฐเต เดธเต‹เดซเตเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เดตเดฟเด•เดธเดจ เด…เดจเตเดคเดฐเต€เด•เตเดทเด‚ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚ เดŽเดจเตเดจเดพเดฃเต. เดคเดคเตเดตเดคเตเดคเดฟเตฝ, ns-3 เด’เดฐเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเดพเดฏเดฟ เดฑเต†เดกเดฟเดฎเต†เดฏเตเดกเต เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเดพเดฏเดฟ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเดพเดตเตเดจเตเดจเดคเดพเดฃเต, เดญเดพเดตเดฟเดฏเดฟเตฝ เด…เดต เดˆ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดคเต‡เด•เตเด•เดพเด‚. เดŽเดจเตเดจเดพเตฝ เด‡เด•เตเด•เดพเดฒเดคเตเดคเต เดชเดฒ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเด‚ เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ ns-3 เดŽเดกเดฟเดฑเตเดฑเต เดšเต†เดฏเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต เด…เดตเดฐเตเดŸเต† เดœเต‹เดฒเดฟ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต, เด…เดคเดฟเดจเดพเตฝ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดธเต‹เดดเตเดธเต เด•เต‹เดกเต เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฃเต. เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดฑเต†เดกเดฟเดฎเต†เดฏเตเดกเต เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเตเด‚ เดชเดพเด•เตเด•เต‡เดœเตเด•เดณเตเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจ เดœเต‹เดฒเดฟ เดเดฑเตเดฑเต†เดŸเตเด•เตเด•เดพเตป เด†เดฐเต†เด™เตเด•เดฟเดฒเตเด‚ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ, เดฆเดฏเดตเดพเดฏเดฟ เดฎเต†เดฏเดฟเดฒเดฟเด‚เด—เต เดฒเดฟเดธเตเดฑเตเดฑเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเด• ns-เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเตผ.

เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ, ns-3 เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเดจเตเดฎเตเดณเตเดณ เดฎเต‚เดจเตเดจเต เดตเดดเดฟเด•เตพ เดžเด™เตเด™เตพ เดจเต‹เด•เตเด•เดพเด‚. เดชเตเดฐเดงเดพเดจ เดธเตˆเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เด”เดฆเตเดฏเต‹เด—เดฟเด• เดฑเดฟเดฒเต€เดธเต เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดคเต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต เด†เดฆเตเดฏเดคเตเดคเต‡เดคเต. เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเต เด…เดŸเดฟเดธเตเดฅเดพเดจ ns-3 เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเดจเตเดฑเต† เดตเดฟเด•เดธเดจ เดชเดคเดฟเดชเตเดชเตเด•เดณเตเดŸเต† เดชเด•เตผเดชเตเดชเตเด•เดณเตเดŸเต† เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเตเด‚ เด…เดธเด‚เดฌเตเดฒเดฟเดฏเตเดฎเดพเดฃเต. ns-3-เดจเดพเดฏเดฟ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเด™เตเด™เตพ เดฒเต‹เดกเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เด…เดงเดฟเด• เดฌเดฟเตฝเดกเต เดŸเต‚เดณเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต เดฎเต‚เดจเตเดจเดพเดฎเดคเตเดคเต‡เดคเต. เด‰เดชเด•เดฐเดฃเด™เตเด™เตพ เด…เดฒเตเดชเด‚ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดคเดฟเดจเดพเตฝ เดžเด™เตเด™เตพ เด“เดฐเต‹เดจเตเดจเดฟเดจเตเด‚ เดชเต‹เด•เตเด‚.

เด’เดฐเต เดชเดพเด•เตเด•เต‡เดœเต เดฎเดพเดจเต‡เดœเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดฎเดฑเตเดฑเต เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเต† เดชเต‹เดฒเต† เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเต ns-3 เด’เดฐเต เดชเดพเด•เตเด•เต‡เดœเดพเดฏเดฟ เดจเตฝเด•เตเดจเตเดจเดฟเดฒเตเดฒ เดŽเดจเตเดจเต เดชเดฐเดฟเดšเดฏเดธเดฎเตเดชเดจเตเดจเดฐเดพเดฏ เดฒเดฟเดจเด•เตเดธเต เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดšเดฟเดจเตเดคเดฟเดšเตเดšเต‡เด•เตเด•เดพเด‚? เดตเดฟเดตเดฟเดง เดฒเดฟเดจเด•เตเดธเต เดตเดฟเดคเดฐเดฃเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ (เด‰เดฆเดพ: เดกเต†เดฌเดฟเดฏเตป) เดฌเตˆเดจเดฑเดฟ เดชเดพเด•เตเด•เต‡เดœเตเด•เตพ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเดฒเตเด‚, เดฎเดฟเด•เตเด• เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเด‚ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เดŽเดกเดฟเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเตเด‚ ns-3 เดธเตเดตเดฏเด‚ เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฎเดพเดฃเต, เด…เดคเดฟเดจเดพเตฝ เดธเต‹เดดเตเดธเต เด•เต‹เดกเต เดฒเดญเตเดฏเดฎเดพเดฃเต†เด™เตเด•เดฟเตฝ เดตเดณเดฐเต† เดŽเดณเตเดชเตเดชเดฎเดพเดฃเต. เด‡เด•เตเด•เดพเดฐเดฃเดคเตเดคเดพเตฝ, เด‰เดฑเดตเดฟเดŸเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเตฝ เดžเด™เตเด™เตพ เดถเตเดฐเดฆเตเดง เด•เต‡เดจเตเดฆเตเดฐเต€เด•เดฐเดฟเด•เตเด•เตเด‚.

เดฎเดฟเด•เตเด• เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพเด•เตเด•เตเด‚ ns-3 เด…เดตเด•เดพเดถเด™เตเด™เตพ เดตเต‡เดฐเต เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ, เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด•เดพเดตเด•เดพเดถเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เด‰เดชเดฏเต‹เด•เตเดคเตƒ เด…เด•เตเด•เต—เดฃเตเดŸเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

3.2 เดฎเตเตปเดตเตเดฏเดตเดธเตเดฅเด•เตพ

เดฒเดญเตเดฏเดฎเดพเดฏ ns-3 เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเตเดŸเต† เดฎเตเดดเตเดตเตป เดธเต†เดฑเตเดฑเดฟเดจเตเด‚ เดฎเต‚เดจเตเดจเดพเด‚ เด•เด•เตเดทเดฟ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเดฟเตฝ เด…เดจเต‡เด•เด‚ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ เด‰เดฃเตเดŸเต, เดŽเดจเตเดจเดพเตฝ เดญเต‚เดฐเดฟเดญเดพเด—เดตเตเด‚ ns-3 เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเดพเดตเตเดจเตเดจเดคเดพเดฃเต, เดชเตŠเดคเตเดตเดพเดฏ (เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดณเตเดณ) เด˜เดŸเด•เด™เตเด™เตพเด•เตเด•เตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃเดฏเต‹เดŸเต†: เด’เดฐเต C++ เด•เด‚เดชเตˆเดฒเตผ, เดชเตˆเดคเตเดคเตบ, เด’เดฐเต เดธเต‹เดดเตเดธเต เด•เต‹เดกเต เดŽเดกเดฟเดฑเตเดฑเตผ (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดตเดฟเดฎเต, emacs เด…เดฅเดตเดพ เด—เดนเดฃเด‚) เด•เต‚เดŸเดพเดคเต†, เดกเต†เดตเดฒเดชเตโ€Œเดฎเต†เดจเตเดฑเต เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, Git เดชเดคเดฟเดชเตเดชเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃ เดธเด‚เดตเดฟเดงเดพเดจเด™เตเด™เตพ. เด†เดฆเตเดฏ เดคเดตเดฃ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดฎเดฟเด•เตเด• เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเด‚ เด…เดตเดฐเตเดŸเต† เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดšเดฟเดฒ ns-3 เดตเดฟเดชเตเดฒเดฎเดพเดฏ เดซเต€เดšเตเดšเดฑเตเด•เตพ เดจเดทเตโ€ŒเดŸเดฎเดพเดฏเดพเตฝ เดตเดฟเดทเดฎเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒ, เดŽเดจเตเดจเดพเตฝ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเดตเตผเด•เตเด•เต, เดงเดพเดฐเดพเดณเด‚ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏ เดจเตเดฑเตเด™เตเด™เตเด•เดณเตเด‚ เดคเดจเตเดคเตเดฐเด™เตเด™เดณเตเด‚ เด…เดŸเด™เตเด™เดฟเดฏ เดชเต‡เดœเตเด•เตพ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจ เด’เดฐเต เดตเดฟเด•เตเด•เดฟ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดจเตฝเด•เตเดจเตเดจเต. เด…เดคเตเดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เด’เดฐเต เดชเต‡เดœเดพเดฃเต เด‡เตปเดธเตเดฑเตเดฑเดฒเต‡เดทเตป เดชเต‡เดœเต, เดตเดฟเดตเดฟเดง เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพเด•เตเด•เตเดณเตเดณ เด‡เตปเดธเตเดฑเตเดฑเดฒเต‡เดทเตป เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เด‡เดตเดฟเดŸเต† เดฒเดญเตเดฏเดฎเดพเดฃเต: https://www.nsnam.org/wiki/Installation.

เดธเดพเดงเดพเดฐเดฃ ns-3 เด“เดชเตเดทเดจเตเด•เดณเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เดพเตป เดเดคเตŠเด•เตเด•เต† เดชเดพเด•เตเด•เต‡เดœเตเด•เตพ เด†เดตเดถเตเดฏเดฎเดพเดฃเต†เดจเตเดจเต เดˆ เดตเดฟเด•เตเด•เดฟเดฏเตเดŸเต† เดฎเตเตปเดตเตเดฏเดตเดธเตเดฅเด•เตพ เดตเดฟเดญเดพเด—เด‚ เดตเดฟเดถเดฆเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† Linux เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ macOS-เดจเตเดฑเต† เดธเดพเดงเดพเดฐเดฃ เดซเตเดฒเต‡เดตเดฑเตเด•เดณเดฟเตฝ เด…เดต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด•เดฎเดพเตปเดกเตเด•เดณเตเด‚ เดจเตฝเด•เตเดจเตเดจเต.

ns-3 เดตเดฟเด•เตเด•เดฟ เดชเต‡เดœเต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเตเดฐเดงเดพเดจ เดตเต†เดฌเตเดธเตˆเดฑเตเดฑเต เดชเดฐเตเดฏเดตเต‡เด•เตเดทเดฃเด‚ เดšเต†เดฏเตเดฏเดพเตป เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดˆ เด…เดตเดธเดฐเด‚ เดชเตเดฐเดฏเต‹เดœเดจเดชเตเดชเต†เดŸเตเดคเตเดคเดพเด‚: https://www.nsnam.org, เด•เดพเดฐเดฃเด‚ เด…เดตเดฟเดŸเต† เดงเดพเดฐเดพเดณเด‚ เดตเดฟเดตเดฐเด™เตเด™เตพ เด‰เดฃเตเดŸเต. ns-3 (ns-3.29) เดจเตเดฑเต† เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเดฟเตฝ เดคเตเดŸเด™เตเด™เดฟ, ns-3 เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด‰เดชเด•เดฐเดฃเด™เตเด™เตพ เด†เดตเดถเตเดฏเดฎเดพเดฃเต:

เดŸเต‚เตพ เดชเดพเด•เตเด•เต‡เดœเต/เดชเดคเดฟเดชเตเดชเต

  • เดธเดฟ++ เด•เดฎเตเดชเตˆเดฒเตผ
    clang++ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ g++ (g++ เดชเดคเดฟเดชเตเดชเต 4.9 เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด‰เดฏเตผเดจเตเดจเดคเต)
  • เดชเตˆเดคเตเดคเตบ
    python2 เดชเดคเดฟเดชเตเดชเต >= 2.7.10, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ python3 เดชเดคเดฟเดชเตเดชเต >=3.4
  • Git
    เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเต (GitLab.com-เตฝ ns-3 เด†เด•เตโ€Œเดธเดธเต เดšเต†เดฏเตเดฏเดพเตป)
  • เดŸเดพเตผ
    เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเต (nsโ€‘3 เดฑเดฟเดฒเต€เดธเต เด…เตบเดชเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต)
  • เดฌเตบเดธเดฟเดชเตเดชเต2
    เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเต (nsโ€‘3 เดฑเดฟเดฒเต€เดธเต เด…เตบเดชเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต)

เดชเตˆเดคเตเดคเดฃเดฟเดจเตเดฑเต† เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดชเดคเดฟเดชเตเดชเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเตป, เดŸเตˆเดชเตเดชเต เดšเต†เดฏเตเดฏเตเด• python -V. g++ เดชเดคเดฟเดชเตเดชเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเตป, เดŸเตˆเดชเตเดชเต เดšเต†เดฏเตเดฏเตเด• g++ -v. เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดŸเต‚เดณเตเด•เตพ เดจเดทเตโ€ŒเดŸเดชเตเดชเต†เดŸเตเด•เดฏเต‹ เดตเดณเดฐเต† เดชเดดเดฏเดคเต‹ เด†เดฃเต†เด™เตเด•เดฟเตฝ, เดฆเดฏเดตเดพเดฏเดฟ ns-3 เดตเดฟเด•เตเด•เดฟ เดชเต‡เดœเดฟเดฒเต† เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เด—เตˆเดกเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด•.

เด‡เดชเตเดชเต‹เตพ เดฎเตเดคเตฝ, เดฑเต€เดกเตผ Linux, MacOS, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด’เดฐเต Linux เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เดŽเดจเตเดจเดฟเดต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเตเด‚ เดฎเตเด•เดณเดฟเตฝ เดชเดฑเดžเตเดž เดŸเต‚เดณเตเด•เดณเต†เด™เตเด•เดฟเดฒเตเด‚ เด‰เดฃเตเดŸเต†เดจเตเดจเตเด‚ เดžเด™เตเด™เตพ เด…เดจเตเดฎเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต.

3.2.1 เด’เดฐเต เดธเต‹เดดเตเดธเต เด†เตผเด•เตเด•เตˆเดตเดพเดฏเดฟ ns-3 เดฑเดฟเดฒเต€เดธเต เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต

ns-3 เดจเตเดฑเต† เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเตเด•เดณเตเด‚ เดชเดพเด•เตเด•เต‡เดœเต เดชเดคเดฟเดชเตเดชเตเด•เดณเตเด‚ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเดจเตเด‚ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดชเตเดคเดฟเดฏ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเตเดณเตเดณ เดจเดŸเดชเดŸเดฟเดฏเดพเดฃเดฟเดคเต. ns-3 เดฑเดฟเดฒเต€เดธเตเด•เตพ เด•เด‚เดชเตเดฐเดธเต เดšเต†เดฏเตเดค เด‰เดฑเดตเดฟเดŸ เด†เตผเด•เตเด•เตˆเดตเตเด•เดณเดพเดฏเดฟ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดšเดฟเดฒเดชเตเดชเต‹เตพ เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต เดŸเดพเตผเดฌเต‹เตพ. เดŸเดพเตผเดฌเต‹เตพ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดธเต‹เดซเตโ€Œเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เด†เตผเด•เตเด•เตˆเดตเต เดซเต‹เตผเดฎเดพเดฑเตเดฑเดพเดฃเต, เด…เดคเดฟเตฝ เดจเดฟเดฐเดตเดงเดฟ เดซเดฏเดฒเตเด•เตพ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด†เตผเด•เตเด•เตˆเดตเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด•เด‚เดชเตเดฐเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต. ns-3 เดฌเต‚เดŸเตเดŸเต เดชเตเดฐเด•เตเดฐเดฟเดฏ เดตเดดเดฟ เดŸเดพเตผเดฌเต‹เตพ เดฒเดณเดฟเดคเดฎเดพเดฃเต, เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดฑเดฟเดฒเต€เดธเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต เด…เดคเต เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดคเต เด…เตบเดชเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เด’เดฐเต เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เดŽเดจเตเดจ เดจเดฟเดฒเดฏเดฟเตฝ, เด’เดฐเต เดฒเต‹เด•เตเด•เตฝ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเตฝ ns-3 เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดจเดฎเตเด•เตเด•เต เด…เดจเตเดฎเดพเดจเดฟเด•เตเด•เดพเด‚ เดตเตผเด•เตเด•เตโ€Œเดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเต. Linux เด•เตบเดธเต‹เดณเดฟเตฝ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เดจเตฝเด•เดฟเด•เตเด•เตŠเดฃเตเดŸเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฑเดฟเดฒเต€เดธเดฟเดจเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจ เดชเด•เตผเดชเตเดชเต เดฒเดญเดฟเด•เตเด•เตเด‚ (เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฏ เดชเดคเดฟเดชเตเดชเต เดจเดฎเตเดชเดฑเตเด•เตพ เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เตเด•, เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚)

$ cd 
$ mkdir workspace 
$ cd workspace 
$ wget https://www.nsnam.org/release/ns-allinone-3.29.tar.bz2 
$ tar xjf ns-allinone-3.29.tar.bz2 

เดฎเตเด•เดณเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดš เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด• เดคเดฎเดพเดถ, เด‡เดคเต เด‡เดจเตเดฑเตผเดจเต†เดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเตเด•เตพ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เดŸเต‚เดณเดพเดฃเต. เดจเดฟเด™เตเด™เตพ เด‡เดคเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด‡เดคเดฟเดจเดพเดฏเดฟ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดฌเตเดฐเต—เดธเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚.

เดˆ เด˜เดŸเตเดŸเด™เตเด™เตพ เดชเดฟเดจเตเดคเตเดŸเดฐเตเดจเตเดจเดคเต เดจเดฟเด™เตเด™เดณเต† ns-allinone-3.29 เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เด•เตŠเดฃเตเดŸเตเดชเต‹เด•เตเด‚, โ€‹โ€‹เด…เดตเดฟเดŸเต† เดจเดฟเด™เตเด™เตพ เดจเดฟเดฐเดตเดงเดฟ เดซเดฏเดฒเตเด•เดณเตเด‚ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเด•เดณเตเด‚ เด•เดพเดฃเตเด‚.

$ cd ns-allinone-3.29
$ ls
bake constants.py ns-3.29 README
build.py netanim-3.108 pybindgen-0.17.0.post58+ngcf00cc0 util.py

เดจเดฟเด™เตเด™เตพ เด‡เดชเตเดชเต‹เตพ ns-3 เดฌเต‡เดธเต เดกเดฟเดธเตเดŸเตเดฐเดฟเดฌเตเดฏเต‚เดทเตป เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เดคเดฏเตเดฏเดพเดฑเดพเดฃเต, เด•เต‚เดŸเดพเดคเต† ns-3 เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดตเดฟเดญเดพเด—เดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เดพเด‚.

3.3 Git เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต ns-3 เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต

ns-3 เด•เต‹เดกเต GitLab.com-เดฒเต† Git เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเด•เดณเดฟเตฝ เดฒเดญเตเดฏเดฎเดพเดฃเต https://gitlab.com/nsnam/. เด—เตเดฐเต‚เดชเตเดชเต nsnam เด’เดฐเต เด“เดชเตเดชเตบ เดธเต‹เดดเตเดธเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดตเดฟเดตเดฟเดง เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเด•เตพ เด’เดฐเตเดฎเดฟเดšเตเดšเต เด•เตŠเดฃเตเดŸเตเดตเดฐเตเดจเตเดจเต.

เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟเดฏเต† เดซเต‹เตผเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด•เดฏเต‹ เด•เตเดฒเต‹เตบ เดšเต†เดฏเตเดฏเตเด•เดฏเต‹ เดšเต†เดฏเตเดฏเตเด• เดŽเดจเตเดจเดคเดพเดฃเต เดœเดฟเดฑเตเดฑเต เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เดพเดจเตเดณเตเดณ เดเดฑเตเดฑเดตเตเด‚ เดŽเดณเตเดชเตเดช เดฎเดพเตผเด—เด‚ ns-3-เด…เดฒเตเดฒเดฟเดจเต‹เตบ. เดเดฑเตเดฑเดตเตเด‚ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ ns-3 เดธเดฌเตเดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เดณเตเดŸเต† เดฒเต‹เดกเดฟเด‚เด—เตเด‚ เด…เดธเด‚เดฌเตเดฒเดฟเดฏเตเด‚ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เดณเตเดŸเต† เด’เดฐเต เด•เต‚เดŸเตเดŸเดฎเดพเดฃเดฟเดคเต. เดจเดฟเด™เตเด™เตพ Git-เตฝ เดชเตเดคเดฟเดฏ เด†เดณเดพเดฃเต†เด™เตเด•เดฟเตฝ, "เดซเต‹เตผเด•เตเด•เต", "เด•เตเดฒเต‹เตบ" เดŽเดจเตเดจเต€ เดชเดฆเด™เตเด™เตพ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเดฐเดฟเดšเดฟเดคเดฎเดฒเตเดฒเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚; เด…เด™เตเด™เดจเต†เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, GitLab.com-เตฝ เดธเตเดฅเดฟเดคเดฟ เดšเต†เดฏเตเดฏเตเดจเตเดจ เดถเต‡เด–เดฐเด‚ เด‡เดคเตเดชเต‹เดฒเต† เด•เตเดฒเต‹เตบ เดšเต†เดฏเตเดฏเดพเตป (เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เดชเด•เตผเดชเตเดชเต เด‰เดฃเตเดŸเดพเด•เตเด•เดพเตป) เดžเด™เตเด™เตพ เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเต:

$ cd 
$ mkdir workspace 
$ cd workspace 
$ git clone https://gitlab.com/nsnam/ns-3-allinone.git 
$ cd ns-3-allinone 

เดˆ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ, เดจเดฟเด™เตเด™เดณเตเดŸเต† เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเตเดŸเต† เด•เดพเดดเตเดš ns-3-เด…เดฒเตเดฒเดฟเดจเต‹เตบ เดฎเตเด•เดณเดฟเตฝ เดตเดฟเดตเดฐเดฟเดšเตเดš เดฑเดฟเดฒเต€เดธเต เด†เตผเด•เตเด•เตˆเดตเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เด…เดฒเตเดชเด‚ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฃเต. เด‡เดคเต เด‡เดคเตเดชเต‹เดฒเต†เดฏเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚:

$ ls
build.py constants.py download.py README util.py

เด’เดฐเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด‰เดฃเตเดŸเต†เดจเตเดจเต เดฆเดฏเดตเดพเดฏเดฟ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด• download.py, เด‡เดคเต ns-3 เด‰เด‚ เด…เดจเตเดฌเดจเตเดง เดธเต‹เดดเตโ€Œเดธเต เด•เต‹เดกเตเด‚ เดŽเด•เตโ€Œเดธเตโ€ŒเดŸเตเดฐเดพเด•เตโ€Œเดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเด‚. เด‡เดตเดฟเดŸเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดšเต‹เดฏเตโ€Œเดธเต เด‰เดฃเตเดŸเต: เด’เดจเตเดจเตเด•เดฟเตฝ เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ ns-3 เดกเต†เดตเดฒเดชเตโ€Œเดฎเต†เดจเตเดฑเต เดธเตโ€Œเดจเดพเดชเตเดชเตโ€Œเดทเต‹เดŸเตเดŸเต เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด•:

$ python download.py

เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดซเตเดฒเดพเด—เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต ns-3 เดฑเดฟเดฒเต€เดธเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด• -n เดฑเดฟเดฒเต€เดธเต เดจเดฎเตเดชเตผ เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป:

$ python download.py -n ns-3.29

เดˆ เด˜เดŸเตเดŸเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต ns-3-เด…เดฒเตเดฒเดฟเดจเต‹เตบ เด…เดงเดฟเด• เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเด•เตพ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚ ns-3, เดšเตเดŸเต‡เดฃเด‚, pybindgen ะธ netanim.

เด…เดญเดฟเดชเดพเดฏเดชเตเดชเต†เดŸเตเด•
เดตเตƒเดคเตเดคเดฟเดฏเตเดณเตเดณ Ubuntu16.04 เด‰เดณเตเดณ เด’เดฐเต เดฎเต†เดทเต€เดจเดฟเตฝ, เดŽเดจเดฟเด•เตเด•เต เด‡เดคเดฟเดฒเต‡เด•เตเด•เต เด•เดฎเดพเตปเดกเต เดฎเดพเดฑเตเดฑเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต: $ sudo python3 download.py -n ns-3.29 (เด‡เดจเดฟเดฎเตเดคเตฝ เดตเดฟเดตเตผเดคเตเดคเด•เดจเตเดฑเต† เด•เตเดฑเดฟเดชเตเดชเตเด•เตพ).

3.3.1 เดฌเต‡เด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต ns-3 เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เดฐเดฃเตเดŸเต เดฐเต€เดคเดฟเด•เตพ (เด‰เดฑเดตเดฟเดŸ เด†เตผเด•เตเด•เตˆเดตเต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดถเต‡เด–เดฐเด‚ ns-3-เด…เดฒเตเดฒเดฟเดจเต‹เตบ เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เด†เดกเต‹เดฃเตเด•เดณเตเดณเตเดณ เดเดฑเตเดฑเดตเตเด‚ เดฒเดณเดฟเดคเดฎเดพเดฏ ns-3 เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต Git เดตเดดเดฟ) เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฃเต(pybindgen เดชเตˆเดคเตเดคเตบ เดฌเตˆเตปเดกเดฟเด‚เด—เตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ netanim เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด†เดจเดฟเดฎเต‡เดทเดจเดพเดฏเดฟ). ns-3-allinone-เตฝ เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เดจเตฝเด•เตเดจเตเดจ เดฎเต‚เดจเตเดจเดพเดฎเดคเตเดคเต† เดถเต‡เด–เดฐเดฃเดคเตเดคเต† เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต เดšเตเดŸเต‡เดฃเด‚.

เดšเตเดŸเต‡เดฃเด‚ ns-3 เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเดพเดฏเดฟ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเดšเตเดšเต†เดŸเตเดคเตเดค เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดถเต‡เด–เดฐเดฃเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดธเต‹เดซเตโ€Œเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เด‰เดชเด•เดฐเดฃเดฎเดพเดฃเต. เดšเตเดŸเต‡เดฃเด‚ ns-3 เดจเตเดฑเต† เดตเดฟเด•เดธเดจ เดชเดคเดฟเดชเตเดชเตเด•เตพ เดจเต‡เดŸเตเดจเตเดจเดคเดฟเดจเตเด‚ เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดชเต‹เดฒเตเดณเตเดณ ns-3 เดตเดฟเดคเดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต† เด…เดŸเดฟเดธเตเดฅเดพเดจ เดชเดคเดฟเดชเตเดชเดฟเดจเตเดฑเต† เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเด™เตเด™เตพ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. เดจเต‡เดฐเดฟเดŸเตเดŸเตเดณเตเดณ เด•เต‹เดกเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดทเตป, CradleNetwork เดธเดฟเดฎเตเดฒเต‡เดทเตป เดคเตŠเดŸเตเดŸเดฟเตฝ, เดชเตเดคเดฟเดฏ เดชเตˆเดคเตเดคเตบ เดฌเตˆเตปเดกเดฟเด‚เด—เตเด•เดณเตเด‚ เดตเดฟเดตเดฟเดง ns-3 "เด†เดชเตเดชเตเด•เดณเตเด‚" เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต.

เด…เดญเดฟเดชเดพเดฏเดชเตเดชเต†เดŸเตเด•
CradleNetwork Simulation Cradle เดŽเดจเตเดจเดคเต เด’เดฐเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดธเดฟเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เดฏเดฅเดพเตผเดคเตเดฅ TCP/IP เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดธเตเดฑเตเดฑเดพเด•เตเด•เตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเดพเดฃเต.

เดจเดฟเด™เตเด™เดณเตเดŸเต† ns-3 เด‡เตปเดธเตเดฑเตเดฑเดฒเต‡เดทเดจเดฟเตฝ เดตเดฟเดชเตเดฒเดฎเดพเดฏเดคเต‹ เด…เดงเดฟเด•เดฎเต‹ เด†เดฏ เดซเต€เดšเตเดšเดฑเตเด•เตพ เด‰เดฃเตเดŸเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพ เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดˆ เด‡เตปเดธเตเดฑเตเดฑเดฒเต‡เดทเตป เดชเดพเดค เดชเดฟเดจเตเดคเตเดŸเดฐเดพเดตเตเดจเตเดจเดคเดพเดฃเต.

เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ ns-3 เดฑเดฟเดฒเต€เดธเตเด•เดณเดฟเตฝ เดšเตเดŸเต‡เดฃเด‚ เดŸเดพเตผ เดฑเดฟเดฒเต€เดธเดฟเดฒเต‡เด•เตเด•เต เดšเต‡เตผเดคเตเดคเต. เดฑเดฟเดฒเต€เดธเต เดธเดฎเดฏเดคเตเดคเต เดจเดฟเดฒเดตเดฟเดฒเต† เดธเต‹เดซเตโ€Œเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เดชเดคเดฟเดชเตเดชเตเด•เตพ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเตฝ เดฑเดฟเดฒเต€เดธเดฟเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต. เด…เดคเดพเดฏเดคเต, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดชเดคเดฟเดชเตเดชเต เดšเตเดŸเต‡เดฃเด‚, เดฑเดฟเดฒเต€เดธเต ns-3.29 เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต, ns-3 เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดคเดฟเดจเต เดฎเตเดฎเตเดชเตเดณเตเดณ เดชเดคเดฟเดชเตเดชเดฟเดจเตเดฑเต† เด˜เดŸเด•เด™เตเด™เตพ เดตเต€เดฃเตเดŸเต†เดŸเตเด•เตเด•เดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚, เดŽเดจเตเดจเดพเตฝ เดชเดฟเดจเตเดจเต€เดŸเตเดณเตเดณ เดฑเดฟเดฒเต€เดธเตเด•เตพเด•เตเด•เตเดณเตเดณ เด˜เดŸเด•เด™เตเด™เตพ เดตเต€เดฃเตเดŸเต†เดŸเตเด•เตเด•เดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเดพเดตเดฟเดฒเตเดฒ (เดชเดพเด•เตเด•เต‡เดœเต เดตเดฟเดตเดฐเดฃ เดซเดฏเดฒเดพเดฃเต†เด™เตเด•เดฟเตฝ bakeconf.xml เด…เดชเตเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒ).

เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดชเด•เตผเดชเตเดชเตเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฒเดญเดฟเด•เตเด•เตเด‚ เดšเตเดŸเต‡เดฃเด‚เดจเดฟเด™เตเด™เดณเตเดŸเต† Linux เด•เตบเดธเต‹เดณเดฟเดฒเต‡เด•เตเด•เต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เดฎเดพเตปเดกเต เดจเตฝเด•เดฟเด•เตเด•เตŠเดฃเตเดŸเต (เดจเดฟเด™เตเด™เตพ Git เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เดจเตเดจเต เด•เดฐเตเดคเตเด•):

$ cd 
$ mkdir workspace 
$ cd workspace 
$ git clone https://gitlab.com/nsnam/bake.git

เดจเดฟเด™เตเด™เตพ git เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดคเตเดชเต‹เดฒเตเดณเตเดณ เด’เดจเตเดจเต เดจเดฟเด™เตเด™เตพ เด•เดพเดฃเตเด‚:

Cloning into 'bake'...
remote: Enumerating objects: 2086, done. 
remote: Counting objects: 100% (2086/2086), done. 
remote: Compressing objects: 100% (649/649), done. 
remote: Total 2086 (delta 1404), reused 2078 (delta 1399) 
Receiving objects: 100% (2086/2086), 2.68 MiB | 3.82 MiB/s, done. 
Resolving deltas: 100% (1404/1404), done.

เด•เดฎเดพเตปเดกเต เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเดฏ เดถเต‡เดทเด‚ เด•เตเดฒเต‹เตบ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŽเดจเตเดจ เดชเต‡เดฐเตเดณเตเดณ เด’เดฐเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚ เดšเตเดŸเต‡เดฃเด‚, เด‡เดคเดฟเดฒเต† เด‰เดณเตเดณเดŸเด•เตเด•เด‚ เด‡เดคเตเดชเต‹เดฒเต†เดฏเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚:

$ cd bake
$ ls
bake bakeconf.xml bake.py doc examples generate-binary.py test TODO

เดจเดฟเด™เตเด™เตพ เดจเดฟเดฐเดตเดงเดฟ เดชเตˆเดคเตเดคเตบ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ เดฒเต‹เดกเตเดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เดจเตเดจ เด•เดพเดฐเตเดฏเด‚ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•, เด’เดฐเต เดชเตˆเดคเตเดคเตบ เดฎเตŠเดกเตเดฏเต‚เตพ เดŽเดจเตเดจเต เดชเต‡เดฐเดฟเดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดšเตเดŸเต‡เดฃเด‚ เด’เดฐเต XML เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเดฒเตเด‚. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดทเตเดŸเดฎเตเดณเตเดณ ns-3 เดกเดฟเดธเตเดŸเตเดฐเดฟเดฌเตเดฏเต‚เดทเตป เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเดจเตเด‚ เดˆ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต เด…เดŸเตเดคเตเดค เด˜เดŸเตเดŸเด‚. เดจเดฟเดฐเดตเดงเดฟ เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดคเดฎเดพเด•เตเด•เตฝ เดฒเด•เตเดทเตเดฏเด™เตเด™เตพ เดฒเดญเตเดฏเดฎเดพเดฃเต:

  1. ns-3.29: เดฑเดฟเดฒเต€เดธเดฟเดจเต เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฏ เดฎเตŠเดกเตเดฏเต‚เตพ; เดŸเดพเตผเดฌเต‹เดณเดฟเดฒเต† เดฑเดฟเดฒเต€เดธเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฏ เด˜เดŸเด•เด™เตเด™เตพ เด‡เดคเต เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด‚;

  2. ns-3-dev: เดธเดฎเดพเดจเดฎเดพเดฏ เดฎเตŠเดกเตเดฏเต‚เตพ, เดŽเดจเตเดจเดพเตฝ เดกเต†เดตเดฒเดชเตโ€Œเดฎเต†เดจเตเดฑเต เดŸเตเดฐเต€เดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด•เต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต;

  3. เดŽเตปเดŽเดธเต-เด…เดฒเตเดฒเดฟเดจเต‹เตบ-3.29: เด•เตเดฒเดฟเด•เตเด•เต เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เต, เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดธเดฟเดฎเตเดฒเต‡เดทเตป เด•เตเดฐเดพเดกเดฟเตฝ, ns-3-เดจเตเดณเตเดณ เด“เดชเตเดชเตบเดซเตเดฒเต‹ เดŽเดจเตเดจเดฟเดต เดชเต‹เดฒเตเดณเตเดณ เดฎเดฑเตเดฑเต เด…เดงเดฟเด• เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจ เด’เดฐเต เดฎเตŠเดกเตเดฏเต‚เตพ.

  4. ns-3-เด…เดฒเตเดฒเดฟเดจเต‹เตบ: เดฎเตŠเดกเตเดฏเต‚เดณเดฟเดจเตเดฑเต† เดฑเดฟเดฒเต€เดธเต เดชเดคเดฟเดชเตเดชเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฃเต เดŽเดฒเตเดฒเดพเด‚เด•เต‚เดŸเดฟ เด’เดจเตเดจเดฟเตฝ, เดŽเดจเตเดจเดพเตฝ เดตเดฟเด•เดธเดจ เด•เต‹เดกเดฟเดจเต.

เด…เดญเดฟเดชเดพเดฏเดชเตเดชเต†เดŸเตเด•
เด•เตเดฒเดฟเด•เตเด•เต - เดฑเต‚เดŸเตเดŸเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดฎเต‹เดกเตเดฒเดพเตผ เดธเต‹เดซเตเดฑเตเดฑเตเดตเต†เดฏเตผ เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเตผ.

เดธเต‹เดซเตโ€Œเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เดจเดฟเตผเดตเตเดตเดšเดฟเดšเตเดš เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดธเดพเด™เตเด•เต‡เดคเดฟเด•เดตเดฟเดฆเตเดฏ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดฑเต‚เดŸเตเดŸเดฑเตเด•เดณเตเด‚ เดธเตเดตเดฟเดšเตเดšเตเด•เดณเตเด‚ เดตเดดเดฟ เดกเดพเดฑเตเดฑ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เดฟเดฒเต‚เดŸเต† เด•เตˆเดฎเดพเดฑเตเดจเตเดจ เดกเดพเดฑเตเดฑ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ เด†เดฃเต เด“เดชเตเดชเตบเดซเตเดฒเต‹.

เดจเดฟเดฒเดตเดฟเดฒเต† เดกเต†เดตเดฒเดชเตโ€Œเดฎเต†เดจเตเดฑเต เดธเตโ€Œเดจเดพเดชเตเดชเตโ€Œเดทเต‹เดŸเตเดŸเต (เดจเต‹เตบ-เดฑเดฟเดฒเต€เดธเต) ns-3 เด‡เดตเดฟเดŸเต† เด•เดพเดฃเดพเด‚:https://gitlab.com/nsnam/ns-3-dev.git.

เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเตผ เดˆ เดถเต‡เด–เดฐเดฃเด™เตเด™เตพ เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจ เด•เตเดฐเดฎเดคเตเดคเดฟเตฝ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เด…เดต เดตเดฟเด•เดธเดจ เดฎเต‡เด–เดฒเดฏเดฟเดฒเดพเดฃเต, เด•เต‚เดŸเดพเดคเต† เดฑเดฟเดฒเต€เดธเต เดšเต†เดฏเตเดฏเดพเดคเตเดค เด•เต‹เดกเต เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเดพเตฝ เดจเดฟเด™เตเด™เตพ เดชเตเดคเดฟเดฏ เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด‰เดฆเตเดฆเต‡เดถเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด”เดฆเตเดฏเต‹เด—เดฟเด• เดฑเดฟเดฒเต€เดธเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด•.

เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเด•เดณเตเดŸเต† เดฒเดฟเดธเตเดฑเตเดฑเต เดฌเตเดฐเต—เดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†เดฏเต‹ ns-3 เดฑเดฟเดฒเต€เดธเตเด•เดณเตเดŸเต† เดตเต†เดฌเต เดชเต‡เดœเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เดฏเดฟเด•เตเด•เตŠเดฃเตเดŸเต‹ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เต‹เดกเดฟเดจเตเดฑเต† เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเต เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเดพเด•เตเด‚:https://www.nsnam.org/releases/ เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเต เดฒเดฟเด™เตเด•เดฟเตฝ เด•เตเดฒเดฟเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด•. เดˆ เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ เดจเดฎเตเดฎเตพ ns-3.29-เตฝ เดคเตเดŸเดฐเตเด‚.

เด‡เดชเตเดชเต‹เตพ, เดจเดฎเตเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ ns-3 เด˜เดŸเด•เด™เตเด™เตพ เดฒเดญเดฟเด•เตเด•เดพเตป, เดžเด™เตเด™เตพ เดŸเต‚เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚ เดšเตเดŸเต‡เดฃเด‚. เดธเตƒเดทเตเดŸเดฟเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เตเดฑเดšเตเดšเต เด†เดฎเตเด– เดตเดพเด•เตเด•เตเด•เตพ เดชเดฑเดฏเดพเด‚ เดšเตเดŸเต‡เดฃเด‚.

เดชเดพเด•เตเด•เต‡เดœเต เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เด’เดฐเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดฒเต‹เดกเต เดšเต†เดฏเตเดคเตเด•เตŠเดฃเตเดŸเต เดฌเต‡เด•เตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต เด‰เดฑเดตเดฟเดŸเด‚ เดฌเดฟเตฝเดกเต เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เด‡เตปเดธเตเดฑเตเดฑเต‹เตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดšเตเดŸเต‡เดฃเด‚ เดฌเตˆเดจเดฑเดฟ เดชเดฐเดพเดฎเตผเดถเดฟเดšเตเดšเตเด•เตŠเดฃเตเดŸเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเด‚, เดŽเดจเตเดจเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดฃเดฎเต†เด™เตเด•เดฟเตฝ เดšเตเดŸเต‡เดฃเด‚ เด‡เดคเต เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดค เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเดฒเตเดฒ, เด‡เดคเดฟเดฒเต‡เด•เตเด•เต เดชเดพเดคเตเดคเต เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดพเดฃเต เด‰เดšเดฟเดคเด‚ เดšเตเดŸเต‡เดฃเด‚ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเดพเดคเดฏเดฟเดฒเต‡เด•เตเด•เต (PATH เดŽเตปเดตเดฏเต‹เตบเดฎเต†เดจเตเดฑเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ), เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดคเต (เดฒเดฟเดจเด•เตเดธเต เดฌเดพเดทเต เดทเต†เดฒเตเดฒเดฟเดจเตเดณเตเดณ เด‰เดฆเดพเดนเดฐเดฃเด‚). "เดฌเต‡เด•เตเด•เต" เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเด•, เดคเตเดŸเตผเดจเตเดจเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดŽเตปเดตเดฏเต‹เตบเดฎเต†เดจเตเดฑเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด•:

$ export BAKE_HOME=`pwd` 
$ export PATH=$PATH:$BAKE_HOME:$BAKE_HOME/build/bin 
$ export PYTHONPATH=$PYTHONPATH:$BAKE_HOME:$BAKE_HOME/build/lib

เด‡เดคเต เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดธเตเดฅเดพเดชเดฟเด•เตเด•เตเด‚ bake.py เดทเต†เตฝ เดชเดพเดคเดฏเดฟเดฒเต‡เด•เตเด•เต เด…เดคเต เดธเตƒเดทเตเดŸเดฟเดšเตเดš เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเดณเตเด•เดณเตเด‚ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเตเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดพเตป เดฎเดฑเตเดฑเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเด‚ เดšเตเดŸเต‡เดฃเด‚. เดšเดฟเดฒ เด‰เดชเดฏเต‹เด— เดธเดจเตเดฆเตผเดญเด™เตเด™เดณเดฟเตฝ เดšเตเดŸเต‡เดฃเด‚, เดฎเตเด•เดณเดฟเตฝ เดตเดฟเดตเดฐเดฟเดšเตเดš PATH, PYTHONPATH เด•เตเดฐเดฎเต€เด•เดฐเดฃเด‚ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ, เดŽเดจเตเดจเดพเตฝ ns-3-allinone เดจเตเดฑเต† เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดจเดฟเตผเดฎเตเดฎเดพเดฃเดคเตเดคเดฟเดจเต (เด…เดงเดฟเด• เดชเดพเด•เตเด•เต‡เดœเตเด•เตพเด•เตเด•เตŠเดชเตเดชเด‚) เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด…เดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต.

เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเดตเตผเดคเตเดคเดจ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เดฏเดฟ เด•เตบเดธเต‹เดณเดฟเตฝ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เดจเตฝเด•เตเด•:

$ ./bake.py configure -e ns-3.29

เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ เดžเด™เตเด™เตพ เดšเต‹เดฆเดฟเด•เตเด•เตเด‚ เดšเตเดŸเต‡เดฃเด‚ เดตเดฟเดตเดฟเดง เด˜เดŸเด•เด™เตเด™เตพ เดฒเต‹เดกเตเดšเต†เดฏเตเดฏเดพเตป เด†เดตเดถเตเดฏเดฎเดพเดฏ เด‰เดชเด•เดฐเดฃเด™เตเด™เตพ เดžเด™เตเด™เดณเตเดŸเต† เดชเด•เตเด•เดฒเตเดฃเตเดŸเต‹เดฏเต†เดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด•. เดกเดฏเตฝ เดšเต†เดฏเตเดฏเตเด•:

$ ./bake.py check

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดคเตเดชเต‹เดฒเตเดณเตเดณ เด’เดจเตเดจเต เดจเดฟเด™เตเด™เตพ เด•เดพเดฃเดฃเด‚:

> Python - OK 
> GNU C++ compiler - OK 
> Mercurial - OK 
> Git - OK 
> Tar tool - OK 
> Unzip tool - OK 
> Make - OK 
> cMake - OK 
> patch tool - OK 
> Path searched for tools: /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin ...

เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเตเด‚, เด•เต‹เดกเต เดฒเดญเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ เดฎเต†เตผเด•เตเด•เตเดฑเดฟเดฏเตฝ, เดธเดฟเดตเดฟเดŽเดธเต, เดœเดฟเดฑเตเดฑเต, เดฌเดธเดพเตผ เดคเตเดŸเด™เตเด™เดฟเดฏ เด…เดชเตโ€Œเดฒเต‹เดกเต เดŸเต‚เดณเตเด•เตพ เดˆ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เด…เดคเตเดฏเดจเตเดคเดพเดชเต‡เด•เตเดทเดฟเดคเดฎเดพเดฃเต. เดˆ เดธเดฎเดฏเดคเตเดคเต, เดจเดทเตโ€ŒเดŸเดฎเดพเดฏ เดŸเต‚เดณเตเด•เตพ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเดพเดฏเดฟ เดธเดพเดงเดพเดฐเดฃ เดฐเต€เดคเดฟเดฏเดฟเตฝ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด• (เดŽเด™เตเด™เดจเต†เดฏเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เดฑเดฟเดฏเดพเดฎเต†เด™เตเด•เดฟเตฝ) เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดธเดนเดพเดฏเดคเตเดคเดฟเดจเดพเดฏเดฟ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเดฟเดธเตเดฑเตเดฑเด‚ เด…เดกเตโ€Œเดฎเดฟเดจเดฟเดธเตโ€ŒเดŸเตเดฐเต‡เดฑเตเดฑเดฑเต† เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเด•.

เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ, เดธเต‹เดซเตเดฑเตเดฑเตเดตเต†เดฏเตผ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเด•:

$ ./bake.py download

เดซเดฒเด‚ เด‡เดคเตเดชเต‹เดฒเต†เดฏเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚:

>> Searching for system dependency setuptools - OK 
>> Searching for system dependency libgoocanvas2 - OK 
>> Searching for system dependency gi-cairo - OK 
>> Searching for system dependency pygobject - OK 
>> Searching for system dependency pygraphviz - OK 
>> Searching for system dependency python-dev - OK 
>> Searching for system dependency qt - OK 
>> Searching for system dependency g++ - OK 
>> Downloading pybindgen-0.19.0.post4+ng823d8b2 (target directory:pybindgen) - OK 
>> Downloading netanim-3.108 - OK 
>> Downloading ns-3.29 - OK

เดฎเต‚เดจเตเดจเต เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตโ€Œเดคเต เดŽเดจเตเดจเดพเดฃเต เด‡เดคเดฟเดจเตผเดคเตเดฅเด‚. เด‡เดชเตเดชเต‹เตพ เดธเต‹เดดเตเดธเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เดฏเดฟ ls เดŽเดจเตเดจเต เดŸเตˆเดชเตเดชเต เดšเต†เดฏเตเดฏเตเด•; เดจเดฟเด™เตเด™เตพ เด•เดพเดฃเดฃเด‚:

$ cd source 
$ ls
netanim-3.108 ns-3.29 pybindgen

เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ ns-3 เดตเดฟเดคเดฐเดฃเด‚ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เดคเดฏเตเดฏเดพเดฑเดพเดฃเต.

3.4 เด…เดธเด‚เดฌเตเดฒเดฟ ns-3

ns-3 เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดชเต‹เดฒเต†, ns-3 เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดจเดฟเดฐเดตเดงเดฟ เดฎเดพเตผเด—เด™เตเด™เดณเตเดฃเตเดŸเต. เดจเดฎเตเดฎเตพ เดŠเดจเตเดจเดฟเดชเตเดชเดฑเดฏเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจ เดชเตเดฐเดงเดพเดจ เด•เดพเดฐเตเดฏเด‚, ns-3 เดŽเดจเตเดจ เดฌเดฟเตฝเดกเต เดŸเต‚เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฃเต เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เดตเดซเตเดคเดพเดดเต† เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดฎเดฟเด•เตเด• เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด‚ เดตเดซเต, เดŽเดจเตเดจเดพเตฝ เด•เต‚เดŸเตเดคเตฝ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เดฌเดฟเตฝเดกเตเด•เตพ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต‹ เด“เตผเด—เดจเตˆเดธเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต‹ เดจเดฟเด™เตเด™เดณเต† เดธเดนเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด•เตเดฑเดšเตเดšเต เดนเดพเตปเดกเดฟ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ เด‰เดฃเตเดŸเต. เด…เดคเดฟเดจเดพเตฝ, เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดฆเดฏเดตเดพเดฏเดฟ เดตเดซเต, เด’เดจเตเดจเต เดจเต‡เดพเด•เตเด•เดฟเด•เตเด•เต‡เดพเดณเต build.py เด•เต‚เดŸเต† เด…เดธเด‚เดฌเตเดฒเดฟเดฏเตเด‚ เดšเตเดŸเต‡เดฃเด‚.

3.4.1 build.py เด‰เดณเตเดณ เด•เต†เดŸเตเดŸเดฟเดŸเด‚

เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เต‚! เดฎเตเด•เดณเดฟเตฝ เดตเดฟเดตเดฐเดฟเดšเตเดšเดคเตเดชเต‹เดฒเต† เดฒเดญเดฟเดšเตเดš เด‰เดฑเดตเดฟเดŸ เด†เตผเด•เตเด•เตˆเดตเต เดชเดคเดฟเดชเตเดชเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเดพเดคเตเดฐเดฎเต‡ เดˆ เดฌเดฟเตฝเดกเต เดธเตเดฑเตเดฑเต†เดชเตเดชเต เดฒเดญเตเดฏเดฎเดพเด•เต‚; เด•เต‚เดŸเดพเดคเต† git เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ bake เดตเดดเดฟ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒ.

เด’เดฐเต เดฑเดฟเดฒเต€เดธเต เด†เตผเด•เตเด•เตˆเดตเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดŸเดพเตผเดฌเต‹เตพเด…เด•เดคเตเดคเต ns-3-เด…เดฒเตเดฒเดฟเดจเต‹เตบ เด˜เดŸเด•เด™เตเด™เตพ เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเต เดŽเดณเตเดชเตเดชเดฎเดพเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดนเดพเตปเดกเดฟ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด‰เดฃเตเดŸเต. เด…เดคเดฟเดจเต† build.py เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต. เดˆ เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดเดฑเตเดฑเดตเตเด‚ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเด‚. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดชเตเดฒเดฎเดพเดฏ เดธเดœเตเดœเต€เด•เดฐเดฃเดตเตเด‚ ns-3-เดจเตเดฎเดพเดฏเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเดตเตเด‚ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ ns-3-เดจเตเดฑเต† เดธเตเดตเดจเตเดคเด‚ เดฌเดฟเตฝเดกเต เดธเดฟเดธเตเดฑเตเดฑเดฎเดพเดฏ Waf เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต, เด…เดคเต เดˆ เดŸเตเดฏเต‚เดŸเตเดŸเต‹เดฑเดฟเดฏเดฒเดฟเตฝ เดชเดฟเดจเตเดจเต€เดŸเต เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเด•เตเด•เตเด‚.

เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดคเดพเตฝ เดŸเดพเตผเดฌเต‹เตพ, เดคเตเดŸเตผเดจเตเดจเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเตฝ ~/เดœเต‹เดฒเดฟเดธเตเดฅเดฒเด‚ เด‡เดคเตเดชเต‹เดฒเตเดณเตเดณ เดชเต‡เดฐเตเดณเตเดณ เด’เดฐเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เดŽเตปเดŽเดธเต-เด…เดฒเตเดฒเดฟเดจเต‹เตบ-3.29. เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เดจเตฝเด•เตเด•:

$ ./build.py --enable-examples --enable-tests

เดตเดฟเดณเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ build.py เดˆ เดŸเตเดฏเต‚เดŸเตเดŸเต‹เดฑเดฟเดฏเดฒเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เดณเตเด‚ เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเตเด‚ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เด…เดต ns-3-เตฝ เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒ. เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ, เดฒเดญเตเดฏเดฎเดพเดฏ เดŽเดฒเตเดฒเดพ เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเตเด‚ เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเต. เดคเตเดŸเตผเดจเตเดจเต, เดจเดฟเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ, เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เดณเตเด‚ เดชเดฐเดฟเดถเต‹เดงเดจเด•เดณเตเด‚ เด‡เดฒเตเดฒเดพเดคเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต ns-3 เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเด‚ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดœเต‹เดฒเดฟเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ เด’เดดเดฟเดตเดพเด•เตเด•เดพเด‚.

เดจเดฟเด™เตเด™เตพ เดฒเต‹เดกเต เดšเต†เดฏเตโ€Œเดค เดตเดฟเดตเดฟเดง เดญเดพเด—เด™เตเด™เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ เดธเตโ€Œเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เดงเดพเดฐเดพเดณเด‚ เด•เด‚เดชเตˆเดฒเตผ เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดจเดฟเด™เตเด™เตพ เด•เดพเดฃเตเด‚. เด†เดฆเตเดฏเด‚ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด†เดจเดฟเดฎเต‡เดฑเตเดฑเตผ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเด‚ netanim, เดชเดฟเดจเตเดจเต† เดฌเตˆเตปเดกเดฟเด‚เด—เต เดœเดจเดฑเต‡เดฑเตเดฑเตผ pybindgen เด’เดŸเตเดตเดฟเตฝ ns-3. เดชเตเดฐเด•เตเดฐเดฟเดฏ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเดฎเตเดชเต‹เตพ, เดจเดฟเด™เตเด™เตพ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เด•เดพเดฃเดฃเด‚:

Waf: Leaving directory '/path/to/workspace/ns-allinone-3.29/ns-3.29/build'
'build' finished successfully (6m25.032s) 

Modules built:
antenna                aodv                     applications
bridge                 buildings                config-store
core                   csma                     csma-layout
dsdv                   dsr                      energy 
fd-net-device          flow-monitor             internet
internet-apps          lr-wpan                  lte
mesh                   mobility                 mpi
netanim (no Python)    network                  nix-vector-routing 
olsr                   point-to-point           point-to-point-layout 
propagation            sixlowpan                spectrum 
stats                  tap-bridge               test (no Python) 
topology-read          traffic-control          uan 
virtual-net-device     visualizer               wave 
wifi                   wimax 

Modules not built (see ns-3 tutorial for explanation):
brite                  click                    openflow 
Leaving directory ./ns-3.29

เดฒเดฟเดธเตเดฑเตเดฑเดฟเด‚เด—เดฟเดจเตเดฑเต† เด…เดตเดธเดพเดจ เดฎเต‚เดจเตเดจเต เดตเดฐเดฟเด•เดณเดฟเตฝ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒเดพเดคเตเดค เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด’เดฐเต เดธเดจเตเดฆเต‡เดถเด‚ เดžเด™เตเด™เตพ เด•เดพเดฃเตเดจเตเดจเต:

Modules not built (see ns-3 tutorial for explanation):
brite                     click

เดฌเดพเดนเตเดฏ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเต† เด†เดถเตเดฐเดฏเดฟเด•เตเด•เตเดจเตเดจ เดšเดฟเดฒ ns-3 เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เดฃเดฎเต†เดจเตเดจเดฟเดฒเตเดฒ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดˆ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดพเดฏเดฟ เด…เดต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒ เดŽเดจเตเดจเดพเดฃเต เด‡เดคเดฟเดจเตผเดคเตเดฅเด‚. เด‡เดคเดฟเดจเตผเดคเตเดฅเด‚ เดธเดฟเดฎเตเดฒเต‡เดฑเตเดฑเตผ เด…เดธเด‚เดฌเดฟเตพ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เดจเตเดจเต‹ เด…เดธเด‚เดฌเดฟเตพ เดšเต†เดฏเตเดค เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ เดถเดฐเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดฟเดฒเตเดฒเต†เดจเตเดจเต‹ เด…เดฒเตเดฒ.

3.4.2 เดฌเต‡เด•เตเด•เดฟเดจเตŠเดชเตเดชเด‚ เด•เต†เดŸเตเดŸเดฟเดŸเด‚

เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเต‹เดดเตเดธเต เด•เต‹เดกเต เดฒเดญเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพ เดฎเตเด•เดณเดฟเตฝ เดฌเต‡เด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, ns-3 เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เดคเตเดŸเดฐเดพเด‚. เดกเดฏเตฝ เดšเต†เดฏเตเดฏเตเด•:

$ ./bake.py build

เดจเดฟเด™เตเด™เตพ เด‡เดคเตเดชเต‹เดฒเตเดณเตเดณ เด’เดจเตเดจเต เด•เดพเดฃเดฃเด‚:

>> Building pybindgen-0.19.0.post4+ng823d8b2 - OK 
>> Building netanim-3.108 - OK 
>> Building ns-3.29 - OK

เดŸเต‚เตพเดŸเดฟเดชเตเดชเต: "bake.py deploy" เดŽเดจเตเดจเต เดตเดฟเดณเดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต‡เดธเดฎเดฏเด‚ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด˜เดŸเตเดŸเด™เตเด™เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚.

เดŽเดฒเตเดฒเดพ เด˜เดŸเด•เด™เตเด™เดณเตเดŸเต†เดฏเตเด‚ เด…เดธเด‚เดฌเตเดฒเดฟ เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเดŸเต‡เด•เตเด•เดพเด‚, เดŽเดจเตเดจเดพเตฝ เด˜เดŸเด•เด‚ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดธเด‚เดฌเตเดฒเดฟ เดคเตเดŸเดฐเตเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดธเดฎเต€เดชเด•เดพเดฒ เดชเต‹เตผเดŸเตเดŸเดฌเดฟเดฒเดฟเดฑเตเดฑเดฟ เดชเตเดฐเดถเตเดจเด‚ เด…เดคเดพเดฏเดฟเดฐเตเดจเตเดจเต castxml เด‰เดชเด•เดฐเดฃเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เดพเดตเตเดจเตเดจเดคเดพเดฃเต เดšเตเดŸเต‡เดฃเด‚ เดŽเดฒเตเดฒเดพ เดชเตเดฒเดพเดฑเตเดฑเตเดซเต‹เดฎเตเด•เดณเดฟเดฒเตเด‚ เด…เดฒเตเดฒ. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด‡เดคเตเดชเต‹เดฒเตเดณเตเดณ เด’เดฐเต เดธเดจเตเดฆเต‡เดถเด‚ เดฆเตƒเดถเตเดฏเดฎเดพเด•เตเด‚:

>> Building castxml - Problem 
> Problem: Optional dependency, module "castxml" failed
This may reduce the functionality of the final build.
However, bake will continue since "castxml" is not an essential dependency.
For more information call bake with -v or -vvv, for full verbose mode.

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, castxml เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเตเดคเตเด•เตเด•เดฟเดฏ เดชเตˆเดคเตเดคเตบ เดฌเตˆเตปเดกเดฟเด‚เด—เตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดฃเดฎเต†เด™เตเด•เดฟเตฝ เดฎเดพเดคเตเดฐเด‚ เดฎเดคเดฟ. เดฎเดฟเด•เตเด• เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เตเด‚ เด‡เดคเดฟเดจเตเดฑเต† เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ (เด•เตเดฑเดžเตเดžเดคเต เด…เดตเตผ ns-3 เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเต เดตเดฐเต†), เด…เดคเดฟเดจเดพเตฝ เด…เดคเตเดคเดฐเด‚ เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพ เด‡เดชเตเดชเต‹เตพ เดธเตเดฐเด•เตเดทเดฟเดคเดฎเดพเดฏเดฟ เด…เดตเด—เดฃเดฟเด•เตเด•เดพเด‚.

เด‡เดคเต เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด•เดพเดฃเดพเดคเดพเดฏ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เดฎเดพเตปเดกเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดธเต‚เดšเดจ เดจเตฝเด•เตเด‚:

$ ./bake.py show

เดจเดฟเด™เตเด™เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจ เดชเดพเด•เตเด•เต‡เดœเตเด•เดณเตเดŸเต† เดตเดฟเดตเดฟเดง เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ เดฒเดฟเดธเตเดฑเตเดฑเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚.

3.4.3 เดตเดพเดซเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเด•

เดˆ เด˜เดŸเตเดŸเด‚ เดตเดฐเต†, ns-3 เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป, เดžเด™เตเด™เตพ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต build.py, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด‰เดชเด•เดฐเดฃเด‚ เดšเตเดŸเต‡เดฃเด‚. ns-3 เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เดชเดฐเดฟเดชเดพเดฒเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดˆ เด‰เดชเด•เดฐเดฃเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฃเต. เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เด…เดตเตผ เดฌเดฟเตฝเดกเต เดŸเต‚เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต เดตเดซเต ns-3 เดŽเดจเตเดจ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต. เดตเดซเต ns-3 เดธเต‹เดดเตเดธเต เด•เต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเต. เดฎเดฟเด•เตเด• เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเด‚ nsโ€‘3 เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚ เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฎเดพเดฏเดฟ เดจเต‡เดฐเดฟเดŸเตเดŸเตเดณเตเดณ เด‰เดชเดฏเต‹เด—เดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดตเต‡เด—เดคเตเดคเดฟเตฝ เดจเต€เด™เตเด™เตเดจเตเดจเต เดตเดซเต. เด…เดคเดฟเดจเดพเตฝ, เดคเตเดŸเดฐเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพ เด†เดฆเตเดฏเด‚ เดธเตƒเดทเตเดŸเดฟเดšเตเดš ns-3 เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเด•.

เดˆ เดธเดฎเดฏเดคเตเดคเต เด‡เดคเต เด•เตผเดถเดจเดฎเดพเดฏเดฟ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ, เดชเด•เตเดทเต‡ เด•เตเดฑเดšเตเดšเต เดชเดฟเดจเตเดจเต‹เดŸเตเดŸเต เดŸเตเดฐเดพเด•เตเด•เต เดšเต†เดฏเตเดคเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเตฝ เดŽเด™เตเด™เดจเต† เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดตเดฐเตเดคเตเดคเดพเดฎเต†เดจเตเดจเต เดจเต‹เด•เตเด•เตเดจเตเดจเดคเต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเด•เตเด‚. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดตเดฐเตเดคเตเดคเดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เดเดฑเตเดฑเดตเตเด‚ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดฎเดพเดฑเตเดฑเด‚ เด•เต‹เดกเดฟเดจเตเดฑเต† เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต เดšเต†เดฏเตเดค เดชเดคเดฟเดชเตเดชเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต. เดกเดฟเดซเต‹เตพเดŸเตเดŸเดพเดฏเดฟ, เด’เดฐเต เดกเต€เดฌเด—เต เดชเดคเดฟเดชเตเดชเต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดจเดฟเด™เตเด™เตพ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เด•เตเดฐเดฎเต€เด•เดฐเดฟเดšเตเดšเต. เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต เดšเต†เดฏเตเดค เด’เดฐเต เดฌเดฟเตฝเดกเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดจเดฎเตเด•เตเด•เต เดจเต‹เด•เตเด•เดพเด‚. เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เดณเตเด‚ เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเตเด‚ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจ เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต เดšเต†เดฏเตเดค เดฌเดฟเตฝเดกเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดฃเดฎเต†เดจเตเดจเต Waf-เดจเต‹เดŸเต เดตเดฟเดถเดฆเต€เด•เดฐเดฟเด•เตเด•เดพเตป, เดจเดฟเด™เตเด™เตพ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เดฎเดพเตปเดกเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต:

$ ./waf clean 
$ ./waf configure --build-profile=optimized --enable-examples --enable-tests

เด‡เดคเต เดฒเต‹เดžเตเดšเต เดšเต†เดฏเตเดฏเตเด‚ เดตเดซเต เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เดกเดฏเดฑเด•เตเดŸเดฑเดฟเด•เตเด•เต เดชเตเดฑเดคเตเดคเต (เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเต—เด•เดฐเตเดฏเดคเตเดคเดฟเดจเต). เด†เดฆเตเดฏ เด•เดฎเดพเตปเดกเต เดฎเตเดฎเตเดชเดคเตเดคเต† เดฌเดฟเตฝเดกเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตƒเดคเตเดคเดฟเดฏเดพเด•เตเด•เตเดจเตเดจเต, เด‡เดคเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด•เตผเดถเดจเดฎเดพเดฏเดฟ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ, เดชเด•เตเดทเต‡ เด‡เดคเต เดจเดฒเตเดฒ เดชเดฐเดฟเดถเต€เดฒเดจเดฎเดพเดฃเต (เดšเตเดตเดŸเต†เดฏเตเดณเตเดณ เดฌเดฟเตฝเดกเต เดชเตเดฐเตŠเดซเตˆเดฒเตเด•เดณเตเด‚ เด•เดพเดฃเตเด•); เด‡เดคเต เดฎเตเดฎเตเดชเต เดธเตƒเดทเตเดŸเดฟเดšเตเดš เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเตเด‚ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเดฒเตเดณเตเดณ เด’เดฌเตเดœเด•เตเดฑเตเดฑเต เดซเดฏเดฒเตเด•เดณเตเด‚ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเด‚ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเด•/. เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดชเตเดจเดƒเด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดฌเดฟเตฝเดกเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดตเดฟเดตเดฟเดง เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ, เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดคเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฏ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดจเดฟเด™เตเด™เตพ เด•เดพเดฃเตเด‚:

Setting top to      : /home/ns3user/workspace/bake/source/ns-3-dev
Setting out to      : /home/ns3user/workspace/bake/source/ns-3-dev/build
Checking for 'gcc' (C compiler)        : /usr/bin/gcc 
Checking for cc version                : 7.3.0 
Checking for 'g++' (C++ compiler)      : /usr/bin/g++ 
Checking for compilation flag -march=native support : ok 
Checking for compilation flag -Wl,--soname=foo support : ok 
Checking for compilation flag -std=c++11 support       : ok 
Checking boost includes   : headers not found, please ,!provide a --boost-includes argument (see help) 
Checking boost includes   : headers not found, please ,!provide a --boost-includes argument (see help) 
Checking for program 'python'            : /usr/bin/python 
Checking for python version >= 2.3       : 2.7.15 python-config                                                                     : /usr/bin/python-config
Asking python-config for pyembed '--cflags --libs --ldflags' flags : yes
Testing pyembed configuration                                      : yes
Asking python-config for pyext '--cflags --libs --ldflags' flags   : yes
Testing pyext configuration                                        : yes

Checking for compilation flag -fvisibility=hidden support          : ok 
Checking for compilation flag -Wno-array-bounds support            : ok 
Checking for pybindgen location          : ../pybindgen ,!(guessed) 
Checking for python module 'pybindgen'   : 0.19.0. ,!post4+g823d8b2 
Checking for pybindgen version           : 0.19.0. ,!post4+g823d8b2 
Checking for code snippet                : yes 
Checking for types uint64_t and unsigned long equivalence : no 
Checking for code snippet                                 : no 
Checking for types uint64_t and unsigned long long equivalence     : yes 
Checking for the apidefs that can be used for Python bindings                       : gcc-LP64 
Checking for internal GCC cxxabi         : complete 
Checking for python module 'pygccxml'    : not found 
Checking for click location              : not found 
Checking for program 'pkg-config'        : /usr/bin/pkg- ,!config 
Checking for 'gtk+-3.0'                  : not found 
Checking for 'libxml-2.0'                : yes 
checking for uint128_t                   : not found 
checking for __uint128_t                 : yes 
Checking high precision implementation   : 128-bit integer ,!(default) 
Checking for header stdint.h             : yes 
Checking for header inttypes.h           : yes 
Checking for header sys/inttypes.h       : not found 
Checking for header sys/types.h          : yes 
Checking for header sys/stat.h           : yes 
Checking for header dirent.h             : yes 
Checking for header stdlib.h             : yes 
Checking for header signal.h             : yes 
Checking for header pthread.h            : yes 
Checking for header stdint.h             : yes 
Checking for header inttypes.h           : yes 
Checking for header sys/inttypes.h       : not found
Checking for library rt                  : yes 
Checking for header sys/ioctl.h          : yes 
Checking for header net/if.h             : yes 
Checking for header net/ethernet.h       : yes 
Checking for header linux/if_tun.h       : yes 
Checking for header netpacket/packet.h   : yes 
Checking for NSC location                : not found 
Checking for 'sqlite3'                   : not found 
Checking for header linux/if_tun.h       : yes 
Checking for python module 'gi'          : 3.26.1 
Checking for python module 'gi.repository.GObject'      : ok 
Checking for python module 'cairo'                      : ok 
Checking for python module 'pygraphviz'                 : 1.4rc1 
Checking for python module 'gi.repository.Gtk'          : ok 
Checking for python module 'gi.repository.Gdk'          : ok 
Checking for python module 'gi.repository.Pango'        : ok 
Checking for python module 'gi.repository.GooCanvas'    : ok 
Checking for program 'sudo'                             : /usr/bin/sudo 
Checking for program 'valgrind'                         : not found 
Checking for 'gsl' : not found python-config            : not found 
Checking for compilation flag -fstrict-aliasing support : ok 
Checking for compilation flag -fstrict-aliasing support : ok 
Checking for compilation flag -Wstrict-aliasing support : ok 
Checking for compilation flag -Wstrict-aliasing support : ok 
Checking for program 'doxygen'                          : /usr/bin/doxygen
---- Summary of optional ns-3 features:
Build profile : optimized
Build directory : 
BRITE Integration : not enabled (BRITE not enabled (see option --with- ,!brite)) 
DES Metrics event collection : not enabled (defaults to disabled) 
Emulation FdNetDevice        : enabled 
Examples                     : enabled 
File descriptor NetDevice    : enabled 
GNU Scientific Library (GSL) : not enabled (GSL not found) 
Gcrypt library               : not enabled
(libgcrypt not found: you can use ,!libgcrypt-config to find its location.) GtkConfigStore               : not enabled (library 'gtk+-3.0 >= 3.0' not fou   nd)
MPI Support                  : not enabled (option --enable-mpi not selected)
ns-3 Click Integration       : not enabled (nsclick not enabled (see option --with- ,!nsclick))
ns-3 OpenFlow Integration   : not enabled (Required boost libraries not found) 
Network Simulation Cradle    : not enabled (NSC not found (see option --with-nsc))
PlanetLab FdNetDevice         : not enabled (PlanetLab operating system not detected ,!(see option --force-planetlab)) PyViz visualizer : enabled 
Python API Scanning Support   : not enabled (Missing 'pygccxml' Python module)
Python Bindings : enabled 
Real Time Simulator           : enabled 
SQlite stats data output      : not enabled (library 'sqlite3' not found)
Tap Bridge                    : enabled 
Tap FdNetDevice               : enabled
Tests                         : enabled 
Threading Primitives          : enabled 
Use sudo to set suid bit   : not enabled (option --enable-sudo not selected)
XmlIo                         : enabled
'configure' finished successfully (6.387s)

เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เดฒเดฟเดธเตเดฑเตเดฑเดฟเด‚เด—เดฟเดจเตเดฑเต† เด…เดตเดธเดพเดจ เดญเดพเด—เด‚ เดฆเดฏเดตเดพเดฏเดฟ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•. เดšเดฟเดฒ ns-3 เด“เดชเตเดทเดจเตเด•เตพ เดกเดฟเดซเต‹เตพเดŸเตเดŸเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดถเดฐเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดธเดฟเดธเตเดฑเตเดฑเด‚ เดชเดฟเดจเตเดคเตเดฃ เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, XmlTo เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดพเตป, เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดฒเตˆเดฌเตเดฐเดฑเดฟ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚ libxml-2.0. เดˆ เดฒเตˆเดฌเตเดฐเดฑเดฟ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด…เดจเตเดฌเดจเตเดง ns-3 เดซเด‚เด—เตโ€Œเดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟเดฏเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด’เดฐเต เดธเดจเตเดฆเต‡เดถเด‚ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเด‚. เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดฎเต†เดจเตเดจเดคเตเด‚ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด• เดธเตเดกเต‹ เดšเดฟเดฒ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เตพเด•เตเด•เดพเดฏเดฟ "เดฑเตบเดŸเตˆเดฎเดฟเตฝ เด—เตเดฐเต‚เดชเตเดชเต เดเดกเดฟ เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด•" เดŽเดจเตเดจ suid เดฌเดฟเดฑเตเดฑเต เดธเดœเตเดœเดฎเดพเด•เตเด•เดพเตป. เด‡เดคเต เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒ, เด…เดคเดฟเดจเดพเตฝ เดˆ เดธเดตเดฟเดถเต‡เดทเดค "เดชเตเดฐเดพเดชเตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒ" เดŽเดจเตเดจเต เดฆเตƒเดถเตเดฏเดฎเดพเด•เตเดจเตเดจเต. เด…เดตเดธเดพเดจเดฎเดพเดฏเดฟ, เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟเดฏ เด“เดชเตเดทเดจเตเด•เดณเตเดŸเต† เด’เดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดฒเดญเดฟเด•เตเด•เดพเตป, เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• เดตเดซเต เดชเดฐเดพเดฎเต€เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต --check-config.

เด‡เดจเดฟ เดจเดฎเตเด•เตเด•เต เดคเดฟเดฐเดฟเด•เต† เดชเต‹เดฏเดฟ เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เดณเตเด‚ เดชเดฐเดฟเดถเต‹เดงเดจเด•เดณเตเด‚ เด…เดŸเด™เตเด™เดฟเดฏ เดกเต€เดฌเด—เต เดฌเดฟเตฝเดกเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เดพเด‚.

$ ./waf clean 
$ ./waf configure --build-profile=debug --enable-examples --enable-tests

เดฌเดฟเตฝเดกเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เด‡เดชเตเดชเต‹เตพ เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŸเตˆเดชเตเดชเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† ns-3 เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เดณเตเดŸเต† เดกเต€เดฌเด—เต เดชเดคเดฟเดชเตเดชเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚:

$ ./waf

เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เด˜เดŸเตเดŸเด™เตเด™เตพ ns-3 เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต† เด’เดฐเต เดญเดพเด—เด‚ เดฐเดฃเตเดŸเตเดคเดตเดฃ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เดจเดฟเตผเดฌเดจเตเดงเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เดพเด‚, เดŽเดจเตเดจเดพเตฝ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดŽเด™เตเด™เดจเต† เดฎเดพเดฑเตเดฑเดพเดฎเต†เดจเตเดจเตเด‚ เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต เดšเต†เดฏเตเดค เด•เต‹เดกเต เดŽเด™เตเด™เดจเต† เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเตเด‚ เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพเด•เตเด•เดฑเดฟเดฏเดพเด‚.

เดคเดจเตเดจเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดพเดฏเดฟ เดเดคเต เดชเตเดฐเตŠเดซเตˆเตฝ เดธเดœเต€เดตเดฎเดพเดฃเต†เดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเตป, เด’เดฐเต เด•เดฎเดพเตปเดกเต เด‰เดฃเตเดŸเต:

$ ./waf --check-profile 
Waf: Entering directory `/path/to/ns-3-allinone/ns-3.29/build' 
Build profile: debug

เดฎเตเด•เดณเดฟเตฝ เดชเดฑเดžเตเดž เดฐเด‚เด—เด‚ build.py เดตเดพเดฆเด™เตเด™เดณเต†เดฏเตเด‚ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต --enable-examples ะธ --enable-tests, เดŽเดจเตเดจเดพเตฝ เดฎเดฑเตเดฑเต เด“เดชเตเดทเดจเตเด•เตพ เดตเดซเต เด…เดคเต เดจเต‡เดฐเดฟเดŸเตเดŸเต เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด‡เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดฟเดฒเตเดฒ:

$ ./build.py --disable-python

เดชเตเดฐเดคเดฟเด•เดฐเดฃเด‚ เด‡เดคเตเดชเต‹เดฒเต†เดฏเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚:

build.py: error: no such option: --disable-python

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดชเตเดฐเดคเตเดฏเต‡เด• เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ - - เดตเดดเดฟ เด…เดงเดฟเด• เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เด•เตˆเดฎเดพเดฑเดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚ เดตเดพเดซเตเด…เดคเดฟเดจเดพเตฝ เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณเดคเดฟเดจเต เดชเด•เดฐเด‚ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด‚:

$ ./build.py -- --disable-python

เด•เดพเดฐเดฃเด‚ เด…เดคเต เดชเตเดฐเดงเดพเดจ เด•เดฎเดพเตปเดกเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต ./waf เด•เต‹เตบเดซเดฟเด—เตผ --disable-python. เด‡เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เต‚เดŸเตเดคเตฝ เด†เดฎเตเด– เดจเตเดฑเตเด™เตเด™เตเด•เตพ เด‡เดคเดพ เดตเดซเต.

เดจเดฟเตผเดฎเตเดฎเดพเดฃ เดชเดฟเดถเด•เตเด•เตพ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เดธเดพเดงเดพเดฐเดฃ Linux, MacOS เดตเดฟเดคเดฐเดฃเด™เตเด™เดณเดฟเตฝ เดฑเดฟเดฒเต€เดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจ เดธเดฎเดฏเดคเตเดคเต เดฒเดญเตเดฏเดฎเดพเดฏ เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ C++ เด•เด‚เดชเตˆเดฒเดฑเตเด•เดณเดฟเตฝ ns-3 เดฑเดฟเดฒเต€เดธเตเด•เตพ เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด•เดพเดฒเด•เตเดฐเดฎเต‡เดฃ, เดชเตเดคเดฟเดฏ เด•เด‚เดชเตˆเดฒเดฑเตเด•เตพเด•เตเด•เตŠเดชเตเดชเด‚ เดชเตเดคเดฟเดฏ เดตเดฟเดคเดฐเดฃเด™เตเด™เตพ เดชเตเดฑเดคเตเดคเดฟเดฑเด™เตเด™เตเดจเตเดจเต, เดˆ เดชเตเดคเดฟเดฏ เด•เด‚เดชเตˆเดฒเดฑเตเด•เตพ เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เต‚เดŸเตเดคเตฝ เดคเตฝเด•เตเดทเดฃเด‚ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต. เดŽเดฒเตเดฒเดพ เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเตเด•เดณเตเด‚ เดชเดฟเดถเด•เตเด•เดณเดพเดฏเดฟ เด•เดฃเด•เตเด•เดพเด•เตเด•เดพเตป ns-3 เด…เดคเดฟเดจเตเดฑเต† เดฌเดฟเตฝเดกเต เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเดพเตฝ เดšเดฟเดฒเดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดชเตเดคเดฟเดฏ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดชเดดเดฏ เดชเดคเดฟเดชเตเดชเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด’เดฐเต เด•เด‚เดชเตˆเดฒเตผ เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเต เดฌเดฟเตฝเดกเต เดจเดฟเตผเดคเตเดคเดฟเดฏเต‡เด•เตเด•เดพเด‚.

เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดซเต†เดกเต‹เดฑ 3.28-เดจเต เดฎเตเดฎเตเดชเต nsโ€‘28 เดจเตเดฑเต† เด’เดฐเต เดฑเดฟเดฒเต€เดธเต เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต, เด…เดคเดฟเตฝ เด’เดฐเต เดชเตเดคเดฟเดฏ เดชเตเดฐเดงเดพเดจ เดชเดคเดฟเดชเตเดชเต เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต. เดœเดฟเดธเดฟ (gcc-8). เดซเต†เดกเต‹เดฑ 3.28-เดจเต เด•เต€เดดเดฟเตฝ เดฑเดฟเดฒเต€เดธเต ns-28 เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเตเดฎเตเดชเดคเตเดคเต† เดชเดคเดฟเดชเตเดชเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเต, Gtk2+ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเดพเตฝ, เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดชเดฟเดถเด•เต เดธเด‚เดญเดตเดฟเด•เตเด•เตเด‚:

/usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:59:8: error: unnecessary parentheses ,!in declaration of โ€˜__gtk_reserved1โ€™ [-Werror=parentheses] void (*__gtk_reserved1);

nsโ€‘3.28.1 เดฎเตเดคเตฝ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจ เดฑเดฟเดฒเต€เดธเตเด•เดณเดฟเตฝ, เด‡เตป เดตเดซเต เดˆ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเตป เด’เดฐเต เด“เดชเตเดทเตป เดฒเดญเตเดฏเดฎเดพเดฃเต. g++, clang++ เดŽเดจเตเดจเดฟเดตเดฏเดฟเตฝ "-Werror" เดซเตเดฒเดพเด—เต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เด‡เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต. เด‡เดคเดพเดฃเต "--disable-werror" เด“เดชเตเดทเตป, เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดธเดฎเดฏเดคเตเดคเต เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดพเดฃเต:

$ ./waf configure --disable-werror --enable-examples --enable-tests

เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเด• เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เตเด•

เดšเดฟเดฒ เด•เดฎเดพเตปเดกเตเด•เตพ เดตเดซเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเต‡ เด…เตผเดคเตเดฅเดฎเตเดณเตเดณเต‚, เดšเดฟเดฒเดคเต เดจเดฟเตผเดฎเตเดฎเดพเดฃ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเต‡ เดธเดพเดงเตเดคเดฏเตเดณเตเดณเต‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เต ns-3 เดŽเดฎเตเดฒเต‡เดทเตป เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฌเดฟเดฑเตเดฑเต เด•เตเดฐเดฎเต€เด•เดฐเดฃเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดพเด‚ เดคเต†เด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต เดธเตเดกเต‹, เดฎเตเด•เดณเดฟเตฝ เดตเดฟเดตเดฐเดฟเดšเตเดšเดคเตเดชเต‹เดฒเต†. เด‡เดคเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดธเตเดฑเตเดฑเต†เดชเตเดชเต เด•เดฎเดพเตปเดกเตเด•เตพ เด…เดธเดพเดงเตเดตเดพเด•เตเด•เตเด‚, เด…เดคเดฟเดจเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดฎเดพเดฑเตเดฑเดพเด‚, เด…เดคเดฟเตฝ เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เดณเตเด‚ เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเตเด‚ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต.

$ ./waf configure --enable-sudo --enable-examples --enable-tests

เดจเดฟเด™เตเด™เตพ เด‡เดคเต เดšเต†เดฏเตเดคเดพเตฝ เดตเดซเต เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด‚ เดธเตเดกเต‹เดŽเดฎเตเดฒเต‡เดทเตป เด•เต‹เดกเต เดธเต‹เด•เตเด•เดฑเตเดฑเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตฝ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เตพ เด…เดจเตเดฎเดคเดฟเด•เดณเต‹เดŸเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเดพเดฑเตเดฑเดพเตป เดตเต‡เดฐเต. เดฆเดฟ เดตเดซเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป, เดฌเดฟเตฝเดกเต เดธเตเดฑเตเดฑเต†เดชเตเดชเตเด•เตพ เดŽเดจเตเดจเดฟเดตเดฏเตเด•เตเด•เดพเดฏเดฟ เดฎเดฑเตเดฑเต เดจเดฟเดฐเดตเดงเดฟ เด“เดชเตเดทเดจเตเด•เตพ เดฒเดญเตเดฏเดฎเดพเดฃเต. เดจเดฟเด™เตเด™เดณเตเดŸเต† เด“เดชเตเดทเดจเตเด•เตพ เดชเดฐเตเดฏเดตเต‡เด•เตเดทเดฃเด‚ เดšเต†เดฏเตเดฏเดพเตป, เดจเตฝเด•เตเด•:

$ ./waf --help

เด…เดŸเตเดคเตเดค เดตเดฟเดญเดพเด—เดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ เดšเดฟเดฒ เดชเดฐเดฟเดถเต‹เดงเดจเดฏเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เด“เดชเตเดทเดจเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚.

เด…เดธเด‚เดฌเตเดฒเดฟ เดชเตเดฐเตŠเดซเตˆเดฒเตเด•เตพ

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŽเด™เตเด™เดจเต† เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเต เดžเด™เตเด™เตพ เด‡เดคเดฟเดจเด•เด‚ เด•เดฃเตเดŸเต เดตเดซเต เด…เดธเด‚เดฌเตเดฒเดฟเด•เตพเด•เตเด•เดพเดฏเดฟ เดกเต€เดฌเด—เต ะธ เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต เดšเต†เดฏเตเดคเต:

$ ./waf --build-profile=debug

เด’เดฐเต เด‡เดจเตเดฑเตผเดฎเต€เดกเดฟเดฏเดฑเตเดฑเต เด…เดธเด‚เดฌเตเดฒเดฟ เดชเตเดฐเตŠเดซเตˆเดฒเตเด‚ เด‰เดฃเตเดŸเต, เดฑเดฟเดฒเต€เดธเต. เด“เดชเตเดทเตป -d เดŽเดจเตเดจเดคเดฟเดจเตเดฑเต† เดชเดฐเตเดฏเดพเดฏเดฎเดพเดฃเต --build-profile. เดฌเดฟเตฝเดกเต เดชเตเดฐเตŠเดซเตˆเตฝ เดฒเต‹เด—เดฟเด‚เด—เต, เด…เดธเต†เตผเดทเดจเตเด•เตพ, เด•เด‚เดชเตˆเดฒเตผ เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต‡เดทเตป เดธเตเดตเดฟเดšเตเดšเตเด•เตพ เดŽเดจเตเดจเดฟเดตเดฏเตเดŸเต† เด‰เดชเดฏเต‹เด—เด‚ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจเต:

ns-3 เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดธเดฟเดฎเตเดฒเต‡เดฑเตเดฑเตผ เดŸเตเดฏเต‚เดŸเตเดŸเต‹เดฑเดฟเดฏเตฝ. เด…เดงเตเดฏเดพเดฏเด‚ 3

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเดจเดพเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เดฒเต‹เด—เดฟเด‚เด—เตเด‚ เด…เดตเด•เดพเดถเดตเดพเดฆเด™เตเด™เดณเตเด‚ เดกเต€เดฌเด—เต เดฌเดฟเตฝเดกเตเด•เดณเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเต‡ เดฒเดญเตเดฏเดฎเดพเด•เต‚. เดกเต€เดฌเด—เต เดฎเต‹เดกเดฟเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตโ€Œเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเด•, เดคเตเดŸเตผเดจเตเดจเต เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต เดšเต†เดฏเตโ€Œเดค เดฌเดฟเตฝเดกเต เดชเตเดฐเตŠเดซเตˆเดฒเดฟเตฝ เด†เดตเตผเดคเตเดคเดฟเดšเตเดšเตเดณเตเดณ เดฑเดฃเตเดฃเตเด•เตพ (เดธเตเดฅเดฟเดคเดฟเดตเดฟเดตเดฐเด•เตเด•เดฃเด•เตเด•เตเด•เตพเด•เตเด•เต‹ โ€‹โ€‹เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดฎเดพเดฑเตเดฑเด™เตเด™เตพเด•เตเด•เต‹) เดจเดŸเดคเตเดคเตเด• เดŽเดจเตเดจเดคเดพเดฃเต เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจ เดฐเต€เดคเดฟ.

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดšเดฟเดฒ เดฌเดฟเตฝเดกเต เดชเตเดฐเตŠเดซเตˆเดฒเตเด•เดณเดฟเตฝ เดฎเดพเดคเตเดฐเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เต‡เดฃเตเดŸ เด•เต‹เดกเต เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด•เต‹เดกเต เดฑเดพเดชเตเดชเตผ เดฎเดพเด•เตเดฐเต‹ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•:

NS_BUILD_DEBUG (std::cout << "Part of an output line..." << std::flush; timer.Start ,!()); DoLongInvolvedComputation ();
NS_BUILD_DEBUG (timer.Stop (); std::cout << "Done: " << timer << std::endl;)

เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ, เดตเดซเต เดฌเดฟเตฝเดกเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเตฝ เดชเตเดฐเดพเดตเดธเตเดคเตเด•เตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจ เดธเตเดฅเดฒเด™เตเด™เตพ. เด“เดชเตเดทเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฎเดฑเตเดฑเตŠเดฐเต เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚ -โ€ฏ-outเด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต:

$ ./waf configure --out=my-build-dir

เดฌเดฟเตฝเดกเต เดชเตเดฐเตŠเดซเตˆเดฒเตเด•เดณเตเดฎเดพเดฏเดฟ เด‡เดคเต เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดตเตเดฏเดคเตเดฏเดธเตเดค เด•เด‚เดชเตˆเดฒเต‡เดทเตป เด“เดชเตเดทเดจเตเด•เตพเด•เตเด•เดฟเดŸเดฏเดฟเตฝ เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดฎเดพเดฑเดพเดจเดพเด•เตเด‚:

$ ./waf configure --build-profile=debug --out=build/debug
$ ./waf build
... 
$ ./waf configure --build-profile=optimized --out=build/optimized 
$ ./waf build
...

เด“เดฐเต‹ เดคเดตเดฃเดฏเตเด‚ เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เด…เดธเด‚เดฌเตเดฒเดฟ เดฎเดพเดฑเตเดฑเดฟเดฏเต†เดดเตเดคเดพเดคเต† เดคเดจเตเดจเต† เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เด…เดธเด‚เดฌเตเดฒเดฟเด•เดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด‡เดคเต เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เดจเดฟเด™เตเด™เตพ เดฎเดฑเตเดฑเตŠเดฐเต เดชเตเดฐเตŠเดซเตˆเดฒเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฎเตเดชเต‹เตพ, เดตเดซเต เดŽเดฒเตเดฒเดพเด‚ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดตเต€เดฃเตเดŸเตเด‚ เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเดพเดคเต† เด…เดคเต เดฎเดพเดคเตเดฐเด‚ เดธเดฎเดพเดนเดฐเดฟเด•เตเด•เตเด‚.

เดจเดฟเด™เตเด™เตพ เดˆ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดฌเดฟเตฝเดกเต เดชเตเดฐเตŠเดซเตˆเดฒเตเด•เตพ เดฎเดพเดฑเตเดฎเตเดชเต‹เตพ, เด“เดฐเต‹ เดคเดตเดฃเดฏเตเด‚ เด’เดฐเต‡ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด“เดชเตเดทเดจเตเด•เตพ เดจเตฝเด•เดพเตป เดจเดฟเด™เตเด™เตพ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดจเดฟเดฐเดตเดงเดฟ เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจเดคเต เดคเต†เดฑเตเดฑเตเด•เตพ เด’เดดเดฟเดตเดพเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เดธเดนเดพเดฏเดฟเด•เตเด•เตเด‚:

$ export NS3CONFIG="--enable-examples --enable-tests" 
$ export NS3DEBUG="--build-profile=debug --out=build/debug"
$ export NS3OPT=="--build-profile=optimized --out=build/optimized" 

$ ./waf configure $NS3CONFIG $NS3DEBUG
$ ./waf build 
... 
$ ./waf configure $NS3CONFIG $NS3OPT
$ ./waf build

เด•เด‚เดชเตˆเดฒเดฑเตเด•เดณเตเด‚ เดชเดคเดพเด•เด•เดณเตเด‚

เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เดณเดฟเตฝ เดตเดซเต ns-3 เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต GCC-เดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ C++ เด•เดฎเตเดชเตˆเดฒเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต ( g ++). เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดจเดฟเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด’เดจเตเดจเต เดฎเดพเดฑเตเดฑเดพเตป เด•เดดเดฟเดฏเตเด‚ เดตเดซเต C++ เด•เด‚เดชเตˆเดฒเตผ, CXX เดŽเตปเดตเดฏเต‹เตบเดฎเต†เดจเตเดฑเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดจเดฟเตผเดตเดšเดฟเดšเตเดšเตเด•เตŠเดฃเตเดŸเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, C++ เด•เด‚เดชเตˆเดฒเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต Clang, clang++,

$ CXX="clang++" ./waf configure 
$ ./waf build 

เด…เดคเต‡ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เดพเด‚ เดตเดซเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดค เดธเดฎเดพเดนเดพเดฐเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต distcc:

$ CXX="distcc g++" ./waf configure 
$ ./waf build

distcc, เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดค เดธเดฎเดพเดนเดพเดฐเด‚ เดŽเดจเตเดจเดฟเดตเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดตเดฐเด™เตเด™เตพ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เดตเดฟเดญเดพเด—เดคเตเดคเดฟเดฒเต† เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดชเต‡เดœเดฟเตฝ เด•เดพเดฃเดพเด‚. ns-3 เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เด•เด‚เดชเตˆเดฒเตผ เดซเตเดฒเดพเด—เตเด•เตพ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, CXXFLAGS_EXTRA เดŽเตปเดตเดฏเต‹เตบเดฎเต†เดจเตเดฑเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•.

เด‡เตปเดธเตเดฑเตเดฑเดฒเต‡เดทเตป

เดตเดซเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดตเดฟเดตเดฟเดง เดธเตเดฅเดฒเด™เตเด™เดณเดฟเตฝ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ, เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดค เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเตเด‚ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเดณเตเด•เดณเตเด‚ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเตฝ เดธเตเดฅเดฟเดคเดฟเดšเต†เดฏเตเดฏเตเดจเตเดจเต เดชเดฃเดฟเดฏเตเด•เดˆ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเตเดŸเต†เดฏเตเด‚ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเดณเตเด•เดณเตเดŸเต†เดฏเตเด‚ เดธเตเดฅเดพเดจเด‚ เดตเดพเดซเดฟเดจเต เด…เดฑเดฟเดฏเดพเดตเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดฎเดฑเตเดฑเต†เดตเดฟเดŸเต†เดฏเตเด‚ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ.

เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดฌเดฟเตฝเดกเต เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเด•เตเด•เต เดชเตเดฑเดคเตเดคเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ, เด…เดตเตผเด•เตเด•เต เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚ ./waf เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•. เด‡เตปเดธเตเดฑเตเดฑเดฒเต‡เดทเดจเตเดณเตเดณ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดชเตเดฐเดฟเดซเดฟเด•เตเดธเต เด†เดฃเต / usr / localเด…เดคเดฟเดจเดพเตฝ ./waf เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด• เดŽเดจเตเดจเดคเดฟเตฝ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด‚ / usr / local / bin, เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ / usr / local / lib เด•เต‚เดŸเดพเดคเต† เดนเต†เดกเตเดกเตผ เดซเดฏเดฒเตเด•เดณเตเด‚ /usr/local/เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเตเด•. เดธเต‚เดชเตเดชเตผ เดฏเต‚เดธเตผ เด…เดตเด•เดพเดถเด™เตเด™เตพ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด’เดฐเต เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดชเตเดฐเดฟเดซเดฟเด•เตเดธเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เด…เดคเดฟเดจเดพเตฝ เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เด•เดฎเดพเตปเดกเต เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเด‚ sudo ./waf เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•. เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, Waf เด†เดฆเตเดฏเด‚ เดฌเดฟเตฝเดกเต เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเดฟเดฒเต† เดชเด™เตเด•เดฟเดŸเตเดŸ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด‚, เดคเตเดŸเตผเดจเตเดจเต เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ เด•เตเดฐเดฎเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดชเดพเดคเดฏเดฟเตฝ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพเด•เตเด•เดพเดฏเดฟ เดคเดฟเดฐเดฏเตเด•. เด…เดคเดฟเดจเดพเตฝ เด’เดฐเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ, เดถเดฐเดฟเดฏเดพเดฏ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต‹ เดŽเดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเดคเต เดจเดฒเตเดฒเดคเดพเดฃเต. เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดธเดฎเดฏเดคเตเดคเต เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เต เด“เดชเตเดทเตป เดชเดพเดธเตเดธเดพเด•เตเด•เดฟ เดฎเดฑเตเดฑเตŠเดฐเต เดชเตเดฐเดฟเดซเดฟเด•เตเดธเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเตป เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เดพเด‚ --prefixเด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต:

./waf configure --prefix=/opt/local

เดชเดฟเดจเตเดจเต€เดŸเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดฌเดฟเตฝเดกเดฟเดจเต เดถเต‡เดทเด‚, เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เด‡เตปเดธเตเดฑเตเดฑเดฒเต‡เดทเตป เด•เดฎเดพเตปเดกเต เดจเตฝเด•เตเดจเตเดจเต ./waf, เดชเตเดฐเดฟเดซเดฟเด•เตเดธเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚ /เด“เดชเตเดฑเตเดฑเต/เดฒเต‹เด•เตเด•เตฝ.

เดŸเต€เด‚ ./waf clean เด‡เตปเดธเตเดฑเตเดฑเดฒเต‡เดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ เดชเตเดฐเตŠเดœเด•เตเดฑเตเดฑเต เดชเตเดจเดƒเด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดพเดฃเต เดตเดซเต เดฎเดฑเตเดฑเตŠเดฐเต เดชเตเดฐเดฟเดซเดฟเด•เตโ€Œเดธเดฟเดจเต เด•เต€เดดเดฟเตฝ.

เด…เดคเดฟเดจเดพเตฝ, ns-3 เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดตเดฟเดณเดฟเด•เตเด•เต‡เดฃเตเดŸ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ ./waf install. เดฎเดฟเด•เตเด• เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เตเด‚ เดˆ เด•เดฎเดพเตปเดกเต เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ, เด•เดพเดฐเดฃเด‚ เดตเดซเต เดฌเดฟเตฝเดกเต เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฟเดฒเดตเดฟเดฒเต† เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เดŽเดŸเตเด•เตเด•เตเด‚, เดŽเดจเตเดจเดพเตฝ เดšเดฟเดฒ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เต เด…เดตเดฐเตเดŸเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเดฟเตฝ ns-3 เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเด•เตเด•เต เดชเตเดฑเดคเตเดคเตเดณเตเดณ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เตพ เด‰เตพเดชเตเดชเต†เดŸเตเดŸเดพเตฝ เด‡เดคเต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเด•เตเด‚.

เดตเดพเดซเต เดธเดฟเด‚เด—เดฟเตพ

ns-3 เดธเต‹เดดเตเดธเต เดŸเตเดฐเต€เดฏเตเดŸเต† เดฎเตเด•เดณเดฟเดฒเต† เดคเดฒเดคเตเดคเดฟเตฝ เด’เดฐเต เดตเดพเดซเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดฎเดพเดคเตเดฐเดฎเต‡เดฏเตเดณเตเดณเต‚. เดจเดฟเด™เตเด™เตพ เดœเต‹เดฒเดฟ เดšเต†เดฏเตเดฏเดพเตป เดคเตเดŸเด™เตเด™เดฟเดฏเดพเตฝ, เดจเดฟเด™เตเด™เตพ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเตฝ เดงเดพเดฐเดพเดณเด‚ เดธเดฎเดฏเด‚ เดšเต†เดฒเดตเดดเดฟเด•เตเด•เตเด‚ scratch/ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เต‚เดŸเตเดคเตฝ เด†เดดเดคเตเดคเดฟเตฝsrc/... เด…เดคเต‡ เดธเดฎเดฏเด‚ เด“เดŸเตเด•เดฏเตเด‚ เดตเต‡เดฃเด‚ เดตเดซเต. เดจเดฟเด™เตเด™เตพ เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต†เดจเตเดจเต เด“เตผเดคเตเดคเต เด“เดŸเดพเตป เด•เดดเดฟเดฏเตเด‚ เดตเดซเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดชเตเดฐเด•เดพเดฐเด‚:

$ ../../../waf ...

เดŽเดจเตเดจเดพเตฝ เด‡เดคเต เดฎเดŸเตเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเตเด‚ เดชเดฟเดถเด•เต เดธเดพเดงเตเดฏเดคเดฏเตเดณเตเดณเดคเตเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚, เด…เดคเดฟเดจเดพเตฝ เดฎเดฟเด•เดšเตเดš เดชเดฐเดฟเดนเดพเดฐเด™เตเด™เดณเตเดฃเตเดŸเต. เดชเต‹เดฒเตเดณเตเดณ เด’เดฐเต เดŸเต†เด•เตเดธเตเดฑเตเดฑเต เดŽเดกเดฟเดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต เด’เดฐเต เดชเตŠเดคเต เดฎเดพเตผเด—เตเด—เด‚ emacs เด…เดฅเดตเดพ เดตเดฟเดฎเต, เด‡เดคเดฟเตฝ เดฐเดฃเตเดŸเต เดŸเต†เตผเดฎเดฟเดจเตฝ เดธเต†เดทเดจเตเด•เตพ เดคเตเดฑเด•เตเด•เตเดจเตเดจเต, เด’เดจเตเดจเต ns-3 เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต, เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเต เดธเต‹เดดเตเดธเต เด•เต‹เดกเต เดŽเดกเดฟเดฑเตเดฑเตเดšเต†เดฏเตเดฏเดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เดฎเดพเดคเตเดฐเด‚ เดŸเดพเตผเดฌเต‹เตพ, เด…เดชเตเดชเต‹เตพ เด’เดฐเต เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดธเดนเดพเดฏเดฟเด•เตเด•เตเด‚:

$ export NS3DIR="$PWD" 
$ function waff { cd $NS3DIR && ./waf $* ; } 

$ cd scratch 
$ waff build

เดฎเตŠเดกเตเดฏเต‚เตพ เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเดฟเตฝ เด’เดฐเต เดจเดฟเดธเตเดธเดพเดฐเดฎเดพเดฏ เดตเดพเดซเต เดธเตโ€Œเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเต เดชเตเดฐเดฒเต‹เดญเดฟเดชเตเดชเดฟเดšเตเดšเต‡เด•เตเด•เดพเด‚ exec ../../waf. เดฆเดฏเดตเดพเดฏเดฟ เด…เดคเต เดšเต†เดฏเตเดฏเดฐเตเดคเต. เด‡เดคเต เดชเตเดคเตเดฎเตเด–เด™เตเด™เดณเต† เด†เดถเดฏเด•เตเด•เตเดดเดชเตเดชเดคเตเดคเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต, เดฎเต‹เดถเดฎเดพเดฏเดฟ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ, เด•เดฃเตเดŸเตเดชเดฟเดŸเดฟเด•เตเด•เดพเตป เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเดณเตเดณ เดฌเดฟเตฝเดกเต เดชเดฟเดถเด•เตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดจเดฏเดฟเด•เตเด•เตเดจเตเดจเต. เดฎเตเด•เดณเดฟเตฝ เด•เดพเดฃเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดชเดฐเดฟเดนเดพเดฐเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸ เดชเดพเดคเดฏเดพเดฃเต.

3.5 เดŸเต†เดธเตเดฑเตเดฑเดฟเด‚เด—เต ns-3

เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต ns-3 เดตเดฟเดคเดฐเดฃ เดฏเต‚เดฃเดฟเดฑเตเดฑเต เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเด‚ ./test.py:

$ ./test.py

เดˆ เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดธเดฎเดพเดจเตเดคเดฐเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต เดตเดซเต. เด’เดŸเตเดตเดฟเตฝ เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดธเดจเตเดฆเต‡เดถเด‚ เด•เดพเดฃเตเด‚:

92 of 92 tests passed (92 passed, 0 failed, 0 crashed, 0 valgrind errors)

เดตเดพเตฝเด—เตเดฐเดฟเตปเดกเต เด•เตเดฐเดพเดทเตเด•เตพ, เด•เตเดฐเดพเดทเตเด•เตพ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเดฟเดถเด•เตเด•เตพ เดŽเดจเตเดจเดฟเดต เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดชเตเดฐเดงเดพเดจ เดธเดจเตเดฆเต‡เดถเดฎเดพเดฃเดฟเดคเต, เด•เต‹เดกเดฟเดฒเต† เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดŸเต‚เดณเตเด•เดณเตเด‚ เด•เต‹เดกเตเด‚ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดชเตŠเดฐเตเดคเตเดคเด•เตเด•เต‡เดŸเตเด‚ เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต.

เดŽเดจเตเดจเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดจเตเดคเดฟเดฎ เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเตเด‚ เดจเดฟเด™เตเด™เตพ เด•เดพเดฃเตเด‚ เดตเดซเต เด“เดฐเต‹ เดŸเต†เดธเตเดฑเตเดฑเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดŸเต†เดธเตเดฑเตเดฑเดฑเตเด‚, เด…เดคเต เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเด‚:

Waf: Entering directory `/path/to/workspace/ns-3-allinone/ns-3-dev/build' 
Waf: Leaving directory `/path/to/workspace/ns-3-allinone/ns-3-dev/build' 
'build' finished successfully (1.799s) 

Modules built:
aodv           applications          bridge
click          config-store          core
csma           csma-layout           dsdv
emu            energy                flow-monitor
internet       lte                   mesh
mobility       mpi                   netanim
network        nix-vector-routing    ns3tcp
ns3wifi        olsr                  openflow
point-to-point point-to-point-layout propagation
spectrum       stats                 tap-bridge
template       test                  tools
topology-read  uan                   virtual-net-device
visualizer     wifi                  wimax

PASS: TestSuite ns3-wifi-interference
PASS: TestSuite histogram 

...

PASS: TestSuite object
PASS: TestSuite random-number-generators
92 of 92 tests passed (92 passed, 0 failed, 0 crashed, 0 valgrind errors)

ns-3 เดกเดฟเดธเตเดŸเตเดฐเดฟเดฌเตเดฏเต‚เดทเตป เดถเดฐเดฟเดฏเดพเดฏเดฟ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเดคเดพเดฃเต‹ เดŽเดจเตเดจเต เดตเต‡เด—เดคเตเดคเดฟเตฝ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเตป เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดˆ เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. ("PASS: ..." เดตเดฐเดฟเด•เดณเตเดŸเต† เด•เตเดฐเดฎเด‚ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚ เดŽเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•, เด‡เดคเต เดธเดพเดงเดพเดฐเดฃเดฎเดพเดฃเต. เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเดฟเดจเตเดฑเต† เด…เดตเดธเดพเดจเดคเตเดคเต† เดธเด‚เด—เตเดฐเดน เดฒเตˆเตป เดŽเดฒเตเดฒเดพ เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเตเด‚ เดตเดฟเดœเดฏเดฟเดšเตเดšเดคเดพเดฏเดฟ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเดพเดฃเต เดชเตเดฐเดงเดพเดจเด‚; เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเตŠเดจเตเดจเตเด‚ เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเด•เดฏเต‹ เดคเด•เดฐเตเด•เดฏเต‹ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒ.) เด’เดชเตเดชเด‚ เดตเดซเตเด’เดชเตเดชเด‚ test.py เดฎเต†เดทเต€เดจเตเดฑเต† เดฒเดญเตเดฏเดฎเดพเดฏ เดชเตเดฐเต‹เดธเดธเตผ เด•เต‹เดฑเตเด•เดณเดฟเดฒเตเดŸเดจเต€เดณเด‚ เดœเต‹เดฒเดฟ เดธเดฎเดพเดจเตเดคเดฐเดฎเดพเด•เตเด•เตเด‚.

3.6 เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต

เดžเด™เตเด™เตพ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเดคเตเดคเดฟเดฒเดพเดฃเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดตเดซเต. เดชเด™เตเด•เดฟเดŸเตเดŸ เดฒเตˆเดฌเตเดฐเดฑเดฟ เดชเดพเดคเด•เตพ เดถเดฐเดฟเดฏเดพเดฏเดฟ เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เดจเตเดจเตเด‚ เดฑเตบเดŸเตˆเดฎเดฟเตฝ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เดฒเดญเตเดฏเดฎเดพเดฃเต†เดจเตเดจเตเด‚ เด‰เดฑเดชเตเดชเดพเด•เตเด•เดพเตป เด‡เดคเต เดฌเดฟเตฝเดกเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป, เดฒเดณเดฟเดคเดฎเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• เดตเดซเต เดชเดฐเดพเดฎเต€เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต -โ€ฏ-run. เดธเตผเดตเตเดตเดตเตเดฏเดพเดชเดฟเดฏเดพเดฏ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเดจเต เดคเตเดฒเตเดฏเดฎเดพเดฏ ns-3 เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเด‚ เดนเดฒเต‡เดพ เดตเต‡เตพเดกเตเด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เดŸเตˆเดชเตเดชเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†:

$ ./waf --run hello-simulator

เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดถเดฐเดฟเดฏเดพเดฏเดฟ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต‹ เดŽเดจเตเดจเต เดตเดพเดซเต เด†เดฆเตเดฏเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด†เดตเดถเตเดฏเดฎเต†เด™เตเด•เดฟเตฝ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚. เดชเดฟเดจเตเดจเต† เดตเดซเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เด‰เตฝเดชเตเดชเดพเดฆเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเด‚.

Hello Simulator

เด…เดญเดฟเดจเดจเตเดฆเดจเด™เตเด™เตพ! เดจเดฟเด™เตเด™เตพ เด‡เดชเตเดชเต‹เตพ เด’เดฐเต ns-3 เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดพเดฃเต!

เดซเดฒเด‚ เด•เดพเดฃเตเดจเตเดจเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดžเดพเตป เดŽเดจเตเดคเตเดšเต†เดฏเตเดฏเดฃเด‚?

เดจเดฟเด™เตเด™เตพ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เด•เดพเดฃเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ เดตเดซเตเดฌเดฟเตฝเดกเต เดตเดฟเดœเดฏเด•เดฐเดฎเดพเดฏเดฟ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเดฏเดฟ, เดŽเดจเตเดจเดพเตฝ เดจเดฟเด™เตเด™เตพ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เด•เดพเดฃเตเดจเตเดจเดฟเดฒเตเดฒ เดŽเดจเตเดจเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต "เดนเดฒเต‹ เดธเดฟเดฎเตเดฒเต‡เดฑเตเดฑเตผ", เดคเตเดŸเตผเดจเตเดจเต [Build-with-Waf] เดตเดฟเดญเดพเด—เดคเตเดคเดฟเตฝ เดจเดฟเด™เตเด™เตพ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดฌเดฟเตฝเดกเต เดฎเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเดพเดจเตเดณเตเดณ เดธเดพเดงเตเดฏเดคเดฏเตเดฃเตเดŸเต เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต เดšเต†เดฏเตเดคเต, เดŽเดจเตเดจเดพเตฝ เดฎเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเดจเตเดจเดคเต เดจเดทเตเดŸเดฎเดพเดฏเดฟ เดกเต€เดฌเด—เต. เดˆ เดŸเตเดฏเต‚เดŸเตเดŸเต‹เดฑเดฟเดฏเดฒเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดŽเดฒเตเดฒเดพ เด•เตบเดธเต‹เตพ เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเตเด‚ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• ns-3 เด˜เดŸเด•เด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเต เดฒเต‹เด—เดฟเด‚เด—เต เดจเดŸเดคเตเดคเตเด•เดฏเตเด‚ เด•เตบเดธเต‹เดณเดฟเดฒเต‡เด•เตเด•เต เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดค เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดชเตเดฐเดฟเดจเตเดฑเต เดšเต†เดฏเตเดฏเดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต เดšเต†เดฏเตเดค เด•เต‹เดกเต เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดˆ เด˜เดŸเด•เดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดฏเดพเดจเตเดคเตเดฐเดฟเด•เดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด‚ - เด‡เดคเต "เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต" เด†เดฃเต. เดจเดฟเด™เตเด™เตพ "เดนเดฒเต‹ เดธเดฟเดฎเตเดฒเต‡เดฑเตเดฑเตผ" เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เด•เดพเดฃเตเดจเตเดจเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เดจเตฝเด•เตเด•:

$ ./waf configure --build-profile=debug --enable-examples --enable-tests

เด‡เดทเตเดŸเดพเดจเตเดธเตƒเดคเดฎเดพเด•เตเด•เดพเตป เดตเดซเต เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เดณเตเด‚ เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเตเด‚ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจ ns-3 เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เดณเตเดŸเต† เดกเต€เดฌเด—เต เดชเดคเดฟเดชเตเดชเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต. เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เดจเดฟเด™เตเด™เตพ เดŸเตˆเดชเตเดชเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† เด•เต‹เดกเดฟเดจเตเดฑเต† เดจเดฟเดฒเดตเดฟเดฒเต† เดกเต€เดฌเด—เต เดชเดคเดฟเดชเตเดชเต เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดฃเด‚

$ ./waf

เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ เดนเดฒเต‹-เดธเดฟเดฎเตเดฒเต‡เดฑเตเดฑเตผ, เดจเดฟเด™เตเด™เตพ เดชเตเดฐเดคเต€เด•เตเดทเดฟเดšเตเดš เดซเดฒเด‚ เด•เดพเดฃเดฃเด‚.

3.6.1 เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเตเด•เตพ

ns-3 เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเดฒเต‡เด•เตเด•เต เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเตเด•เตพ เด•เตˆเดฎเดพเดฑเตเดจเตเดจเดคเดฟเดจเต, เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดชเดพเดฑเตเดฑเต‡เตบ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•:

$ ./waf --run <ns3-program> --command-template="%s <args>"

เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เตเด• เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเดจเตเดฑเต† เดชเต‡เดฐเดฟเดฒเต‡เด•เตเด•เตเด‚ เดตเดพเดฆเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เตเด‚. เดตเดพเดฆเด‚ -โ€ฏ-command-template เดตเต‡เดฃเตเดŸเดฟ เดตเดซเต เด…เดŸเดฟเดธเตเดฅเดพเดจเดชเดฐเดฎเดพเดฏเดฟ เดฏเดฅเดพเตผเดคเตเดฅ เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดชเดพเดšเด•เด•เตเด•เตเดฑเดฟเดชเตเดชเดพเดฃเต เดตเดซเต เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เดฌเดฟเตฝเดกเต เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเดฏเต‹ เดŽเดจเตเดจเต Waf เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด•เดฏเตเด‚, เดชเด™เตเด•เดฟเดŸเตเดŸ เดฒเตˆเดฌเตเดฐเดฑเดฟ เดชเดพเดฅเตเด•เตพ เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚, เดจเตฝเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเตเด‚, เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเดณเดฟเดจเต† เดตเดฟเดณเดฟเด•เตเด•เดพเตป %s เดชเตเดฒเต†เดฏเตโ€Œเดธเตโ€Œเดนเต‹เตพเดกเดฑเดฟเดจเต เดชเด•เดฐเด‚ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเดจเตเดฑเต† เดชเต‡เดฐเต เดจเตฝเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดˆ เดตเดพเด•เตเดฏเด˜เดŸเดจ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฃเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, ns-3 เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด‚ เด…เดคเดฟเดจเตเดฑเต† เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเตเด•เดณเตเด‚ เด’เดฑเตเดฑ เด‰เดฆเตเดงเดฐเดฃเดฟเด•เดณเดฟเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดชเดคเดฟเดชเตเดชเตเดฃเตเดŸเต:

$ ./waf --run '<ns3-program> --arg1=value1 --arg2=value2 ...'

เดชเตเดฐเดคเตเดฏเต‡เด• เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏ เดฎเดฑเตเดฑเตŠเดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚ เดŸเต†เดธเตเดฑเตเดฑเต เดธเตเดฏเต‚เดŸเตเดŸเตเด•เตพ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต. mytest เดŽเดจเตเดจเตŠเดฐเต เดŸเต†เดธเตเดฑเตเดฑเต เดธเตเดฏเต‚เดŸเตเดŸเต เด‰เดฃเตเดŸเต†เดจเตเดจเต เด•เดฐเตเดคเตเด• (เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ เด‡เดฒเตเดฒ). เดฎเตเด•เดณเดฟเตฝ เดžเด™เตเด™เตพ ./test.py เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเดฎเดพเดจเตเดคเดฐเดฎเดพเดฏเดฟ เดจเดฟเดฐเดตเดงเดฟ เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เดฑเตบ เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด…เดคเต เดŸเต†เดธเตเดฑเตเดฑเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเดจเต† เด†เดตเตผเดคเตเดคเดฟเดšเตเดšเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต เดŸเต†เดธเตเดฑเตเดฑเต เดฑเดฃเตเดฃเตผ. เดตเดฟเดณเดฟ เดŸเต†เดธเตเดฑเตเดฑเต เดฑเดฃเตเดฃเตผ เด’เดฐเต เดŸเต†เดธเตเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดจเต‡เดฐเดฟเดŸเตเดŸเต:

$ ./waf --run test-runner --command-template="%s --suite=mytest --verbose"

เดตเดพเดฆเดชเตเดฐเดคเดฟเดตเดพเดฆเด™เตเด™เตพ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเดฒเต‡เด•เตเด•เต เด•เตˆเดฎเดพเดฑเตเด‚ เดŸเต†เดธเตเดฑเตเดฑเต เดฑเดฃเตเดฃเตผ. mytest เดจเดฟเดฒเดตเดฟเดฒเดฟเดฒเตเดฒเดพเดคเตเดคเดคเดฟเดจเดพเตฝ, เด’เดฐเต เดชเดฟเดถเด•เต เดธเดจเตเดฆเต‡เดถเด‚ เดœเดจเดฑเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด‚. เดฒเดญเตเดฏเดฎเดพเดฏ เดŸเต†เดธเตเดฑเตเดฑเต-เดฑเดฃเตเดฃเตผ เด“เดชเตเดทเดจเตเด•เตพ เดชเตเดฐเดฟเดจเตเดฑเต เดšเต†เดฏเตเดฏเดพเตป, เดจเตฝเด•เตเด•:

$ ./waf --run test-runner --command-template="%s --help"

3.6.2 เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต

เด’เดฐเต เดกเต€เดฌเด—เตเด—เตผ เดชเต‹เดฒเต†เดฏเตเดณเตเดณ เดฎเดฑเตเดฑเตŠเดฐเต เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟเด•เตเด•เต เด•เต€เดดเดฟเตฝ ns-3 เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดœเดฟเดกเดฟเดฌเดฟ) เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด’เดฐเต เดฎเต†เดฎเตเดฎเดฑเดฟ เดŸเต†เดธเตเดฑเตเดฑเต เดŸเต‚เตพ (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดตเดพเตฝเด—เตเดฐเดฟเตปเดกเต), เดธเดฎเดพเดจเดฎเดพเดฏ เด’เดฐเต เดซเต‹เด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• -โ€ฏ-command-template = "โ€ฆ". เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดกเต€เดฌเด—เตเด—เดฑเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดœเดฟเดกเดฟเดฌเดฟ เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเตเด•เดณเตเดณเตเดณ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดนเดฒเต‹-เดธเดฟเดฎเตเดฒเต‡เดฑเตเดฑเตผ ns-3 เดชเตเดฐเต‹เด—เตเดฐเดพเด‚:

$ ./waf --run=hello-simulator --command-template="gdb %s --args <args>"

เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเดฟเดจเตŠเดชเตเดชเด‚ ns-3 เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเดจเตเดฑเต† เดชเต‡เดฐเต เดตเดฐเตเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด• -โ€ฏ-run, เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ (เด‡เดตเดฟเดŸเต† เดœเดฟเดกเดฟเดฌเดฟ) เดตเดพเดฆเดคเตเดคเดฟเดฒเต† เด†เดฆเตเดฏเดคเตเดคเต† เดŸเต‹เด•เตเด•เตบ เด†เดฃเต -โ€ฏ-command-template. เด“เดชเตเดทเตป -โ€ฏ-args เด…เดฑเดฟเดฏเดฟเด•เตเด•เตเดจเตเดจเต เดœเดฟเดกเดฟเดฌเดฟเด•เดฎเดพเตปเดกเต เดฒเตˆเดจเดฟเดฒเต† เดฌเดพเด•เตเด•เดฟ เดญเดพเด—เด‚ "เดฒเต‹เดตเตผ" เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเดจเตเดฑเต‡เดคเดพเดฃเต. (เดšเดฟเดฒ เดชเดคเดฟเดชเตเดชเตเด•เตพ เดœเดฟเดกเดฟเดฌเดฟ เด“เดชเตเดทเตป เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเดจเตเดจเดฟเดฒเตเดฒ -โ€ฏ-args. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเดฒเต† เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเตเด•เตพ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตเด• -โ€ฏ-command-template เด•เดฎเดพเตปเดกเต เดธเต†เดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• เดœเดฟเดกเดฟเดฌเดฟ เดตเดพเดฆเดฟเด•เตเด•เตเดจเตเดจเต.) เดกเต€เดฌเด—เตเด—เดฑเดฟเดจเต เด•เต€เดดเดฟเตฝ เดŸเต†เดธเตเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดˆ เดชเดพเดšเด•เด•เตเด•เตเดฑเดฟเดชเตเดชเตเด‚ เดฎเตเดฎเตเดชเดคเตเดคเต‡เดคเตเด‚ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เดพเด‚:

$ ./waf --run test-runner --command-template="gdb %s --args --suite=mytest --verbose"

3.6.3 เดตเตผเด•เตเด•เดฟเด‚เด—เต เดกเดฏเดฑเด•เตเดŸเดฑเดฟ

ns-3 เดฎเดฐเดคเตเดคเดฟเดจเตเดฑเต† เดฎเตเด•เดณเดฟเตฝ เด…เดคเดฟเดจเตเดฑเต† เดธเตเดฅเดพเดจเดคเตเดคเต เดจเดฟเดจเตเดจเต เดตเดพเดซเต เดตเดฟเด•เตเดทเต‡เดชเดฟเด•เตเด•เดฃเด‚. เดˆ เดซเต‹เตพเดกเตผ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดซเดฏเดฒเตเด•เตพ เดŽเดดเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจ เดชเตเดฐเดตเตผเดคเตเดคเดจ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดพเดฏเดฟ เดฎเดพเดฑเตเดจเตเดจเต. เดŽเดจเตเดจเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดˆ เดซเดฏเดฒเตเด•เตพ ns-3 เดธเต‹เดดเตเดธเต เดŸเตเดฐเต€เด•เตเด•เต เดชเตเดฑเดคเตเดคเต เดธเต‚เด•เตเดทเดฟเด•เตเด•เดฃเดฎเต†เด™เตเด•เดฟเตฝ เดŽเดจเตเดคเต เดšเต†เดฏเตเดฏเตเด‚? เดตเดพเดฆเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• -โ€ฏ-cwd:

$ ./waf --cwd=...

เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเดตเตผเดคเตเดคเดจ เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเดฟเตฝ เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต เดซเดฏเดฒเตเด•เตพ เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเต เด•เต‚เดŸเตเดคเตฝ เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฃเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเต‡เด•เตเด•เดพเด‚. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดชเดฐเต‹เด•เตเดท เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดธเดนเดพเดฏเดฟเด•เตเด•เตเด‚:

$ function waff {
CWD="$PWD" 
cd $NS3DIR >/dev/null 
./waf --cwd="$CWD" $*
cd - >/dev/null 
}

เด•เดฎเดพเตปเดกเดฟเดจเตเดฑเต† เดฎเตเตป เดชเดคเดฟเดชเตเดชเดฟเดจเตเดฑเต† เดˆ เด…เดฒเด™เตเด•เดพเดฐเด‚ เดจเดฟเดฒเดตเดฟเดฒเต† เดตเตผเด•เตเด•เดฟเด‚เด—เต เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต, เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเดจเตเดจเต เดตเดซเตเดŽเดจเตเดจเดฟเดŸเตเดŸเต เดจเดฟเตผเดฆเต‡เดถเดฟเด•เตเด•เตเดจเตเดจเต เดตเดซเต เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดธเด‚เดฐเด•เตเดทเดฟเดšเตเดš เดจเดฟเดฒเดตเดฟเดฒเต† เดตเตผเด•เตเด•เดฟเด‚เด—เต เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดตเตผเด•เตเด•เดฟเด‚เด—เต เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเต. เดžเด™เตเด™เตพ เดŸเต€เดฎเดฟเดจเต† เดชเดฐเดพเดฎเตผเดถเดฟเด•เตเด•เตเดจเตเดจเต -โ€ฏ-cwd เดธเดฎเตเดชเต‚เตผเดฃเตเดฃเดคเดฏเตเด•เตเด•เดพเดฏเดฟ, เดฎเดฟเด•เตเด• เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเด‚ เด‰เดฏเตผเดจเตเดจ เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต Waf เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด…เดตเดฟเดŸเต† เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดซเดฏเดฒเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เดคเตเดŸเดฐเตเดจเตเดจเต: เด…เดงเตเดฏเดพเดฏเด‚ 4

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•