From owner-soc-status@FreeBSD.ORG Fri Jul 24 22:15:24 2009 Return-Path: Delivered-To: soc-status@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 98225106564A; Fri, 24 Jul 2009 22:15:24 +0000 (UTC) (envelope-from anchie@fer.hr) Received: from labs3.cc.fer.hr (labs3.cc.fer.hr [161.53.72.21]) by mx1.freebsd.org (Postfix) with ESMTP id 145408FC0A; Fri, 24 Jul 2009 22:15:23 +0000 (UTC) (envelope-from anchie@fer.hr) Received: from sluga.fer.hr (sluga.cc.fer.hr [161.53.72.14]) by labs3.cc.fer.hr (8.13.8+Sun/8.12.10) with ESMTP id n6OMFEYQ005417; Sat, 25 Jul 2009 00:15:21 +0200 (CEST) Received: from Unknown-00-23-6c-95-08-a5.lan ([93.139.65.156]) by sluga.fer.hr with Microsoft SMTPSVC(6.0.3790.3959); Sat, 25 Jul 2009 00:15:14 +0200 Message-ID: <4A6A3271.5010809@fer.hr> Date: Sat, 25 Jul 2009 00:15:13 +0200 From: Ana Kukec User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: soc-status@freebsd.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 24 Jul 2009 22:15:14.0297 (UTC) FILETIME=[37C3D690:01CA0CAC] Cc: "Bjoern A. Zeeb" Subject: Native kernel APIs for SeND - report 5 X-BeenThere: soc-status@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Summer of Code Status Reports and Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Jul 2009 22:15:24 -0000 Hi, Before giving the bulleted list of things that i have implemented in last two weeks, i will give the brief reminder into the things that are already finished.The first step was to select just Neighbor Discovery (ND) packets and send them to the user space SEND implementation (send-0.2/sendd). Packets were taged with m_tag in netinet6/nd6.c, intercept in netinet6/nd6.c: nd6_output_lle(), from where they are passed to the SEND input hook (netinet6/send.c: send_input()). Opposite to the SEND input hook that is placed on the way through which ND packets flow from the kernel (actually wire) to the user space, the SEND output hook is placed on the way through which SEND packets flow from the user spaceto kernel and wire. During the last weeks i finished and tested the code that deals with outgoing packets and the output hook. I.e. the packets that have been cryptographically protected in SEND user space application, and are supposed to b e sent to the corresponding host. This includes: - modification of send-0.2/sendd in order to send the packet back to the kernel after doing the cryptographic processing (i.e. adding SEND-rfc3971 options).Instead of using the NgSendData() the packet is passed back to the kernelthrough the routing socket now. - extension of net/rtsock.c: route_output(). Function is now able to receive RTM_SND message from the SEND user space application. It passes the SEND protected packet to the SEND output hook (netinet6/send.c: send_output()). - implementation of the SEND output hook (netinet6/send.c) that receives SEND protected packets from the SEND user space application and sends it out directly using if_output(). Previous was tested through achieving SEND communication with the netgraph send-0.2 correspondent node. Since the code related to the outgoing packets (both the input and output hook) has been finished and tested, i started working on the incoming SEND packets: - extensions of netinet6/icmp6.c: icmp6_input() in order to pass the incoming SEND packet to SEND input hook. The input hook prepends to the message the if_announcemsghdr and sends it to the user space SEND implementation for SEND validation (i.e. trimming off SEND-rfc3971 options). Previous code introduced problems with mbuf handling. So, the next step is to debug this part of code and test it. Ana