Ashok, Since you addressed this to me, I will respond. In implementing IPv6, I was faced with the daunting problem that I needed to make duplicate changes in the large amounts of duplicated code. I chose to solve that problem by lobbying for removing the duplicates. I lobbied hard to eliminate the duplication between Ethernet and WiFi, and that seems to be coming to an end soon. Then I was faced with the ?_singlethread? code that comprised 20 files when I first looked at it. In order for me to proceed, I needed to eliminate ALL of the ?_singlethread? files, or I would be faced with continual rebasing, which would not get us IPv6 in time.
I came up with an architectural solution to the ?_singlethread? problem. Simply replace the Thread Queue mechanism with a Co-routine Queue (see IOT-509), and leave all the other code alone (as much as possible.) This makes testing much less burdensome, since the tested core logic remains intact. I found out later that Samsung was approaching this problem piecewise. I can?t wait. The ?_singlethread? code should never have been created, and now it needs to go away quickly so other progress can be made. Now all the IPv6 work for running on a single thread is done. We can?t go back. I propose that we push Gerrit 876 when it builds on all platforms and has been tested on at least one. That will be soon. I hope that others will recognize the importance of the IPv6 cadence and contribute to the testing of the single thread solution. The early part of IPv6 work on master will concentrate on IOT-477. This work is primarily allowing a general network address to take a round-trip through the stack, a task which I didn?t imagine would be necessary when I started this work. This work will touch nearly every part of the stack, so it is sensitive to other changes. ?working groups are requesting proposals first before starting implementations? I don?t believe this is a working group issue since it changes neither the API or the non-IPv6 function of IoTivity. I believe the proper way to introduce these issues is with JIRA. In line with that belief, I have spelled out the IPv6 implementation issues in seven JIRA issues, which have received no comments from you or your team that I can see. Concerns about JIRA Issues can be discussed in comments or on the dev list, but JIRA is the place to start. Perhaps together we can simplify and clean up the IoTivity stack. I have begged for simplification, and I see only added complexity. The only way at this point to simplify IoTivity is one piece at a time, and I intend to continue that process. I am looking forward to the completion of merging the Ethernet and WiFi adapters so we can push the single thread patch to master, allowing the real IPv6 work to proceed. I have a lot of work to do, and I look forward to your support. John Light Intel OTC OIC Development From: ASHOKBABU CHANNA [mailto:[email protected]] Sent: Tuesday, May 05, 2015 8:07 PM To: Light, John J; iotivity-dev at lists.iotivity.org Subject: Re: [dev] patch to eliminate all "singlethread" source files in IoTivity Dear John, Connectivity abstraction supports 4 platforms ? Android, Tizen, Ubuntu and Arduino, with multiple adapters (BT, BLE). Your changes need to be compiled and tested ( basic features) on supported platforms before merging it to master. And your new changes are already in the progress with following gerrits 1) https://gerrit.iotivity.org/gerrit/#/c/783/8 - single thread file removal (pushed on Apr20th) 2) https://gerrit.iotivity.org/gerrit/#/c/752/ - single ip adapter for WIFI and Ethernet(pushed on Apr15th) We are handling changes incrementally as multiple platforms are involved. Your commit, make conflicts with 5 other patch sets and all contributors need to rebase the code and test it again for BT and BLE. (If you did not test your changes , it will creates more effort) To avoid these kind of problem, working groups are requesting proposals first before starting implementations. If you want to contribute, please make a proposal first or at least create a discussion in developers group(like glib discussion) Pat, Could you guide how we are going to handle this situation? Some developers may want to contribute in one platform but it will create issues in other platforms and features. I think handling with proposals first at least make sure people aware of the situation. Regards, Ashok ------- Original Message ------- Sender : Light, John J<john.j.light at intel.com<mailto:john.j.light at intel.com>> Date : May 02, 2015 05:05 (GMT+09:00) Title : [dev] patch to eliminate all "singlethread" source files in IoTivity I pushed to Gerrit a patch 876 which eliminates all ?_singlethread? files, responding to JIRA IOT-509. These files represent a significant fraction of technical debt IoTivity has accrued. My interest in doing this is my concern about applying IPv6 to them. I decided it would be easier to eliminate them than to deal with them. I started this on Monday. IOT-509 provides the technical approach used. Here are some stats. ? 43 files affected. ? 27 files with substantial changes. ? 17 ?_singlethread? files deleted. ? 6122 lines changed. ? 381 lines support the new single thread paradigm. ? 450 lines are mods to Ethernet and Wifi linux ?server? code to allow testing and debugging on Ubuntu. ? 5390 lines are from the 17 deleted files. Of course, this required no changes to API or any other externally visible part of IoTivity. I?m sure the performance is no worse than the previous single thread solution. (I suspect the performance is indistinguishable from multithread performance.) I made no changes to multi-threaded operation. The only problem at this point is that Jenkins reports that it fails to build on Arduino because of an include file problem, which I suspect someone with an Arduino environment could find a fix in five minutes. No change was made to Arduino code. If we push this to master quickly, it will save lots of work for everybody. While Gerrit shows conflicts with five other patch sets, I suspect the collisions are tiny and can be resolved easily. John Light Intel OTC OIC Development [cid:image001.gif at 01D087D1.1DB61050] [http://ext.samsung.net/mailcheck/SeenTimeChecker?do=fe69aed3ab8a86cad3ac768e7470b54e3b0d0c0811d73212a1889aa8efbbee47738ed17e7639ce1f641b1a8c451b073656239170f5eb4b5c326bbdfb2ea96a2fcf878f9a26ce15a0] -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.iotivity.org/pipermail/iotivity-dev/attachments/20150506/c4e8ef50/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.gif Type: image/gif Size: 13168 bytes Desc: image001.gif URL: <http://lists.iotivity.org/pipermail/iotivity-dev/attachments/20150506/c4e8ef50/attachment.gif>
