1. 28 Mar, 2007 1 commit
  2. 27 Mar, 2007 1 commit
  3. 16 Feb, 2007 2 commits
  4. 13 Feb, 2007 1 commit
    • Robert Ricci's avatar
      Add two new features to libnetmon. First, it now reports on the · fe86dd4e
      Robert Ricci authored
      line of the application it's instrumenting, so that we can find the
      source of some mysterious lines in the libnetmon.out files. Second,
      report when sendmsg gets called, so that we can find out whether we
      need to instrument this for any of our applications or not.
      
      I also fixed several minor almost-bugs caught by -pedantic.
      fe86dd4e
  5. 05 Feb, 2007 1 commit
  6. 02 Feb, 2007 1 commit
  7. 25 Jan, 2007 1 commit
  8. 08 Jan, 2007 1 commit
  9. 05 Jan, 2007 1 commit
  10. 04 Jan, 2007 1 commit
    • Robert Ricci's avatar
      Finish sendto() support for UDP sockets. Should now be totally · 7f75430b
      Robert Ricci authored
      compliant with the Version 3 line format, as described in
      libnetmon-format3.txt .
      
      Note that I have made a couple small changes to the output format:
      Write was renamed Send to be consistent, and I'm allowing Connected
      events for UDP sockets, in the case that the application actually does
      connect() the UDP socket. I'm not sure what we'd use this information
      for, but it seems useful and is easy to ignore.
      
      libnetmon is getting big enough that I should probably spend some time
      soon doing code hygiene.
      7f75430b
  11. 18 Dec, 2006 1 commit
    • Robert Ricci's avatar
      Added preliminary support for version 3 of libnetmon output. In this · 54711915
      Robert Ricci authored
      version, the unique identifier is the pid + fd, rather than anything
      involving port numbers. UDP sockets won't necessarily have any of
      that.
      
      I've made a few tweaks to Jon's v3 format. The format is not
      finalized, so some details could still change.
      
      Added preliminary support for UDP sockets. Right now, only handles
      sockets that are connect()ed, not ones that are used with sendto().
      We need to decide what the best way to report on sendto() is.  UDP
      support can be enabled by passing the new '-u' argument to netmond.
      
      Needs support for handling applications that fork(), since the PID
      changes. Shouldn't be too hard, just one more syscall to wrap.
      
      At some point, we should stop supporting earlier output versions,
      because that will allow me to clean up a lot of code.
      54711915
  12. 24 Oct, 2006 1 commit
    • Mike Hibler's avatar
      New environment variable LIBNETMON_CONNECTTIMO to control how many times · d311c511
      Mike Hibler authored
      libnetmon will attempt to connect to the monitor before giving up.
      It used to try once and give up (still the default behavior).  Set this
      to N to try N times one second apart or 0 to try forever.
      
      If you start your app automatically from the ns/template, then you can
      set a value in the ns file with either:
      	set opt(LIBNETMON_CONNECTTIMO) 10
      for the "old school" ns file, or:
      	$ns define-template-parameter LIBNETMON_CONNECTTIMO 10
      in a template.  Note that this will only work if you fire your app via
      the program agent, otherwise you won't get the environment variable.
      d311c511
  13. 15 Aug, 2006 1 commit
    • Robert Ricci's avatar
      Add the ability for libnetmon to only output certain reports - this · 5f290b2c
      Robert Ricci authored
      is so that when we use a monitor that doesn't care about, say, writes,
      we can avoid waisting the CPU required to parse them.
      
      The four supported reports are:
          connect - connect() and close() notifications
          sockopt - Information about socket options
          io - read()s and write()s
          all - Duh. The default if none are given
      
      You can specify reports by setting LIBNETMON_REPORTS or using the
      new -r option to netmond. If you want more than one report type,
      seperate them with commas.
      
      Added a new control message, CM_REPORTS, to pass these back and forth
      from netmond to libnetmon.
      
      Added a long overdue LIBNETMON_NETMOND option which just uses the
      standard socket paths to talk to netmond - this way, you don't have
      to set them by hand when debugging, which is a huge PITA.
      5f290b2c
  14. 10 Aug, 2006 1 commit
  15. 20 Apr, 2006 1 commit
  16. 19 Apr, 2006 4 commits
  17. 20 Feb, 2006 1 commit
    • Robert Ricci's avatar
      Keep some state about the connections we're monitoring, so that we · 78db03dc
      Robert Ricci authored
      can report it once the connection is successful.
      
      Now decides whether or not to monitor an FD in socket(), rather than
      connect(), since we now have to start collecting data before connect()
      is called.
      
      Move code to report on connection state changes into inform*()
      functions.
      
      Warning: Tested, but not exhaustively.
      78db03dc
  18. 16 Feb, 2006 1 commit
    • Robert Ricci's avatar
      Add support for reporting if the application changes a few sockopts: · 4d565e26
      Robert Ricci authored
      SO_RCVSIZE
      SO_SNDSIZE
      TCP_NODELAY
      TCP_MAXSEG
      
      There is a problem, though. Right now, we identify a connection by a
      triple of (local port, remote IP, remote port). However, some apps
      (iperf, at least), set these options before calling connect(). Thus,
      we don't know these things yet. To fix this, we could either:
        Delay notification of sockopt changes until after connect() is
          called for the socket
        Use something else (ie. (pid,fd)) as the ID for connections.
      We should probably talk about this (at least Jon and I) at the
      next meeting.
      4d565e26
  19. 15 Feb, 2006 1 commit
    • Robert Ricci's avatar
      Make a new control channel between libnetmon and netmond. Right now, · b195dbd5
      Robert Ricci authored
      there are only a few control messages implemented:
      
      The client can ask the server for the current operating parameters
      
      The server can tell the client about maximum sockbuf sizes, or
        sockbuf sizes that should be force
      
      The server can tell the client which version of the output format to
        use.
      
      The plan is that there will be more in the future: ie., the client
        and server will be able to exchange messages about new socket
        buffer sizes set by client apps, and exchange information about
        sockopts, etc. the client app may have set.
      
      Add support to libnetmon for capping the socket buffer size.
      b195dbd5
  20. 02 Feb, 2006 1 commit
  21. 01 Feb, 2006 3 commits
    • Robert Ricci's avatar
      Add support for announcing the closing and opening of sockets to the · 3be966cd
      Robert Ricci authored
      monitor. (output version 2)
      
      Wrap read(), recv(), and recvmsg() so that we can detect EOF on a
      socket by a zero-length read.
      
      Run a function to announce the closing of sockets at exit time, in
      case any are still open.
      
      Wrap accept() so that we can deal with traffic sent (NOT recieved) by
      servers as well.
      
      Fix minor bug where I was forgetting to ntohs() a port number.
      3be966cd
    • Robert Ricci's avatar
    • Robert Ricci's avatar
      Add the ability to include the local port number when reporting · bec90b34
      Robert Ricci authored
      on sockets, so that we can correctly handle multiple sockets between
      two hosts.
      
      The version of output used is controlled by the new
      LIBNETMON_OUTPUTVERSION environment variable. The old output is
      version 1, which is the default for now. The new version is 2.
      
      Version 2 is still in ASCII. The address format has chaged from
      'remoteip.remoteport' to 'localport:remoteip:remoteport'.
      
      Version 2 will soon get the ability include information about when
      sockets are created and destroyed.
      bec90b34
  22. 31 Jan, 2006 1 commit
  23. 23 Jan, 2006 1 commit
  24. 20 Jan, 2006 2 commits
  25. 19 Jan, 2006 2 commits
  26. 18 Jan, 2006 1 commit