Standalone repository for libnetworking stack

Joel Sherrill joel at rtems.org
Fri Mar 5 16:37:23 UTC 2021


On Fri, Mar 5, 2021 at 9:48 AM Vijay Kumar Banerjee <vijay at rtems.org> wrote:

> Hi all,
>
> If no one has any objections, I would like to push the RTEMS patches to
> remove libnetworking.
>
> The patches are in this repo:
> https://git.rtems.org/vijay/rtems.git/log/?h=devel-no-libnet
>

I do not object but this is an impactful thing to do and it would
be my preference to get concurrence from multiple core
developers.

--joel

>
>
>
> Best regards,
> Vijay
>
>
> On Mon, Mar 1, 2021, 14:48 Vijay Kumar Banerjee <vijay at rtems.org> wrote:
>
>> On Mon, Mar 1, 2021 at 1:24 PM Gedare Bloom <gedare at rtems.org> wrote:
>> >
>> > On Mon, Mar 1, 2021 at 1:16 PM Vijay Kumar Banerjee <vijay at rtems.org>
>> wrote:
>> > >
>> > > On Mon, Mar 1, 2021 at 12:20 PM Joel Sherrill <joel at rtems.org> wrote:
>> > > >
>> > > >
>> > > >
>> > > > On Mon, Mar 1, 2021 at 1:05 PM Gedare Bloom <gedare at rtems.org>
>> wrote:
>> > > >>
>> > > >> On Mon, Mar 1, 2021 at 11:28 AM Vijay Kumar Banerjee <
>> vijay at rtems.org> wrote:
>> > > >> >
>> > > >> > Hi,
>> > > >> >
>> > > >> > I have shifted the testsuites and have checked that all the
>> tests run successfully with pc-qemu. I have also updated the README.waf as
>> per the review and have fixed formatting according to PEP8. Please review
>> the repos and let me know if there's something else that needs to be
>> improved to make it mergeable.
>> > > >> > RTEMS:
>> https://git.rtems.org/vijay/rtems.git/log/?h=devel-no-libnet
>> > > >> > rtems-net-legacy:
>> https://git.rtems.org/vijay/rtems-net-legacy.git/log/?h=main
>> > > >> >
>> > > >> > I have also made a patch for rtems-docs to rename networking to
>> legacy networking:
>> > > >> >
>> https://git.rtems.org/vijay/rtems-docs.git/commit/?id=92b53d211b4d9ad795ef8b2ad1ac0deed5a25f9a
>> > > >
>> > > >
>> > > > This looks good. If it can easily be moved to the bottom of the
>> list of docs, that would be great.
>> > > >
>> > > Great. I'll check it and create a patch for it (Assuming it can be
>> > > done from the docs and doesn't need anything to be done from the
>> > > website front end).
>> > > >>
>> > > >>
>> > > >> >
>> > > >> > I haven't added any LICENSE file as I really didn't understand
>> what we can put in there. I can add the RTEMS LICENSE file from
>> https://www.rtems.org/license/LICENSE as it was discussed in the list
>> before. Please let me know what is desirable.
>> > > >> >
>> > > >> I don't think we should have a LICENSE file, instead I think there
>> > > >> should be a section of the README that discusses the licensing
>> > > >> situation.
>> > > >>
>> > > >> The code is licensed under a mix of the rtems.org/LICENSE and
>> various
>> > > >> BSD licenses. That is all that needs to be said, if anything.
>> > > >
>> > > >
>> > > > +1 It is what is always has been.
>> > > Great, I'll add a section in the README file.
>> > >
>> > > Regarding the README file in general: Is the current text suitable or
>> > > should we add some information like this is the separate rtems legacy
>> > > networking stack etc. ?
>> > >
>> >
>> > Add a brief note, and identify where further  guidance is located
>> > (README.waf, docs.rtems.org) and keep the historical stuff I suppose,
>> > but provide a segue to it.
>> >
>> Thanks, I added it. I'll soon post an announcement to the devel (and
>> users) about the separate repo, requesting testing from concerned
>> users.
>>
>> > > >>
>> > > >>
>> > > >> Do we need to put out a call for anyone to step up to deal with
>> > > >> anything in BSPs?
>> > > >
>> > > >
>> > > > To be completely above board and proper, I think so. please post to
>> > > > both devel@ and users@ that your repo needs testing and that the
>> > > > legacy stack is soon to be removed from the main rtems.git.
>> > > >
>> > > > And make it VERY clear that anyone who plans to test, please
>> > > > speak up. We can't demand they do it immediately but it would
>> > > > be helpful to know someone is going to do it.
>> > > >
>> > > Sure, I'll post in user and devel.
>> > >
>> > > > Which NIC did you test the PC with?
>> > > >
>> > >
>> > > virtio
>> > >
>> > > >>
>> > > >>
>> > > >> > Best regards,
>> > > >> > Vijay
>> > > >> >
>> > > >> > On Fri, Feb 26, 2021 at 12:30 PM Joel Sherrill <joel at rtems.org>
>> wrote:
>> > > >> > >
>> > > >> > >
>> > > >> > >
>> > > >> > > On Fri, Feb 26, 2021, 11:49 AM Chris Johns <chrisj at rtems.org>
>> wrote:
>> > > >> > >>
>> > > >> > >> On 27/2/21 4:40 am, Vijay Kumar Banerjee wrote:
>> > > >> > >> > Hi all,
>> > > >> > >> >
>> > > >> > >> > Thanks for reviewing
>> > > >> > >> >
>> > > >> > >> > On Fri, Feb 26, 2021 at 10:13 AM Joel Sherrill <
>> joel at rtems.org> wrote:
>> > > >> > >> >>
>> > > >> > >> >> Some odd questions that are mostly about making this a
>> self-contained entity with no loose ends.
>> > > >> > >> >>
>> > > >> > >> >> + Can the network demos be merged also?
>> > > >> > >> >>
>> > > >> > >> > Are we talking about testsuites tests that use legacy
>> networking? If
>> > > >> > >> > so, then I have already shifted the networking01.exe and
>> will shift
>> > > >> > >> > other tests using the same approach.
>> > > >> > >> >
>> > > >> > >> >> + rtems-docs has the Network Users Guide which is legacy
>> only. As a minimum, it needs to be renamed to have Legacy in the title.
>> Better would be to convert it to markdown/asciidoc and just toss it in the
>> legacy repo.
>> > > >> > >> >>
>> > > >> > >> > This is a good point! I'll probably just keep it as a
>> README in the
>> > > >> > >> > net-legacy repo.
>> > > >> > >> >
>> > > >> > >> >> + Gaisler needs a poke about the grlib NIC drivers. And
>> Daniel expects it. File a ticket that it is time for them to support libbsd
>> and assign it to him. :)
>> > > >> > >> >>
>> > > >> > >> >> I'm ok with Chris' proposal to give notice  Grep'ing for
>> NETWORK_DRIVER_NAME did turn up more files than I expected. Perhaps that is
>> simply a list of driver names and attach functions for a readme in the
>> repo. That's all that should have been in the bsp.h files.
>> > > >> > >> >>
>> > > >> > >> > Yes, these are mostly bsp.h files. I'll file a ticket and
>> post to
>> > > >> > >> > users and devel about it. There are also quite a few with
>> > > >> > >> > RTEMS_NETWORKING defined.
>> > > >> > >> >
>> > > >> > >> >> This is awesome work and much appreciated.
>> > > >> > >> >>
>> > > >> > >> > Thank you. :)
>> > > >> > >> >
>> > > >> > >> >> On Fri, Feb 26, 2021 at 12:12 AM Gedare Bloom <
>> gedare at rtems.org> wrote:
>> > > >> > >> >>>
>> > > >> > >> >>> On Thu, Feb 25, 2021 at 6:06 PM Chris Johns <
>> chrisj at rtems.org> wrote:
>> > > >> > >> >>>>
>> > > >> > >> >>>> On 26/2/21 4:49 am, Vijay Kumar Banerjee wrote:
>> > > >> > >> >>>>> The stand-alone repository is very close to completion
>> now and I could
>> > > >> > >> >>>>> use the networking01 test with the standalone repo and
>> it successfully
>> > > >> > >> >>>>> runs on pc-qemu.
>> > > >> > >> >>>>
>> > > >> > >> >>>> Fantastic news.
>> > > >> > >> >>>>
>> > > >> > >> >>>>> The following are the links to the branches with the
>> > > >> > >> >>>>> final version of the commits and I would really
>> appreciate a review
>> > > >> > >> >>>>> and suggestions on what else needs to be done (I'm not
>> sending patches
>> > > >> > >> >>>>> as they're big and would hit the devel limit):
>> > > >> > >> >>>>
>> > > >> > >> >>>> I am fine reviewing the changes in the repos.
>> > > >> > >> >>>>
>> > > >> > >> >>>>> RTEMS:
>> https://git.rtems.org/vijay/rtems.git/log/?h=devel-no-libnet
>> > > >> > >> >>>>
>> > > >> > >> >>>> Looks good. The only observation is a bisect will
>> probability break as the
>> > > >> > >> >>>> nfsclient depends on rpc but I am OK with now things are.
>> > > >> > >> >>>>
>> > > >> > >> >>>> I checked rtems_waf and I think it is OK dealing with no
>> networking defined in
>> > > >> > >> >>>> the RTEMS opts header.
>> > > >> > >> >>>>
>> > > >> > >> > Great!
>> > > >> > >> >
>> > > >> > >> >>>>> rtems-net-legacy:
>> https://git.rtems.org/vijay/rtems-net-legacy.git/log/?h=main
>> > > >> > >> >>>>
>> > > >> > >> >>>> Would calling lnetwork.py netlegacy.py be a better match
>> for that name? Closer
>> > > >> > >> >>>> to the repo naming.
>> > > >> > >> >>>>
>> > > >> > >> > Sure, I'll rename it and force push.
>> > > >> > >>
>> > > >> > >> Thanks
>> > > >> > >>
>> > > >> > >> >
>> > > >> > >> >>>> Do the new python files need to pep8 formatted? :)
>> > > >> > >> >>>> [
>> https://gitlab.com/ita1024/waf/-/tree/master/playground/pep8 ]
>> > > >> > >> >>>>
>> > > >> > >> > pep8 does work for me when used manually but with waf
>> module I'm
>> > > >> > >> > getting the following error:
>> > > >> > >> >
>> > > >> > >> > ```
>> > > >> > >> >   File
>> "/home/vijay/.local/lib/python3.8/site-packages/pep8.py", line
>> > > >> > >> > 253, in maximum_line_length
>> > > >> > >> >     if length > options.max_line_length:
>> > > >> > >> > AttributeError: 'Values' object has no attribute
>> 'max_line_length'
>> > > >> > >> > ```
>> > > >> > >> > This is strange because it looks like an error in the pep8
>> module itself.
>> > > >> > >> >
>> > > >> > >> > I have tried different versions of pep8 and it looks like
>> each version
>> > > >> > >> > has a different error. I think this needs some work from
>> the waf side
>> > > >> > >> > to get it working with the new pycodestyle instead of the
>> pep8 module.
>> > > >> > >>
>> > > >> > >> Running manually is fine.
>> > > >> > >>
>> > > >> > >> >>>> In bsp_drivers.py is there a waf node way to find the
>> sources rather than
>> > > >> > >> >>>> python os walk?
>> > > >> > >> >>>> [
>> https://waf.io/apidocs/Node.html#waflib.Node.Node.ant_glob ]
>> > > >> > >> >>>>
>> > > >> > >> > I gave it a few shots but it didn't quite work out well for
>> me.  I do
>> > > >> > >> > get the generator from it but for some reason, it's not
>> building. We
>> > > >> > >> > would also need the list of headers for the install, for
>> which I think
>> > > >> > >> > os.walk might be needed.
>> > > >> > >> >
>> > > >> > >> > Is this a blocker to merging? If so, then I can put more
>> time into it
>> > > >> > >> > and try to get it working. If you want it as an
>> optimization, maybe we
>> > > >> > >> > could merge it and file a ticket? I can take more time and
>> fix it
>> > > >> > >> > later.
>> > > >> > >>
>> > > >> > >> Thanks for looking, the os.walk is fine.
>> > > >> > >>
>> > > >> > >> >>>> Should the README reference rtems_waf and all the
>> configure options it supports?
>> > > >> > >> >>>>
>> > > >> > >> > This is a good point, The README needs some update for
>> sure. I'll
>> > > >> > >> > follow the README.waf from other repos and follow the same
>> pattern.
>> > > >> > >> >
>> > > >> > >> >>>> Do we need a LICENSE file?
>> > > >> > >> >>>>
>> > > >> > >> > Do we?
>> > > >> > >>
>> > > >> > >> I think it helps but I am not sure what it would contain.
>> Joel?
>> > > >> > >
>> > > >> > >
>> > > >> > > It would be hard to have a completely accurate one if it has
>> to account for every BSD file with unique copyright holders a d two vs
>> three paragraph license
>> > > >> > >
>> > > >> > > Perhaps descriptive contents that says it contains code under
>> multiple permissive licenses. See the specific files for details.
>> > > >> > >
>> > > >> > > It's good to have one but not worth the effort to do more than
>> that.
>> > > >> > >
>> > > >> > >>
>> > > >> > >> >>>>>
>> > > >> > >> >>>>> There are at least two things that need to be done:
>> > > >> > >> >>>>> 1. Shift the tests like mghttpd01 that use the
>> libnetworking stack, to
>> > > >> > >> >>>>> the standalone repo like networking01
>> > > >> > >> >>>>
>> > > >> > >> >>>> OK
>> > > >> > >> > I'll do it along with the README and send it for review.
>> > > >> > >>
>> > > >> > >> Thanks
>> > > >> > >>
>> > > >> > >> >>>>
>> > > >> > >> >>>>> 2. There are still codes that use the #ifdef
>> RTEMS_NETWORKING. What do
>> > > >> > >> >>>>> we want to do about those?
>> > > >> > >> >>>>
>> > > >> > >> >>>> How many BSPs/places/areas are we talking about?
>> > > >> > >> >>>>
>> > > >> > >> >>>> Would it be practical to add a cgit link to a ticket and
>> then post an email to
>> > > >> > >> >>>> user and devel stating those interested in BSPs x,y,z to
>> review the ticket? We
>> > > >> > >> >>>> then wait a week and after that the remaining defines
>> are removed.
>> > > >> > >> >>>>
>> > > >> > >> >
>> > > >> > >> > grep shows this:
>> > > >> > >> > ```
>> > > >> > >> > cpukit/libfs/src/ftpfs/tftpDriver.c:#ifdef RTEMS_NETWORKING
>> > > >> > >> > cpukit/libfs/src/ftpfs/tftpDriver.c:#ifdef RTEMS_NETWORKING
>> > > >> > >> > cpukit/libfs/src/ftpfs/tftpDriver.c:#ifdef RTEMS_NETWORKING
>> > > >> > >> > cpukit/libfs/src/ftpfs/tftpDriver.c:#ifdef RTEMS_NETWORKING
>> > > >> > >> > cpukit/telnetd/telnetd.c:#ifdef RTEMS_NETWORKING
>> > > >> > >> > cpukit/telnetd/telnetd.c:#ifdef RTEMS_NETWORKING
>> > > >> > >> > cpukit/ftpd/ftpd.c:#ifndef RTEMS_NETWORKING
>> > > >> > >> > cpukit/libtest/testbeginend.c:#if RTEMS_NETWORKING
>> > > >> > >> > cpukit/libtest/testbeginend.c:    " RTEMS_NETWORKING"
>> > > >> > >> > cpukit/include/rtems/monitor.h:#if defined(RTEMS_NETWORKING)
>> > > >> > >> > cpukit/include/rtems/shellconfig.h:#if RTEMS_NETWORKING
>> > > >> > >> > cpukit/include/rtems/shellconfig.h:    #if RTEMS_NETWORKING
>> > > >> > >> > spec/build/testsuites/samples/pppd.yml:  - RTEMS_NETWORKING
>> > > >> > >> > spec/build/testsuites/samples/loopback.yml:-
>> RTEMS_NETWORKING
>> > > >> > >> > spec/build/testsuites/libtests/telnetd01.yml:-
>> RTEMS_NETWORKING
>> > > >> > >> > spec/build/testsuites/libtests/mghttpd01.yml:  -
>> RTEMS_NETWORKING
>> > > >> > >> > spec/build/testsuites/libtests/syscall01.yml:-
>> RTEMS_NETWORKING
>> > > >> > >> > spec/build/testsuites/libtests/networking01.yml:-
>> RTEMS_NETWORKING
>> > > >> > >> > spec/build/testsuites/libtests/ftp01.yml:- RTEMS_NETWORKING
>> > > >> > >> > spec/build/bsps/powerpc/motorola_powerpc/objqemunet.yml:  -
>> RTEMS_NETWORKING
>> > > >> > >> > spec/build/bsps/objnetnosmp.yml:  - RTEMS_NETWORKING
>> > > >> > >> > spec/build/bsps/riscv/griscv/objnetnosmp.yml:  -
>> RTEMS_NETWORKING
>> > > >> > >> > testsuites/libtests/record01/init.c:#ifdef RTEMS_NETWORKING
>> > > >> > >> > testsuites/libtests/record01/init.c:#ifdef RTEMS_NETWORKING
>> > > >> > >> > testsuites/libtests/record01/init.c:#ifdef RTEMS_NETWORKING
>> > > >> > >> > testsuites/libtests/record01/init.c:#ifdef RTEMS_NETWORKING
>> > > >> > >> > bsps/powerpc/beatnik/include/bsp.h:#if
>> defined(RTEMS_NETWORKING)
>> > > >> > >> > bsps/lm32/milkymist/include/bsp.h:#if
>> defined(RTEMS_NETWORKING)
>> > > >> > >> > bsps/lm32/lm32_evr/include/bsp.h:#if
>> defined(RTEMS_NETWORKING)
>> > > >> > >> >
>> > > >> > >> > ```
>> > > >> > >> > I can already see a small issue from my side. The
>> networking01.yml is
>> > > >> > >> > there. That will go away, along with some other testsuites
>> yml that
>> > > >> > >> > I'll shift now. Do we need ticket for the rest?
>> > > >> > >>
>> > > >> > >> A single ticket for this task is fine.
>> > > >> > >
>> > > >> > >
>> > > >> > > I would say we always build with networking in in the future.
>> The standard headers are there always.
>> > > >> > >
>> > > >> > > Perhaps ones in telnetd and similar can go away if that
>> decision is made versus saying it disables common network services.
>> > > >> > >>
>> > > >> > >>
>> > > >> > >> >
>> > > >> > >> >>>> Do we have a ticket for this task?
>> > > >> > >> >>>>
>> > > >> > >> >>> https://devel.rtems.org/ticket/3850
>> > > >> > >> >>>
>> > > >> > >> > Thanks.
>> > > >> > >>
>> > > >> > >> Thanks.
>> > > >> > >>
>> > > >> > >> Chris
>> > > >> > >>
>> > > >> > >> >
>> > > >> > >> >>> I'll let Vijay answer the rest.
>> > > >> > >> >>>
>> > > >> > >> >>>>> Apart from these two points above, do the commits and
>> the standalone
>> > > >> > >> >>>>> repo look OK (close to mergeable)?
>> > > >> > >> >>>>
>> > > >> > >> >>>> For me this is very close and a welcomed change for
>> RTEMS 6. Really nice work.
>> > > >> > >> >>>>
>> > > >> > >> > Thank you!
>> > > >> > >> >
>> > > >> > >> > Best regards,
>> > > >> > >> > Vijay
>> > > >> > >> >
>> > > >> > >> >>>> Thanks
>> > > >> > >> >>>> Chris
>> > > >> > >> >>>> _______________________________________________
>> > > >> > >> >>>> devel mailing list
>> > > >> > >> >>>> devel at rtems.org
>> > > >> > >> >>>> http://lists.rtems.org/mailman/listinfo/devel
>> > > >> > >> >>> _______________________________________________
>> > > >> > >> >>> devel mailing list
>> > > >> > >> >>> devel at rtems.org
>> > > >> > >> >>> http://lists.rtems.org/mailman/listinfo/devel
>> > > >> > >> >>
>> > > >> > >> >> _______________________________________________
>> > > >> > >> >> devel mailing list
>> > > >> > >> >> devel at rtems.org
>> > > >> > >> >> http://lists.rtems.org/mailman/listinfo/devel
>> > > >> > >> > _______________________________________________
>> > > >> > >> > devel mailing list
>> > > >> > >> > devel at rtems.org
>> > > >> > >> > http://lists.rtems.org/mailman/listinfo/devel
>> > > >> > >> >
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20210305/f8a417ef/attachment-0001.html>


More information about the devel mailing list