English Version
Project Brussels NGE Gigabit Ethernet driver support has been put back into Solaris Nevada Build 86. Currently, there isn't a unique interface for configuring parameters for NIC drivers in Solaris. The configuration of a NIC driver may be customized by driver.conf, ndd, etc. Project Brussels aims to provide a standardized interface for configuring all GLDv3 NICs via the system tool dladm. And NGE driver(the driver of Nvidia nforce chipset Ethernet controller) is widely used in Sun servers and such as X4200/X4100 M2, X2200/X2100 M2 and workstations such as Ultra40, Ultra20. So it's a good step ahead.
What I need to emphasize is that this putback is a joint effort of the community member and Sun engineers. I think it a good example to demonstrate the open development practices in OpenSolaris community. OpenSolaris.org doesn't just make the code open-sourced. It's on the way to open the development process. And more, NGE driver is somewhat a special case,which requires the code reviews and approvals of engineers from Nvidia to ensure no Nvidia IP are leaked unintentionally. OpenSolaris community member Jason King provided the original code. The code is pretty much done. But he found some problems during the tests. The driver would fail to attach when the system was booting. So he turn to help from Sun engineer through OpenSolaris.org. I'm the responsible engineer for NGE driver. I contacted him, got his code and found the root cause soon. Not just the root cause, we also refined the code, did the tests in our lab and provided feedbacks to him. Jason updated the code for our reviews once again. Sun engineers Ted and Sowmini also gave their comments on the code. It's an iteration practice, in which we were interacting with each other well. After all the tests are passed, I help Jason to get Nvidia's code review and approval. Finally, we successfully put back the code into Solaris Nevada Build 86. So basically, this time, what the community developers do is to write the initial code and modify the code accordingly. What Sun developers do is to troubleshoot the code, refine the code, do the tests, do the legal review and put back the code. From my point of view, I think there is one advantage for Sun developers in the process of development is that we may be more familiar with the code, which made it easier to find the cause of the problems. and We may have more testbeds and test suits in the lab to reveal the bugs before the code is put back.
Lastly, I'd like to show my appreciation to Jason King's work in Project Brussels. Well done, Jason! And also I'd thank Ted and Sowmini and other colleagues for their supports in this putback.
Chinese Version
布鲁塞尔项目对NGE千兆以太网驱动程序的支持代码已经放入Solaris Nevada Build 86中。目前,Solaris并没有一个统一的接口来配置网卡驱动的参数。网卡驱动可以通过.conf文件或者ndd等工具来配置。布鲁塞尔项目通过系统工具来提供一个标准的接口来配置所有的GLDv3网卡驱动。NGE驱动(Nvidia nforce芯片组以太网控制器驱动程序)被广泛使用在Sun的服务器系统比如X4200/X4100 M2, X2200/X2100 M2以及工作站比如Ultra40, Ultra20。所以这次我们又前进了一步。
我想强调的是,这一次的工作是社区成员和Sun工程师共同努力的结果。我认为这是展示OpenSolaris社区开放开发过程的好例子。 OpenSolaris.org不只是将代码开放,它也正朝着开放开发的方向努力。此外,NGE驱动程序多少是个特殊的例子。为了保护Nvidia的知识产权不被无意泄露,它的修改需要得到Nvidia工程师的审核和批准。OpenSolaris社区成员Jason King提供了此次修改的原始代码。代码完成的不错,但是他在测试的时候发现了一些问题。改动后的驱动程序不能在系统启动时正常加载。所以他通过 OpenSolaris.org希望能够得到Sun工程师的帮助。我是NGE的责任工程师。我和他取得了联系,看了他的代码,并很快找出了问题根源之所在。此外,我们还找出了代码中存在的其他一些问题,优化了代码,在我们的实验室中做了测试并将我们的反馈提供给他。Jason以此更新了代码,并再次提交给我们审阅。Sun工程师Ted和Sowmini也对代码修改提出了他们的建议。这是一个反复的过程,在这个过程中,我们合作得很愉快。在所有的测试都通过了之后,我帮助Jason得到了Nvidia方面的代码审核和批准。最后我们成功地将代码放入Solaris Nevada Build 86。总的来说,此次,社区开发者的工作是编写了最初的代码,并相应地修改代码。Sun开发者所做的是,解决代码中的问题,优化代码,完成测试,完成法律审核,并将代码放入工程项目中。从我个人的观点来看,Sun开发者的一个优势是我们可能对代码更熟悉,这使得我们更容易找出问题的根源。而且,我们在实验室中有更多的测试机器和测试工具来保证在代码被放入项目工程前我们能尽量发现问题。
最后,我想表达我对Jason King在布鲁塞尔项目中所做的工作的感谢。干的好,Jason! 同时,我还想感谢Ted,Sowmini以及其他同事在这次工作中的支持。