• Xin Long's avatar
    sctp: add the sctp_diag.c file · 8f840e47
    Xin Long authored
    This one will implement all the interface of inet_diag, inet_diag_handler.
    which includes sctp_diag_dump, sctp_diag_dump_one and sctp_diag_get_info.
    
    It will work as a module, and register inet_diag_handler when loading.
    
    v2->v3:
    - fix the mistake in inet_assoc_attr_size().
    
    - change inet_diag_msg_laddrs_fill() name to inet_diag_msg_sctpladdrs_fill.
    
    - change inet_diag_msg_paddrs_fill() name to inet_diag_msg_sctpaddrs_fill.
    
    - add inet_diag_msg_sctpinfo_fill() to make asoc/ep fill code clearer.
    
    - add inet_diag_msg_sctpasoc_fill() to make asoc fill code clearer.
    
    - merge inet_asoc_diag_fill() and inet_ep_diag_fill() to
      inet_sctp_diag_fill().
    
    - call sctp_diag_get_info() directly, instead by handler, cause the caller
      is in the same file with it.
    
    - call lock_sock in sctp_tsp_dump_one() to make sure we call get sctp info
      safely.
    
    - after lock_sock(sk), we should check sk != assoc->base.sk.
    
    - change mem[SK_MEMINFO_WMEM_ALLOC] to asoc->sndbuf_used for asoc dump when
      asoc->ep->sndbuf_policy is set. don't use INET_DIAG_MEMINFO attr any more.
    Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    8f840e47