socsvn commit: r307723 - in soc2016/yuanxunzhang/head: sys/net usr.sbin/eaps

yuanxunzhang at FreeBSD.org yuanxunzhang at FreeBSD.org
Tue Aug 16 09:01:14 UTC 2016


Author: yuanxunzhang
Date: Tue Aug 16 09:01:12 2016
New Revision: 307723
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=307723

Log:
  EAPS: query eaps domian status

Modified:
  soc2016/yuanxunzhang/head/sys/net/eaps.c
  soc2016/yuanxunzhang/head/sys/net/if.h
  soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c

Modified: soc2016/yuanxunzhang/head/sys/net/eaps.c
==============================================================================
--- soc2016/yuanxunzhang/head/sys/net/eaps.c	Tue Aug 16 08:48:41 2016	(r307722)
+++ soc2016/yuanxunzhang/head/sys/net/eaps.c	Tue Aug 16 09:01:12 2016	(r307723)
@@ -59,7 +59,7 @@
 #include <net/bpf.h>
 #include <net/vnet.h>
 
-#include <net/if.h>
+#include <net/eaps.h>
 
 /*
  * EAPS Protocol Module

Modified: soc2016/yuanxunzhang/head/sys/net/if.h
==============================================================================
--- soc2016/yuanxunzhang/head/sys/net/if.h	Tue Aug 16 08:48:41 2016	(r307722)
+++ soc2016/yuanxunzhang/head/sys/net/if.h	Tue Aug 16 09:01:12 2016	(r307723)
@@ -546,137 +546,4 @@
 __END_DECLS
 #endif
 
-
-#ifndef _KERNEL
-
-/* !!!!!!!!!Temporarily move eaps header file content to here!!!!!!!!!!! */
-
-/*
- * Software state for each EAPS Domain
- */
-struct eaps_softc {
-	struct ifnet		*sc_ifp;	/* make this an interface */
-	struct rmlock		sc_mtx;
-	LIST_ENTRY(eaps_softc) sc_list;
-	u_char			sc_defaddr[6];	/* Default MAC address */ 
-};
-
-/* 
-* eaps ring information 
-*/
-struct eaps_reqall {
-	char			eaps_ifname[IFNAMSIZ];	/* name of the eaps */
-	uint8_t			eaps_state;             /* state of eaps */
-	uint8_t         enable_state;           /* enable or disable eaps ring */
-};
-
-#define	SIOCSEAPSDOMAIN		 _IOWR('i', 300, struct eaps_reqall)
-
-/*
- * Extreme Active Protection System (EAPS) definitions.
- * Normative reference: draft-shah-extreme-rfc3619bis-02 [Expired I-D]
- */
-
-/* TODO: */
-/* EDP/EAPS packets are SNAP encapsulated on Ethernet. */
-/* dsap/ssap are LLV_SNAP_LSAP, llc_control is LLC_UI, oui is EXTREME_OUI, PID is EDP.*/
-
-/*
- * Extreme Networks proprietary MAC addresses.
- */
-#define	EXTREME_OUI_INIT	{ 0x00, 0xE0, 0x2B }
-#define	EDP_ETHERADDR_INIT	{ 0x00, 0xE0, 0x2B, 0x00, 0x00, 0x00 }
-#define	EAPS_ETHERADDR_INIT	{ 0x00, 0xE0, 0x2B, 0x00, 0x00, 0x04 }
-
-/*
-const uint8_t eaps_etheraddr[] = EAPS_ETHERADDR_INIT;
-const uint8_t edp_etheraddr[] = EDP_ETHERADDR_INIT;
-*/
-
-/*
- * Extreme Discovery Protocol (EDP) header.
- */
-struct edp_hdr {
-	uint8_t		edp_version;		/* EDP_VERSION_1 */
-	uint8_t		edp_reserved00;		/* must be zero */
-	uint16_t	edp_len;		/* Payload length including edp_hdr */
-	uint16_t	edp_cksum;		/* RFC 1071-like */
-	uint16_t	edp_seq;		/* simple monotonic */
-	uint16_t	edp_devid;		/* 0 for MAC address */
-	struct ether_addr edp_dev_mac;		/* 48 bits */
-	/* followed by 0..N TLVs. */
-} __packed;
-#define EDP_VERSION_1	0x01
-
-/*
- * EDP Tag-Length-Value (TLV) header.
- * Minimum length: 32 bits (length: 0x0004).
- */
-struct edp_tlv_hdr {
-	uint8_t		 etv_marker;	/* always set to EDP_MARKER 0x99 */
-	uint8_t		 etv_tag;	/* Tag: see below. */
-	uint16_t	 etv_len;	/* network-endian; includes this header */
-	/* followed by [0..etv_len] octets */
-} __packed;
-
-#define	EDP_MARKER	0x99	/* etv_marker constant */
-#define EDP_TAG_NULL	0x00	/* No-op, length must be 0x04. */
-#define EDP_TAG_ESRP	0x08	/* Extreme Standby Router Protocol (undocumented) */
-#define EDP_TAG_EAPS	0x0B	/* RFC 3619 Extreme Active Protection System */
-
-/*
- * EAPS TLV payload.
- */
-struct eaps_pdu {
-	uint8_t		eaps_version;	/* Always EAPS_VERSION_1 (for now) */
-	uint8_t		eaps_type;	/* PDU type */
-	uint16_t	eaps_cvlan;	/* Control VLAN Tag ID */
-	uint32_t	eaps_rsvd0;	/* Reserved; set to zero */
-	struct ether_addr eaps_origin;	/* Originating MAC address */
-	uint16_t	eaps_hello;	/* HELLO interval (hardcoded) */
-	uint16_t	eaps_fail;	/* FAIL interval (set by master) */
-	uint8_t		eaps_state;	/* EAPS_S_xxx; see below */
-	uint8_t		eaps_rsvd1;	/* Reserved; set to zero */
-	uint16_t	eaps_seq;	/* Health PDU sequence number */	
-	uint16_t	eaps_rsvd2[38];	/* Reserved; set to zero */
-} __packed;
-
-
-#define EAPS_VERSION_1		0x01	/* EAPSv1; may support v2 in future */
-#define EAPS_HELLO_INTERVAL	0x04	/* hardcoded value of eaps_hello */
-
-/*
- * EAPS PDU Types
- */
-#define	EAPS_P_HEALTH		0x05	/* Polling for ring health */
-#define	EAPS_P_RING_UP		0x06	/* Master indicates link is up */
-#define	EAPS_P_RING_DOWN	0x07	/* Master indicates link is down  */
-#define	EAPS_P_LINK_DOWN	0x08	/* Peer indicates link is down */
-#define	EAPS_P_FLUSH		0x0D	/* Topology change: flush FDB for domain */
-#define	EAPS_P_LINK_QUERY	0x0F	/* Link status query from peer */
-#define	EAPS_P_LINK_UP		0x10	/* Peer indicates link is up */
-
-/*
- * EAPS ring node states
- */
-#define	EAPS_S_IDLE		0x00	/* EAPS Domain (Master/Transit) not running */
-#define	EAPS_S_COMPLETE		0x01	/* Master node in COMPLETE state */
-#define	EAPS_S_FAILED		0x02	/* Master node in FAILED state */
-#define	EAPS_S_LINKS_UP		0x03	/* Transit UP: Pri & Sec ring ports are up */
-#define	EAPS_S_LINK_DOWN	0x04 	/* Transit DOWN: Pri and/or Sec ports down */
-#define	EAPS_S_PREFORWARD	0x05	/* Transit in PREFORWARDING State */
-#define	EAPS_S_INIT		0x06	/* Master node in INIT state */
-
-
-#define	EAPS_LOCK_INIT(_sc)	rm_init(&(_sc)->sc_mtx, "eaps rmlock")
-#define	EAPS_LOCK_DESTROY(_sc)	rm_destroy(&(_sc)->sc_mtx)
-#define	EAPS_RLOCK(_sc, _p)	rm_rlock(&(_sc)->sc_mtx, (_p))
-#define	EAPS_WLOCK(_sc)		rm_wlock(&(_sc)->sc_mtx)
-#define	EAPS_RUNLOCK(_sc, _p)	rm_runlock(&(_sc)->sc_mtx, (_p))
-#define	EAPS_WUNLOCK(_sc)	rm_wunlock(&(_sc)->sc_mtx)
-#define	EAPS_RLOCK_ASSERT(_sc)	rm_assert(&(_sc)->sc_mtx, RA_RLOCKED)
-#define	EAPS_WLOCK_ASSERT(_sc)	rm_assert(&(_sc)->sc_mtx, RA_WLOCKED)
-#define	EAPS_UNLOCK_ASSERT(_sc)	rm_assert(&(_sc)->sc_mtx, RA_UNLOCKED)
- 
-#endif
 #endif /* !_NET_IF_H_ */

Modified: soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c
==============================================================================
--- soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c	Tue Aug 16 08:48:41 2016	(r307722)
+++ soc2016/yuanxunzhang/head/usr.sbin/eaps/eaps.c	Tue Aug 16 09:01:12 2016	(r307723)
@@ -37,6 +37,7 @@
 #include <sys/socket.h>
 #include <sys/sockio.h>
 #include <net/if.h>
+#include <net/eaps.h>
 #include <ctype.h>
 #include <err.h>
 #include <errno.h>


More information about the svn-soc-all mailing list