netfilter-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Till Kamppeter <till.kamppeter@gmail.com>
To: netfilter-devel@vger.kernel.org
Subject: Google Summer of Code 2009: Student application for the project "Optimized netfilter implementation"
Date: Fri, 03 Apr 2009 20:40:11 +0200	[thread overview]
Message-ID: <49D6580B.3060202@gmail.com> (raw)

Hi,

the GSoC student project

    Optimized netfilter implementation

is listed on the project ideas list of the Linux Foundation:

https://www.linuxfoundation.org/en/Google_Summer_of_Code_2009

In less than half an hour the application period for students will end 
and there is one student application for this project currently (see below).

If someone of you wants to mentor this student or at least communicate 
with him and help evaluating his application, please sign up as a mentor 
on http://socghop.appspot.com/ (this does not oblige you to actually 
mentor a student) and select the Linux Foundation (organization link ID: 
LF) as the mentoring organization. If you do so, you can still be a 
mentor or admin at other orgs in parallel but not apply as a student any 
more.

For internal communication and ranking the student add private comments 
to the application, to communicate with the student add public comments.

    Till

------------------------------------------------------------------------

Title:  	 Optimized netfilter implementation
Student: 	Shreyas Bhatewara
Mentor: 	No mentor assigned
Possible Mentors: 	None
Abstract:
netfilter is used for packet filtering and mangling and thus is used to 
implement firewalls. Since every packet passing networking stack must be 
processed by netfilter it is extremely important to ensure that this 
code is not the bottleneck of the pipeline. This project will attempt to 
improve the packet classification in netfilter in order to improve its 
performance. The project will strive at understanding expensive 
operations in packet filtering and suggest optimized improvements for 
the same
Content:

     * Name  : Shreyas N Bhatewara
     * University / current enrollment  : University of Texas at Dallas
     * Short bio / overview of your background  :

I completed my bachelor in Computer Engineering from University of Pune. 
I got quite interested in Linux and kernel programming during my senior 
year project (Driver verifier and Fault injection test harness for 
Linux). After completion of bachelor degree I worked for a couple of 
years in area of networking, systems, Linux/Solaris kernel, Device 
driver development, C and C++. I got to work on many interesting 
projects during this time 
(http://utdallas.edu/~snb071000/profession.html). Most of the 
development was for clients of the company. I started my Masters in 
Computer Science in Fall 2007. I was an intern at VMware for 7 months in 
2008. I learned a lot their and enjoyed my work thoroughly.

     * Tell us your IRC nick with which you will use the group's IRC 
channel  : shreyasbforu
     * Your Coding Skills :

My coding skill set include the following:

Programming Languages: C, C++, Java, SQL(Oracle), COBOL, Lisp, ML, 
Prolog, VC++, HTML, DHTML, XML, ASP, PHP, J2EE

Scripting: shell script, awk, sed, javascript

Tools: Wireshark, Dtrace, SVN/CVS/Perforce systems, GNU make and system, 
iperf, netperf

Microprocessor arch.: i386, 8085, 8086, 80386, 8051 Micro controller.

Operating Systems: MS- DOS, Unix. Linux and Solaris – Kernel and user 
space programming.

Fields of Interests: Computer Networks, Distributed/Cluster Computing, 
Operating Systems, High performance computing and storage.



In your application let us know

     * What platform do you use to code? Hardware specifications and 
operating system :

I used to code in C, C++. For Intel architectures (32 and 64 bit). For 
Linux and Solaris OSs.

     * Did you ever code in C or C++/Perl/python/..., yes/no? what is 
your experience?

Yes I have coded in C/C++ for more than 8 years. (3 years 
professionally, others academically).

I have not coded much in Perl/python, I learned them once though.

     * If you apply for a project on our ideas list, have you experience 
in the areas listed under "Desired knowledge"?

Yes, I do have the desired knowledge (C, netfilter/iptables, Linux 
kernel, build system) for this project.

Set yourself up

     * Set up your platform to build a Bazaar/GIT/Subversion snapshot of 
the current state of the project you are interested in.
     * If you need help, ask on the mailing list of the appropriate 
group, or in the IRC.
     * Report success on the mailing list or IRC.

You and Us

     * Were you involved in development in the project's group in the 
past? What was your contribution?

No, I was not.

     * Were you involved in other OpenSource development projects in the 
past? which, when and in what role?

No, I was not. This will be my first time.

     * Why have you chosen your development idea and what do you expect 
from your implementation?

Performance optimization has always enticed me. I have spent a lot of 
time optimizing a Solaris NIC device driver which I had ported from 
Linux. I used Dtrace, lockstat and other tools for profiling. I did 
quite a good job at it. I have also taken courses related to synthesis, 
optimization and computer networking in my Masters program. I am hoping 
to apply some knowledge from those courses too.

Secondly I know much about Linux networking stack to have a comfort 
level for this project. I am confident that I will get upto speed and 
conclusively complete this project.

I need not even mention this but at the basic I expect from my 
implementation not to break anything which exists right now. I will test 
thoroughly to ensure so. Further I expect to find faster alternatives to 
current packet classification code. May be multiple filtering rules can 
be combined in some efficient way. I expect to improve the performance 
of net filters



Your Project

     * What do you want to achieve?

I expect to find faster alternatives to current packet classification 
code. May be multiple filtering rules can be combined in some efficient 
way. I expect to improve the performance of netfilters when multiple 
rules are applied at the same time. If there is some syntactic/semantic 
redundancy of operations being performed to apply these rules, I will 
try to eliminate it.

     * If you have chosen an idea from our list, why did you choose this 
specific idea?

Performance optimization has always enticed me. I have spent a lot of 
time optimizing a Solaris NIC device driver which I had ported from 
Linux. I used Dtrace, lockstat and other tools for profiling. I did 
quite a good job at it. I have also taken courses related to synthesis, 
optimization and computer networking in my Masters program. I am hoping 
to apply some knowledge from those courses too.

Secondly I know much about Linux networking stack to have a comfort 
level for this project. I am confident that I will get upto speed and 
conclusively complete this project.

     * What makes you suited to carry the project?

My past experience in working with similar projects, my educational 
background and my enthusiasm for the work at hand makes me a good 
candidate for this project. Although I do not know how exactly I can 
improve the netfilter performance as of now, I think I am in good 
position to understand and propose a solution to the problem during the 
project. I understand how open source communities work, and what role an 
individual developer plays. I also understand the high quality of code 
required to get into the code base.

     * How much time do you plan to invest in the project before, during 
and after the Summer of Code (We expect full time 40h/week during GSoC, 
but better make this explicit)?

I expect to invest 40 hours or more during the project. Even after the 
end of the project I will strive to be answerable to the suggested 
changes and if possible get the code into the main tree. I look forward 
to this project as an opportunity to start working for an open source 
community for a long term.

     * Please provide a schedule of how this time will be spent on 
subtasks of the project. While this is only preliminary, you will be 
required to provide a detailed plan latest at the beginning of GSoC and 
during the project you will issue weekly progress reports against that plan.

According to my knowledge the preliminary schedule will be as follows.

Week 1: Understanding the netfilter implementation thoroughly and 
getting acquainted with the code base and build system. Devote time to 
understand work done until now towards performance improvement and 
design decisions thus taken.

Week 2: Setup environment to measure performance and profile netfilter 
code, understand the metric involved, establish benchmarks.

Week 3-8 : Research alternatives for packet classification code. 
Implement them, profile the modified code. Conclude and again think for 
improvements.

Week 9 and 10: Testing and bugfixing. Send out a code review request 
(may be to the netfilter-devel list)

Week 11: Improvements & incorporating suggestions from code review. 
Start Documentation.

Week 12: Documenting and packaging deliverables.


Additional info: 	http://www.utdallas.edu/~shreyas.bhatewara
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

                 reply	other threads:[~2009-04-03 18:40 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=49D6580B.3060202@gmail.com \
    --to=till.kamppeter@gmail.com \
    --cc=netfilter-devel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).