From owner-soc-status@FreeBSD.ORG Sun May 31 08:00:23 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 6E759106564A for ; Sun, 31 May 2009 08:00:23 +0000 (UTC) (envelope-from zachriggle@gmail.com) Received: from yx-out-2324.google.com (yx-out-2324.google.com [74.125.44.29]) by mx1.freebsd.org (Postfix) with ESMTP id 244238FC1C for ; Sun, 31 May 2009 08:00:23 +0000 (UTC) (envelope-from zachriggle@gmail.com) Received: by yx-out-2324.google.com with SMTP id 8so3627677yxb.13 for ; Sun, 31 May 2009 01:00:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:from:to :content-type:mime-version:subject:date:x-mailer; bh=+pP6ggYgcgHYCFQTk3JmQRmY0Oxp6ApJT1cNXA4lqQw=; b=oZOTQVG0T631aqSuPNpsukWqkfBj2WJJwgwOesk71RUYOmxMHdsITrQqoFnFAC9fMN kTHYeSNN7yT/Th9IxKsE85OwkXaDtnc5A8w8YnugusOW+at2WgR21DBLTLkvRKAR1Nz2 3x2Sd/B74OiAEZlpdm7ESE66Akrl8f+vECuuQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:from:to:content-type:mime-version:subject:date:x-mailer; b=aYLBlozWWjXf/17kn0LU6XI02p65W1YZP/HEHz6Hj3SmnuYVvCJeth8R93nQ4gOxeT 4rM+FMGflmaQzRESSvri+cejBQxIBloCIn+Lo8dUJZo/L0zqv7OLdaytAbbwWZjqumjc aNKDQcp9BktnWTHiCdaiv5BnlCuzuSHlUV3Ws= Received: by 10.151.131.5 with SMTP id i5mr8972799ybn.18.1243755477018; Sun, 31 May 2009 00:37:57 -0700 (PDT) Received: from ?172.16.0.10? (c-98-209-61-61.hsd1.mi.comcast.net [98.209.61.61]) by mx.google.com with ESMTPS id 6sm9522864ywi.58.2009.05.31.00.37.56 (version=SSLv3 cipher=RC4-MD5); Sun, 31 May 2009 00:37:56 -0700 (PDT) Message-Id: <5D5055A6-8DDA-4D22-94EA-AA05539C7E28@gmail.com> From: Zach Riggle To: soc-status@freebsd.org Content-Type: multipart/signed; boundary=Apple-Mail-41--839697387; micalg=sha1; protocol="application/pkcs7-signature" Mime-Version: 1.0 (Apple Message framework v935.3) Date: Sun, 31 May 2009 03:37:54 -0400 X-Mailer: Apple Mail (2.935.3) X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: Weekly Status Report 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: Sun, 31 May 2009 08:00:23 -0000 --Apple-Mail-41--839697387 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Hello All Not too many blog updates this week. Spent a lot of time trying to get the latest Hg build of PCS to work properly, to no avail. Tried to contact George Neville-Neil (mentor), but I got bounceback from the mail server. Also, working on getting some of the features ported over from PCS-Hg so that I can use them in the meantime. Spent a few hours tonight trying to fix a bug that didn't exist -- the output of an operation was correct, just not what I thought it should be. Working on implementing a TCP State machine, that allows for toggle- able settings. For example, in most cases it is desirable for things like the data offset, sequence number, and checksum to be automatically generated. It is also generally useful to make sure that the TCP send window is not exceeded. However, these features will need to be selectively disabled for various tests. Working on getting all of that set up. Ideally, the first test will look like this: > def testTcp3WayHandshake(pcapConnector): > # Create the local TCP state machine and network interface > local = TcpStateMachine(pcapConnector, (localHost, localPort), > (remoteHost,remotePort)) > local.state = Closed > > # Create a TCP state machine to reflect the *expected* state of > the remote host > remote = TcpStateMachine(None, (remoteHost, remotePort), > (localHost, localPort)) > remote.state = Closed > > # Syn packet > syn = tcp.tcp() > syn.syn = 1 > > # Send the TCP packet. The TCP State Machine handles generating > fields, > # creating the ipv4/ipv6 object and the ethernet object, and the > actual sending over the wire. > # The 'remote' TCP State object just processes the packet as if it > were received, and updates > # the internal state information > local.send(syn) > remote.recv(syn) > if not local.state == Syn_Sent and remote.state == Syn_Recvd: > fail > > # Receive the next packet, simulate that packet being 'sent' by > the remote machine > synack = local.recv() > remote.send(synack ) > if not (synack.ack and synack.syn and synack.acknum == syn.seq): > fail > > # Auto-generate an 'ack' packet for the second packet > ack = local.ack(synack) > local.send(ack) > remote.recv(ack) > if not (local.state == Established and remote.state == Established): > fail > > # Test connectivity > if not local.testConnectivity(): > fail > > # Close the connection > local.close() > > # Test pass > if local.state != Closed: > fail Zach --Apple-Mail-41--839697387--