Date: Sun, 22 Mar 2015 13:52:07 +0000 From: "Robert N. M. Watson" <rwatson@FreeBSD.org> To: Hao Sun <sunhao2013@gmail.com> Cc: Gabor Pali <pgj@freebsd.org>, freebsd-hackers@freebsd.org Subject: Re: Self introduciton of Hao Sun and thoughts on LibNetstat Message-ID: <826E80C6-55BE-4690-B35B-14670EE482AD@FreeBSD.org> In-Reply-To: <CADWmZpnOrJahwBWJOTG6RRkr6hanZR9iYZkufuAcHiOHnOYWqg@mail.gmail.com> References: <CADWmZpmq7aVxk5bap-ConjKesnmVZuEm0S9Nn%2Bwt6guc-GyfgA@mail.gmail.com> <CAHnG2CyPWsi2VghASzgMqGHpMoMsMnE1w6eCxtsxmEmeCd28JQ@mail.gmail.com> <CADWmZpnOrJahwBWJOTG6RRkr6hanZR9iYZkufuAcHiOHnOYWqg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Tuning in slightly late: I=E2=80=99m not sure if the bsnmp=E2=80=99s = plugins might also want to learn about libnetstat and friends? Robert > On 22 Mar 2015, at 12:09, Hao Sun <sunhao2013@gmail.com> wrote: >=20 > Hi G=C3=A1bor, >=20 > Thanks a lot for the relpy. Your comments provide me a lot of valuable = information, and now I'm getting clearer about what the target is and = what need I do in the future.=20 >=20 > Following your guidance, I've cloned the FreeBSD mirror from GitHub = and will get down to have an initial scratch with the latest version. = Yeah, 6 years passed by, a lot have been changed and updated during that = period. Also I had a glance over the existing user-space code and get = cleared about the basic code strcture and abstratactions of the previous = version. Now I think it's time to propose my ideas about the project and = write the proposal. >=20 > However there is one more quesiton. On the project's wiki page = (https://wiki.freebsd.org/LibNetstat = <https://wiki.freebsd.org/LibNetstat>) , I think the target for GSoC = 2015 is to finish the tasks haven't been done in the following table. = But accroding to your comments in the emails, it seems like I need to = start the job from scratch. Thus the question is should I keep the = existing code and add new features to the previous version or just start = the project from the very beginning? >=20 > =20 > <image.png> >=20 > Thanks, > Hao >=20 >=20 > 2015-03-21 16:57 GMT+08:00 Gabor Pali <pgj@freebsd.org = <mailto:pgj@freebsd.org>>: > [Please CC me in your replies, I am not on freebsd-hackers.] >=20 > Hi Hao, >=20 > 2015-03-19 1:53 GMT+01:00 Hao Sun <sunhao2013@gmail.com = <mailto:sunhao2013@gmail.com>>: > > I saw the project introduction of LibNetstat on > > FreeBSD=E2=80=99s GSoC 15=E2=80=99 homepage and was attracted by the = project. >=20 > Thank you for contacting us, it is always good to see fresh people > around who would like to contribute to the Project, especially as part > of the Google Summer of Code program. >=20 > > I think the LibNetstat would be fitful for me because I have related = rich > > project experiences on C, namely the FontDesigner project in the = lab, the > > face recognition plugin in Muticoreware and other course projects. >=20 > I believe this project is mostly about refactoring the netstat(1) > utility into a library and make the utility its client. This could > come with many advantages, such as other programs could easily access > the services it would offer and this would also help with accessing > all the networking-related statistics in an platform-independent way, > even through the network. The goal of the project is to come up with > an API and ABI that is convenient to use and captures all the concepts > that are currently used in netstat(1). >=20 > > I read the project description carefully and have done the following = jobs > > since the monitoring organisations were published. >=20 > I think those are indeed good first steps in order to get involved. >=20 > > 1. Check out the code from //depot/projects/soc2009/pgj_libstat/. As = the p4 > > introduction article shows, maybe I need a FreeBSD.org account to = get > > access into our depot. Thus would you please offer helps to create = an > > account? >=20 > Please note that project you are talking about was done almost 6 years > ago. Things can change a lot even in a year, so you may find yourself > starting again from scratch (which may be equally either good or bad > news for you). One of those changes is that Perforce has shifted out > of the focus in the recent years, students have started to use the > Project's Subversion repositories for their works, or I believe, now > they can even choose to work with git, through GitHub. >=20 > So, I guess you would only need a GitHub account and you are ready to > fork the Git mirror of the FreeBSD src repository there: >=20 > https://github.com/freebsd/freebsd = <https://github.com/freebsd/freebsd> >=20 > > 2. I plan to run some demo codes to have an insight into the current = version > > of LibNetstat. Do we have demo codes or test cases which could help = me > > get familir with the code? >=20 > It is also keep in mind that the original libnetstat code was written > and kept updated until 2011, which assumes an older base system (and > kernel) version of FreeBSD. Again, many changes might have changed > (and I am sure they have indeed changed) in the recent years, like the > kernel now has nice atomic counters for networking statistics (thanks > to Gleb Smirnoff) which was one of the blocker issues when I stopped > working on the project. >=20 > Of course, if you would like to study the code that we wrote and you > have questions about it, I am happy answer them -- note that you can > access all the sources through the P4DB web, you do not have to check > out anything. However, please also note I am not officially a src > committer so my comments may not be as precise as for example, > Robert's. I have gained some experienced in working with the > networking parts of the FreeBSD kernel and I have a few years of > experience in hacking on various projects ranging from computer games > to compilers, but that is not my area of expertise therefore I may not > be up-to-date enough on the subject. >=20 > > 3. After Step #2, I want to read some existing modules, for = instance, > > routing abstractions. I believe this step would help me get clear = how to > > make the original interface less ABI-sensitive. So do you have any > > suggestions where to start this step? >=20 > Most of the userspace code can be found here: >=20 > = https://p4web.freebsd.org/@md=3Dd&cd=3D//depot/projects/soc2009/pgj_libsta= t/src/lib/&c=3DhL4@//depot/projects/soc2009/pgj_libstat/src/lib/libnetstat= /?ac=3D83 = <https://p4web.freebsd.org/@md=3Dd&cd=3D//depot/projects/soc2009/pgj_libst= at/src/lib/&c=3DhL4@//depot/projects/soc2009/pgj_libstat/src/lib/libnetsta= t/?ac=3D83> >=20 > They may have related kernel-side changes, but for the first stab, I > think that is what you may want to see. "netstat.h" and > "netstat_internal.h" may tell you more about the abstractions I > created. Feel free to dump them, and start from scratch, perhaps I > would do them differently myself if I started to work on this project > today. >=20 > For further reference, you can also study the sister libraries of > libnetstat, libprocstat and libmemstat. They are probably much more > up-to-date with the current state of the development: >=20 > https://github.com/freebsd/freebsd/tree/master/lib/libmemstat = <https://github.com/freebsd/freebsd/tree/master/lib/libmemstat> > https://github.com/freebsd/freebsd/tree/master/lib/libprocstat = <https://github.com/freebsd/freebsd/tree/master/lib/libprocstat> >=20 > Cheers, > G=C3=A1bor >=20
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?826E80C6-55BE-4690-B35B-14670EE482AD>