text: #ifndef _NET_DST_OPS_H
  #define _NET_DST_OPS_H
  #include <linux/types.h>
  
  struct dst_entry;
  struct kmem_cachep;
  struct net_device;
  struct sk_buff;
  
  struct dst_ops {
  	unsigned short		family;
  	__be16			protocol;
  	unsigned		gc_thresh;
  
  	int			(*gc)(struct dst_ops *ops);
  	struct dst_entry *	(*check)(struct dst_entry *, __u32 cookie);
  	void			(*destroy)(struct dst_entry *);
  	void			(*ifdown)(struct dst_entry *,
  					  struct net_device *dev, int how);
  	struct dst_entry *	(*negative_advice)(struct dst_entry *);
  	void			(*link_failure)(struct sk_buff *);
  	void			(*update_pmtu)(struct dst_entry *dst, u32 mtu);
  	int			(*local_out)(struct sk_buff *skb);
  
  	atomic_t		entries;
  	struct kmem_cache	*kmem_cachep;
  };
  #endif
  