)]}'
{
  "log": [
    {
      "commit": "a693722aec4ce26fb46c21cf4bf4422484a397a7",
      "tree": "003b408f7473bbc9804e185f850cf6f6017e7f1d",
      "parents": [
        "9732d523212060c44a4723332bdc5ee429eeabc3"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Dec 17 16:08:01 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 17 16:08:01 2008 -0800"
      },
      "message": "dccp_diag: LISTEN sockets don\u0027t have CCIDs\n\nAnd thus when we try to use \u0027ss -danemi\u0027 on these sockets that have no\nccid blocks (data collected using systemtap after I fixed the problem):\n\ndccp_diag_get_info sk\u003d0xffff8801220a3100, dp-\u003edccps_hc_rx_ccid\u003d0x0000000000000000, dp-\u003edccps_hc_tx_ccid\u003d0x0000000000000000\n\nWe get an OOPS:\n\nmica.ghostprotocols.net login: BUG: unable to handle kernel NULL pointer\ndereferenc0\nIP: [\u003cffffffffa0136082\u003e] dccp_diag_get_info+0x82/0xc0 [dccp_diag]\nPGD 12106f067 PUD 122488067 PMD 0\nOops: 0000 [#1] PREEMPT\n\nFix is trivial, and \u0027ss -d\u0027 is working again:\n\n[root@mica ~]# ss -danemi\nState   Recv-Q Send-Q   Local Address:Port   Peer Address:Port \nLISTEN  0      0                    *:5001              *:*\nino:7288 sk:220a3100ffff8801\n\t mem:(r0,w0,f0,t0) cwnd:0 ssthresh:0\n[root@mica ~]# \n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6fdd34d43bff8be9bb925b49d87a0ee144d2ab07",
      "tree": "547cf602983db37d573d3d191ac11660f1698e8f",
      "parents": [
        "4098dce5be537a157eed4a326efd464109825b8b"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Mon Dec 08 01:19:06 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 08 01:19:06 2008 -0800"
      },
      "message": "dccp ccid-2: Phase out the use of boolean Ack Vector sysctl\n\nThis removes the use of the sysctl and the minisock variable for the Send Ack\nVector feature, as it now is handled fully dynamically via feature negotiation\n(i.e. when CCID-2 is enabled, Ack Vectors are automatically enabled as per\n RFC 4341, 4.).\n\nUsing a sysctl in parallel to this implementation would open the door to\ncrashes, since much of the code relies on tests of the boolean minisock /\nsysctl variable. Thus, this patch replaces all tests of type\n\n\tif (dccp_msk(sk)-\u003edccpms_send_ack_vector)\n\t\t/* ... */\nwith\n\tif (dp-\u003edccps_hc_rx_ackvec !\u003d NULL)\n\t\t/* ... */\n\nThe dccps_hc_rx_ackvec is allocated by the dccp_hdlr_ackvec() when feature\nnegotiation concluded that Ack Vectors are to be used on the half-connection.\nOtherwise, it is NULL (due to dccp_init_sock/dccp_create_openreq_child),\nso that the test is a valid one.\n\nThe activation handler for Ack Vectors is called as soon as the feature\nnegotiation has concluded at the\n * server when the Ack marking the transition RESPOND \u003d\u003e OPEN arrives;\n * client after it has sent its ACK, marking the transition REQUEST \u003d\u003e PARTOPEN.\n\nAdding the sequence number of the Response packet to the Ack Vector has been\nremoved, since\n (a) connection establishment implies that the Response has been received;\n (b) the CCIDs only look at packets received in the (PART)OPEN state, i.e.\n     this entry will always be ignored;\n (c) it can not be used for anything useful - to detect loss for instance, only\n     packets received after the loss can serve as pseudo-dupacks.\n\nThere was a FIXME to change the error code when dccp_ackvec_add() fails.\nI removed this after finding out that:\n * the check whether ackno \u003c ISN is already made earlier,\n * this Response is likely the 1st packet with an Ackno that the client gets,\n * so when dccp_ackvec_add() fails, the reason is likely not a packet error.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nAcked-by: Ian McDonald \u003cian.mcdonald@jandi.co.nz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a7a0d6a87b70f7b2bab5281fc0fd443772bd0795",
      "tree": "adb4978c449d9ae570e848910ac777dd513277ac",
      "parents": [
        "14e943db133489c98d426a0dcfce4a99c6e8ad97"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Nov 19 15:43:27 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 19 15:43:27 2008 -0800"
      },
      "message": "net: inet_diag_handler structs can be const\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "305e1e96911417d8cda2699f6a20a6f434616a8c",
      "tree": "02cc300a2a32478c470d93b7a79dfd7e3b71b560",
      "parents": [
        "81429973cfff7745792c877dd083eec29724ec97"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "jdelvare@suse.de",
        "time": "Sun Oct 21 16:44:04 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Oct 22 02:59:54 2007 -0700"
      },
      "message": "[INET]: Let inet_diag and friends autoload\n\nBy adding module aliases to inet_diag, tcp_diag and dccp_diag, we let\nthem load automatically as needed. This makes tools like \"ss\" run\nfaster.\n\nSigned-off-by: Jean Delvare \u003cjdelvare@suse.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "a4bf3902427a128455b8de299ff0918072b2e974",
      "tree": "5269cd4d84702a0a728b390e08242be01252d20d",
      "parents": [
        "e6f507196c2b50243beb09b1bfa4639f999d4d1e"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Mon Mar 20 22:50:58 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 22:50:58 2006 -0800"
      },
      "message": "[DCCP] minisock: Rename struct dccp_options to struct dccp_minisock\n\nThis will later be included in struct dccp_request_sock so that we can\nhave per connection feature negotiation state while in the 3way\nhandshake, when we clone the DCCP_ROLE_LISTEN socket (in\ndccp_create_openreq_child) we\u0027ll just copy this state from\ndreq_minisock to dccps_minisock.\n\nAlso the feature negotiation and option parsing code will mostly touch\ndccps_minisock, which will simplify some stuff.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d83d8461f902c672bc1bd8fbc6a94e19f092da97",
      "tree": "0534c553ab92baa2eb9dbb5bba64f2c4540b1e89",
      "parents": [
        "22712813620fa8e682dbfb253a60ca0131da1e07"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Dec 13 23:26:10 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jan 03 13:10:58 2006 -0800"
      },
      "message": "[IP_SOCKGLUE]: Remove most of the tcp specific calls\n\nAs DCCP needs to be called in the same spots.\n\nNow we have a member in inet_sock (is_icsk), set at sock creation time from\nstruct inet_protosw-\u003eflags (if INET_PROTOSW_ICSK is set, like for TCP and\nDCCP) to see if a struct sock instance is a inet_connection_sock for places\nlike the ones in ip_sockglue.c (v4 and v6) where we previously were looking if\nsk_type was SOCK_STREAM, that is insufficient because we now use the same code\nfor DCCP, that has sk_type SOCK_DCCP.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2babe1f6fea717c36c008c878fe095d1ca5696c1",
      "tree": "f2ce23b6e5898a6bec8726f17104074516559397",
      "parents": [
        "4fded33b3e8177d1d2eec0ccc69af8dfe8b4c3c3"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Aug 23 21:52:35 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:05:07 2005 -0700"
      },
      "message": "[DCCP]: Introduce dccp_get_info\n\nAnd also hc_tx and hc_rx get_info functions for the CCIDs to fill in\ninformation that is specific to them.\n\nFor now reusing struct tcp_info, later I\u0027ll try to figure out a better\nsolution, for now its really nice to get this kind of info:\n\n[root@qemu ~]# ./ss -danemi\nState       Recv-Q Send-Q  Local Addr:Port  Peer Addr:Port\nLISTEN      0      0                *:5001          *:*     ino:628 sk:c1340040\n         mem:(r0,w0,f0,t0) cwnd:0 ssthresh:0\nESTAB       0      0       172.20.0.2:5001 172.20.0.1:32785 ino:629 sk:c13409a0\n         mem:(r0,w0,f0,t0) ts rto:1000 rtt:0.004/0 cwnd:0 ssthresh:0 rcv_rtt:61.377\n\nThis, for instance, shows that we\u0027re not congestion controlling ACKs,\nas the above output is in the ttcp receiving host, and ttcp is a one\nway app, i.e. the received never calls sendmsg, so\nccid_hc_tx_send_packet is never called, so the TX half connection\nstays in TFRC_SSTATE_NO_SENT state and hctx_rtt is never calculated,\nstays with the value set in ccid3_hc_tx_init, 4us, as show above in\nmilliseconds (0.004ms), upcoming patches will fix this.\n\nrcv_rtt seems sane tho, matching ping results :-)\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a8c2190ee7da1a1dc68ff1a6b5f03feb61e523a5",
      "tree": "30ab4f0cb01c493249a858ce315a1847a8c2e65f",
      "parents": [
        "73c1f4a033675f168df7e98bbeeafca3c644b8a6"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Fri Aug 12 12:56:38 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:57:48 2005 -0700"
      },
      "message": "[INET_DIAG]: Rename tcp_diag.[ch] to inet_diag.[ch]\n\nNext changeset will introduce net/ipv4/tcp_diag.c, moving the code that was put\ntransitioanlly in inet_diag.c.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "73c1f4a033675f168df7e98bbeeafca3c644b8a6",
      "tree": "041e0c203be710b39c8b3a1c18d23e7a50e321a6",
      "parents": [
        "4f5736c4c7cf6f9bd8db82b712cfdd51c87e06b9"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Fri Aug 12 12:51:49 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:57:44 2005 -0700"
      },
      "message": "[TCPDIAG]: Just rename everything to inet_diag\n\nNext changeset will rename tcp_diag.[ch] to inet_diag.[ch].\n\nI\u0027m taking this longer route so as to easy review, making clear the changes\nmade all along the way.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4f5736c4c7cf6f9bd8db82b712cfdd51c87e06b9",
      "tree": "403d4b49b4c1d51445f3ff279d75f74a39e2cc17",
      "parents": [
        "5324a040ccc708998e61ea93e669b81312f0ae11"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Fri Aug 12 09:27:49 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:57:38 2005 -0700"
      },
      "message": "[TCPDIAG]: Introduce inet_diag_{register,unregister}\n\nNext changeset will rename tcp_diag to inet_diag and move the tcp_diag code out\nof it and into a new tcp_diag.c, similar to the net/dccp/diag.c introduced in\nthis changeset, completing the transition to a generic inet_diag\ninfrastructure.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ]
}
