Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fc651001 authored by David Ahern's avatar David Ahern Committed by David S. Miller
Browse files

neighbor: Add tracepoint to __neigh_create



Add tracepoint to __neigh_create to enable debugging of new entries.

Signed-off-by: default avatarDavid Ahern <dsahern@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a92a0a7b
Loading
Loading
Loading
Loading
+49 −0
Original line number Diff line number Diff line
@@ -20,6 +20,55 @@
		{ NUD_NOARP, "noarp" },			\
		{ NUD_PERMANENT, "permanent"})

TRACE_EVENT(neigh_create,

	TP_PROTO(struct neigh_table *tbl, struct net_device *dev,
		 const void *pkey, const struct neighbour *n,
		 bool exempt_from_gc),

	TP_ARGS(tbl, dev, pkey, n, exempt_from_gc),

	TP_STRUCT__entry(
		__field(u32, family)
		__dynamic_array(char,  dev,   IFNAMSIZ )
		__field(int, entries)
		__field(u8, created)
		__field(u8, gc_exempt)
		__array(u8, primary_key4, 4)
		__array(u8, primary_key6, 16)
	),

	TP_fast_assign(
		struct in6_addr *pin6;
		__be32 *p32;

		__entry->family = tbl->family;
		__assign_str(dev, (dev ? dev->name : "NULL"));
		__entry->entries = atomic_read(&tbl->gc_entries);
		__entry->created = n != NULL;
		__entry->gc_exempt = exempt_from_gc;
		pin6 = (struct in6_addr *)__entry->primary_key6;
		p32 = (__be32 *)__entry->primary_key4;

		if (tbl->family == AF_INET)
			*p32 = *(__be32 *)pkey;
		else
			*p32 = 0;

#if IS_ENABLED(CONFIG_IPV6)
		if (tbl->family == AF_INET6) {
			pin6 = (struct in6_addr *)__entry->primary_key6;
			*pin6 = *(struct in6_addr *)pkey;
		}
#endif
	),

	TP_printk("family %d dev %s entries %d primary_key4 %pI4 primary_key6 %pI6c created %d gc_exempt %d",
		  __entry->family, __get_str(dev), __entry->entries,
		  __entry->primary_key4, __entry->primary_key6,
		  __entry->created, __entry->gc_exempt)
);

TRACE_EVENT(neigh_update,

	TP_PROTO(struct neighbour *n, const u8 *lladdr, u8 new,
+2 −0
Original line number Diff line number Diff line
@@ -587,6 +587,8 @@ static struct neighbour *___neigh_create(struct neigh_table *tbl,
	int error;
	struct neigh_hash_table *nht;

	trace_neigh_create(tbl, dev, pkey, n, exempt_from_gc);

	if (!n) {
		rc = ERR_PTR(-ENOBUFS);
		goto out;