Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/include/trace/events/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 8 kB image not shown  

Quelle  handshake.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
#undef TRACE_SYSTEM
#define TRACE_SYSTEM handshake

#if !defined(_TRACE_HANDSHAKE_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_HANDSHAKE_H

#include <linux/net.h>
#include <net/tls_prot.h>
#include <linux/tracepoint.h>
#include <trace/events/net_probe_common.h>

#define TLS_RECORD_TYPE_LIST \
 record_type(CHANGE_CIPHER_SPEC) \
 record_type(ALERT) \
 record_type(HANDSHAKE) \
 record_type(DATA) \
 record_type(HEARTBEAT) \
 record_type(TLS12_CID) \
 record_type_end(ACK)

#undef record_type
#undef record_type_end
#define record_type(x)  TRACE_DEFINE_ENUM(TLS_RECORD_TYPE_##x);
#define record_type_end(x) TRACE_DEFINE_ENUM(TLS_RECORD_TYPE_##x);

TLS_RECORD_TYPE_LIST

#undef record_type
#undef record_type_end
#define record_type(x)  { TLS_RECORD_TYPE_##x, #x },
#define record_type_end(x) { TLS_RECORD_TYPE_##x, #x }

#define show_tls_content_type(type) \
 __print_symbolic(type, TLS_RECORD_TYPE_LIST)

TRACE_DEFINE_ENUM(TLS_ALERT_LEVEL_WARNING);
TRACE_DEFINE_ENUM(TLS_ALERT_LEVEL_FATAL);

#define show_tls_alert_level(level) \
 __print_symbolic(level, \
  { TLS_ALERT_LEVEL_WARNING, "Warning" }, \
  { TLS_ALERT_LEVEL_FATAL, "Fatal" })

#define TLS_ALERT_DESCRIPTION_LIST \
 alert_description(CLOSE_NOTIFY) \
 alert_description(UNEXPECTED_MESSAGE) \
 alert_description(BAD_RECORD_MAC) \
 alert_description(RECORD_OVERFLOW) \
 alert_description(HANDSHAKE_FAILURE) \
 alert_description(BAD_CERTIFICATE) \
 alert_description(UNSUPPORTED_CERTIFICATE) \
 alert_description(CERTIFICATE_REVOKED) \
 alert_description(CERTIFICATE_EXPIRED) \
 alert_description(CERTIFICATE_UNKNOWN) \
 alert_description(ILLEGAL_PARAMETER) \
 alert_description(UNKNOWN_CA) \
 alert_description(ACCESS_DENIED) \
 alert_description(DECODE_ERROR) \
 alert_description(DECRYPT_ERROR) \
 alert_description(TOO_MANY_CIDS_REQUESTED) \
 alert_description(PROTOCOL_VERSION) \
 alert_description(INSUFFICIENT_SECURITY) \
 alert_description(INTERNAL_ERROR) \
 alert_description(INAPPROPRIATE_FALLBACK) \
 alert_description(USER_CANCELED) \
 alert_description(MISSING_EXTENSION) \
 alert_description(UNSUPPORTED_EXTENSION) \
 alert_description(UNRECOGNIZED_NAME) \
 alert_description(BAD_CERTIFICATE_STATUS_RESPONSE) \
 alert_description(UNKNOWN_PSK_IDENTITY) \
 alert_description(CERTIFICATE_REQUIRED) \
 alert_description_end(NO_APPLICATION_PROTOCOL)

#undef alert_description
#undef alert_description_end
#define alert_description(x)  TRACE_DEFINE_ENUM(TLS_ALERT_DESC_##x);
#define alert_description_end(x) TRACE_DEFINE_ENUM(TLS_ALERT_DESC_##x);

TLS_ALERT_DESCRIPTION_LIST

#undef alert_description
#undef alert_description_end
#define alert_description(x)  { TLS_ALERT_DESC_##x, #x },
#define alert_description_end(x) { TLS_ALERT_DESC_##x, #x }

#define show_tls_alert_description(desc) \
 __print_symbolic(desc, TLS_ALERT_DESCRIPTION_LIST)

DECLARE_EVENT_CLASS(handshake_event_class,
 TP_PROTO(
  const struct net *net,
  const struct handshake_req *req,
  const struct sock *sk
 ),
 TP_ARGS(net, req, sk),
 TP_STRUCT__entry(
  __field(const void *, req)
  __field(const void *, sk)
  __field(unsigned int, netns_ino)
 ),
 TP_fast_assign(
  __entry->req = req;
  __entry->sk = sk;
  __entry->netns_ino = net->ns.inum;
 ),
 TP_printk("req=%p sk=%p",
  __entry->req, __entry->sk
 )
);
#define DEFINE_HANDSHAKE_EVENT(name)    \
 DEFINE_EVENT(handshake_event_class, name,  \
  TP_PROTO(     \
   const struct net *net,   \
   const struct handshake_req *req, \
   const struct sock *sk   \
  ),      \
  TP_ARGS(net, req, sk))

DECLARE_EVENT_CLASS(handshake_fd_class,
 TP_PROTO(
  const struct net *net,
  const struct handshake_req *req,
  const struct sock *sk,
  int fd
 ),
 TP_ARGS(net, req, sk, fd),
 TP_STRUCT__entry(
  __field(const void *, req)
  __field(const void *, sk)
  __field(int, fd)
  __field(unsigned int, netns_ino)
 ),
 TP_fast_assign(
  __entry->req = req;
  __entry->sk = req->hr_sk;
  __entry->fd = fd;
  __entry->netns_ino = net->ns.inum;
 ),
 TP_printk("req=%p sk=%p fd=%d",
  __entry->req, __entry->sk, __entry->fd
 )
);
#define DEFINE_HANDSHAKE_FD_EVENT(name)    \
 DEFINE_EVENT(handshake_fd_class, name,   \
  TP_PROTO(     \
   const struct net *net,   \
   const struct handshake_req *req, \
   const struct sock *sk,   \
   int fd     \
  ),      \
  TP_ARGS(net, req, sk, fd))

DECLARE_EVENT_CLASS(handshake_error_class,
 TP_PROTO(
  const struct net *net,
  const struct handshake_req *req,
  const struct sock *sk,
  int err
 ),
 TP_ARGS(net, req, sk, err),
 TP_STRUCT__entry(
  __field(const void *, req)
  __field(const void *, sk)
  __field(int, err)
  __field(unsigned int, netns_ino)
 ),
 TP_fast_assign(
  __entry->req = req;
  __entry->sk = sk;
  __entry->err = err;
  __entry->netns_ino = net->ns.inum;
 ),
 TP_printk("req=%p sk=%p err=%d",
  __entry->req, __entry->sk, __entry->err
 )
);
#define DEFINE_HANDSHAKE_ERROR(name)    \
 DEFINE_EVENT(handshake_error_class, name,  \
  TP_PROTO(     \
   const struct net *net,   \
   const struct handshake_req *req, \
   const struct sock *sk,   \
   int err     \
  ),      \
  TP_ARGS(net, req, sk, err))

DECLARE_EVENT_CLASS(handshake_alert_class,
 TP_PROTO(
  const struct sock *sk,
  unsigned char level,
  unsigned char description
 ),
 TP_ARGS(sk, level, description),
 TP_STRUCT__entry(
  /* sockaddr_in6 is always bigger than sockaddr_in */
  __array(__u8, saddr, sizeof(struct sockaddr_in6))
  __array(__u8, daddr, sizeof(struct sockaddr_in6))
  __field(unsigned int, netns_ino)
  __field(unsigned long, level)
  __field(unsigned long, description)
 ),
 TP_fast_assign(
  const struct inet_sock *inet = inet_sk(sk);

  memset(__entry->saddr, 0, sizeof(struct sockaddr_in6));
  memset(__entry->daddr, 0, sizeof(struct sockaddr_in6));
  TP_STORE_ADDR_PORTS(__entry, inet, sk);

  __entry->netns_ino = sock_net(sk)->ns.inum;
  __entry->level = level;
  __entry->description = description;
 ),
 TP_printk("src=%pISpc dest=%pISpc %s: %s",
  __entry->saddr, __entry->daddr,
  show_tls_alert_level(__entry->level),
  show_tls_alert_description(__entry->description)
 )
);
#define DEFINE_HANDSHAKE_ALERT(name)    \
 DEFINE_EVENT(handshake_alert_class, name,  \
  TP_PROTO(     \
   const struct sock *sk,   \
   unsigned char level,   \
   unsigned char description  \
  ),      \
  TP_ARGS(sk, level, description))


/*
 * Request lifetime events
 */


DEFINE_HANDSHAKE_EVENT(handshake_submit);
DEFINE_HANDSHAKE_ERROR(handshake_submit_err);
DEFINE_HANDSHAKE_EVENT(handshake_cancel);
DEFINE_HANDSHAKE_EVENT(handshake_cancel_none);
DEFINE_HANDSHAKE_EVENT(handshake_cancel_busy);
DEFINE_HANDSHAKE_EVENT(handshake_destruct);


TRACE_EVENT(handshake_complete,
 TP_PROTO(
  const struct net *net,
  const struct handshake_req *req,
  const struct sock *sk,
  int status
 ),
 TP_ARGS(net, req, sk, status),
 TP_STRUCT__entry(
  __field(const void *, req)
  __field(const void *, sk)
  __field(int, status)
  __field(unsigned int, netns_ino)
 ),
 TP_fast_assign(
  __entry->req = req;
  __entry->sk = sk;
  __entry->status = status;
  __entry->netns_ino = net->ns.inum;
 ),
 TP_printk("req=%p sk=%p status=%d",
  __entry->req, __entry->sk, __entry->status
 )
);

/*
 * Netlink events
 */


DEFINE_HANDSHAKE_ERROR(handshake_notify_err);
DEFINE_HANDSHAKE_FD_EVENT(handshake_cmd_accept);
DEFINE_HANDSHAKE_ERROR(handshake_cmd_accept_err);
DEFINE_HANDSHAKE_FD_EVENT(handshake_cmd_done);
DEFINE_HANDSHAKE_ERROR(handshake_cmd_done_err);

/*
 * TLS Record events
 */


TRACE_EVENT(tls_contenttype,
 TP_PROTO(
  const struct sock *sk,
  unsigned char type
 ),
 TP_ARGS(sk, type),
 TP_STRUCT__entry(
  /* sockaddr_in6 is always bigger than sockaddr_in */
  __array(__u8, saddr, sizeof(struct sockaddr_in6))
  __array(__u8, daddr, sizeof(struct sockaddr_in6))
  __field(unsigned int, netns_ino)
  __field(unsigned long, type)
 ),
 TP_fast_assign(
  const struct inet_sock *inet = inet_sk(sk);

  memset(__entry->saddr, 0, sizeof(struct sockaddr_in6));
  memset(__entry->daddr, 0, sizeof(struct sockaddr_in6));
  TP_STORE_ADDR_PORTS(__entry, inet, sk);

  __entry->netns_ino = sock_net(sk)->ns.inum;
  __entry->type = type;
 ),
 TP_printk("src=%pISpc dest=%pISpc %s",
  __entry->saddr, __entry->daddr,
  show_tls_content_type(__entry->type)
 )
);

/*
 * TLS Alert events
 */


DEFINE_HANDSHAKE_ALERT(tls_alert_send);
DEFINE_HANDSHAKE_ALERT(tls_alert_recv);

#endif /* _TRACE_HANDSHAKE_H */

#include <trace/define_trace.h>

Messung V0.5
C=93 H=97 G=94

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.