/*
* netsniff-ng - the packet sniffing beast
* Copyright 2009, 2010 Daniel Borkmann.
* Subject to the GPL, version 2.
*/
#ifndef DISSECTOR_ETH_H
#define DISSECTOR_ETH_H
#include "hash.h"
#include "proto.h"
#include "protos.h"
#include "tprintf.h"
#include "oui.h"
extern struct hash_table eth_lay2;
extern struct hash_table eth_lay3;
extern void dissector_init_ethernet(int fnttype);
extern void dissector_cleanup_ethernet(void);
extern char *lookup_port_udp(unsigned int id);
extern char *lookup_port_tcp(unsigned int id);
extern char *lookup_ether_type(unsigned int id);
#ifdef __WITH_PROTOS
static inline struct protocol *dissector_get_ethernet_entry_point(void)
{
return ðernet_ops;
}
static inline struct protocol *dissector_get_ethernet_exit_point(void)
{
return &none_ops;
}
#else
static inline struct protocol *dissector_get_ethernet_entry_point(void)
{
return NULL;
}
static inline struct protocol *dissector_get_ethernet_exit_point(void)
{
return NULL;
}
#endif /* __WITH_PROTOS */
#endif /* DISSECTOR_ETH_H */
ion value='emaclite-cleanup'>emaclite-cleanup
master
nds-private-remove
packet-loop-back
packet-rx-pump-back
net-next: dsa: make the set_addr() operation optional
Only 1 of the 3 drivers currently has a set_addr() operation. Make the
set_addr() callback optional to reduce the amount of empty stubs inside
the drivers.
Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: David S. Miller <davem@davemloft.net>