summaryrefslogtreecommitdiff
path: root/mcast/common/.svn/text-base/mld.h.svn-base
diff options
context:
space:
mode:
Diffstat (limited to 'mcast/common/.svn/text-base/mld.h.svn-base')
-rw-r--r--mcast/common/.svn/text-base/mld.h.svn-base339
1 files changed, 0 insertions, 339 deletions
diff --git a/mcast/common/.svn/text-base/mld.h.svn-base b/mcast/common/.svn/text-base/mld.h.svn-base
deleted file mode 100644
index 93d2bd6..0000000
--- a/mcast/common/.svn/text-base/mld.h.svn-base
+++ /dev/null
@@ -1,339 +0,0 @@
-/*
- * (c) BayCom GmbH, http://www.baycom.de, info@baycom.de
- *
- * See the COPYING file for copyright information and
- * how to reach the author.
- *
- */
-
-#ifndef __MLD_H__
-#define __MLD_H__
-
-/* Wrappers so we don't have to change the copied stuff ;) */
-#define __u8 uint8_t
-#define __u16 uint16_t
-/* Booleans */
-#define false 0
-#define true (!false)
-
-
-/* Determine Endianness */
-#if ! defined __LITTLE_ENDIAN_BITFIELD && ! defined __BIG_ENDIAN_BITFIELD
- #if BYTE_ORDER == LITTLE_ENDIAN
- /* 1234 machines */
- #define __LITTLE_ENDIAN_BITFIELD 1
- #elif BYTE_ORDER == BIG_ENDIAN
- /* 4321 machines */
- #define __BIG_ENDIAN_BITFIELD 1
- # define WORDS_BIGENDIAN 1
- #elif BYTE_ORDER == PDP_ENDIAN
- /* 3412 machines */
- #error PDP endianness not supported yet!
- #else
- #error unknown endianness!
- #endif
-#endif
-
-/* Per RFC */
-struct mld1
-{
- __u8 type;
- __u8 code;
- __u16 csum;
- __u16 mrc;
- __u16 resv1;
- struct in6_addr mca;
-};
-
-/* The timeout for queries */
-/* as per RFC3810 MLDv2 "9.2. Query Interval" */
-#define ECMH_SUBSCRIPTION_TIMEOUT 15
-
-/* Robustness Factor, per RFC3810 MLDv2 "9.1. Robustness Variable" */
-#define ECMH_ROBUSTNESS_FACTOR 2
-
-
-/* MLDv2 Report */
-#ifndef ICMP6_V2_MEMBERSHIP_REPORT
-#define ICMP6_V2_MEMBERSHIP_REPORT 143
-#endif
-/* MLDv2 Report - Experimental Code */
-#ifndef ICMP6_V2_MEMBERSHIP_REPORT_EXP
-#define ICMP6_V2_MEMBERSHIP_REPORT_EXP 206
-#endif
-
-/* MLDv2 Exclude/Include */
-
-#ifndef MLD2_MODE_IS_INCLUDE
-#define MLD2_MODE_IS_INCLUDE 1
-#endif
-#ifndef MLD2_MODE_IS_EXCLUDE
-#define MLD2_MODE_IS_EXCLUDE 2
-#endif
-#ifndef MLD2_CHANGE_TO_INCLUDE
-#define MLD2_CHANGE_TO_INCLUDE 3
-#endif
-#ifndef MLD2_CHANGE_TO_EXCLUDE
-#define MLD2_CHANGE_TO_EXCLUDE 4
-#endif
-#ifndef MLD2_ALLOW_NEW_SOURCES
-#define MLD2_ALLOW_NEW_SOURCES 5
-#endif
-#ifndef MLD2_BLOCK_OLD_SOURCES
-#define MLD2_BLOCK_OLD_SOURCES 6
-#endif
-
-#ifndef MLD2_ALL_MCR_INIT
-#define MLD2_ALL_MCR_INIT { { { 0xff,0x02,0,0,0,0,0,0,0,0,0,0,0,0,0,0x16 } } }
-#endif
-
-#ifndef ICMP6_ROUTER_RENUMBERING
-#define ICMP6_ROUTER_RENUMBERING 138 /* router renumbering */
-#endif
-#ifndef ICMP6_NI_QUERY
-#define ICMP6_NI_QUERY 139 /* node information request */
-#endif
-#ifndef ICMP6_NI_REPLY
-#define ICMP6_NI_REPLY 140 /* node information reply */
-#endif
-#ifndef MLD_MTRACE_RESP
-#define MLD_MTRACE_RESP 200 /* Mtrace response (to sender) */
-#endif
-#ifndef MLD_MTRACE
-#define MLD_MTRACE 201 /* Mtrace messages */
-#endif
-
-#ifndef ICMP6_DST_UNREACH_BEYONDSCOPE
-#define ICMP6_DST_UNREACH_BEYONDSCOPE 2 /* Beyond scope of source address */
-#endif
-
-#ifndef ICMP6_NI_SUCCESS
-#define ICMP6_NI_SUCCESS 0 /* node information successful reply */
-#endif
-#ifndef ICMP6_NI_REFUSED
-#define ICMP6_NI_REFUSED 1 /* node information request is refused */
-#endif
-#ifndef ICMP6_NI_UNKNOWN
-#define ICMP6_NI_UNKNOWN 2 /* unknown Qtype */
-#endif
-
-#ifndef ICMP6_ROUTER_RENUMBERING_COMMAND
-#define ICMP6_ROUTER_RENUMBERING_COMMAND 0 /* rr command */
-#endif
-#ifndef ICMP6_ROUTER_RENUMBERING_RESULT
-#define ICMP6_ROUTER_RENUMBERING_RESULT 1 /* rr result */
-#endif
-#ifndef ICMP6_ROUTER_RENUMBERING_SEQNUM_RESET
-#define ICMP6_ROUTER_RENUMBERING_SEQNUM_RESET 255 /* rr seq num reset */
-#endif
-
-#ifndef ICMP6_MEMBERSHIP_QUERY
-#define ICMP6_MEMBERSHIP_QUERY 130
-#endif
-
-#ifndef ICMP6_MEMBERSHIP_REPORT
-#define ICMP6_MEMBERSHIP_REPORT 131
-#endif
-
-#ifndef ICMP6_MEMBERSHIP_REDUCTION
-#define ICMP6_MEMBERSHIP_REDUCTION 132
-#endif
-
-#ifndef ICMP6_DST_UNREACH_NOTNEIGHBOR
-#define ICMP6_DST_UNREACH_NOTNEIGHBOR 2 /* not a neighbor */
-#endif
-
-#ifdef __UCLIBC__
-
-#ifndef IP6OPT_PADN
-#define IP6OPT_PADN 1
-#endif
-
-#ifndef ip6_ext
-struct ip6_ext
-{
- uint8_t ip6e_nxt;
- uint8_t ip6e_len;
-};
-#endif
-#endif
-
-#ifdef WIN32
-struct ip6_hdr
- {
- union
- {
- struct ip6_hdrctl
- {
- uint32_t ip6_un1_flow; /* 4 bits version, 8 bits TC,
- 20 bits flow-ID */
- uint16_t ip6_un1_plen; /* payload length */
- uint8_t ip6_un1_nxt; /* next header */
- uint8_t ip6_un1_hlim; /* hop limit */
- } ip6_un1;
- uint8_t ip6_un2_vfc; /* 4 bits version, top 4 bits tclass */
- } ip6_ctlun;
- struct in6_addr ip6_src; /* source address */
- struct in6_addr ip6_dst; /* destination address */
- };
-#define ICMP6_DST_UNREACH 1
-#define ICMP6_TIME_EXCEEDED 3
-#define ICMP6_PARAM_PROB 4
-
-#define ip6_vfc ip6_ctlun.ip6_un2_vfc
-#define ip6_plen ip6_ctlun.ip6_un1.ip6_un1_plen
-#define ip6_nxt ip6_ctlun.ip6_un1.ip6_un1_nxt
-#define ip6_hlim ip6_ctlun.ip6_un1.ip6_un1_hlim
-
-#define IP6OPT_PADN 1
-
-/* Hop-by-Hop options header. */
-struct ip6_hbh
- {
- uint8_t ip6h_nxt; /* next header. */
- uint8_t ip6h_len; /* length in units of 8 octets. */
- /* followed by options */
- };
-
-#endif
-
-
-/* From linux/net/ipv6/mcast.c */
-
-/*
- * These header formats should be in a separate include file, but icmpv6.h
- * doesn't have in6_addr defined in all cases, there is no __u128, and no
- * other files reference these.
- *
- * +-DLS 4/14/03
- *
- * Multicast Listener Discovery version 2 headers
- * Modified as they are where not ANSI C compliant
- */
-struct mld2_grec
-{
- __u8 grec_type;
- __u8 grec_auxwords;
- __u16 grec_nsrcs;
- struct in6_addr grec_mca;
-/* struct in6_addr grec_src[0]; */
-};
-
-struct mld2_report
-{
- __u8 type;
- __u8 resv1;
- __u16 csum;
- __u16 resv2;
- __u16 ngrec;
-/* struct mld2_grec grec[0]; */
-};
-
-struct mld2_query
-{
- __u8 type;
- __u8 code;
- __u16 csum;
- __u16 mrc;
- __u16 resv1;
- struct in6_addr mca;
-#if defined(__LITTLE_ENDIAN_BITFIELD)
- uint32_t qrv:3, suppress:1, resv2:4;
-#elif defined(__BIG_ENDIAN_BITFIELD)
- uint32_t resv2:4, suppress:1, qrv:3;
-#else
-#error "Please fix <asm/byteorder.h>"
-#endif
- __u8 qqic;
- __u16 nsrcs;
-/* struct in6_addr srcs[0]; */
-};
-
-#define IGMP6_UNSOLICITED_IVAL (10*HZ)
-#define MLD_QRV_DEFAULT 2
-
-#define MLD_V1_SEEN(idev) ((idev)->mc_v1_seen && \
- time_before(jiffies, (idev)->mc_v1_seen))
-
-#define MLDV2_MASK(value, nb) ((nb)>=32 ? (value) : ((1<<(nb))-1) & (value))
-#define MLDV2_EXP(thresh, nbmant, nbexp, value) \
- ((value) < (thresh) ? (value) : \
- ((MLDV2_MASK(value, nbmant) | (1<<(nbmant+nbexp))) << \
- (MLDV2_MASK((value) >> (nbmant), nbexp) + (nbexp))))
-
-#define MLDV2_QQIC(value) MLDV2_EXP(0x80, 4, 3, value)
-#define MLDV2_MRC(value) MLDV2_EXP(0x8000, 12, 3, value)
-
-#define bool int
-
-#define RAW_RX_BUF_SIZE 1024*1024
-
-struct lookup
-{
- unsigned int num;
- const char *desc;
-};
-
-/* Our configuration structure */
-struct conf
-{
- unsigned int maxinterfaces; /* The max number of interfaces the array can hold */
- struct intnode *ints; /* The interfaces we are watching */
-
- struct mc_group *groups;
-
- bool quit; /* Global Quit signal */
-
- bool promisc; /* Make interfaces promisc? (To be sure to receive all MLD's) */
- bool mode; /* Streamer 0 /Client mode 1 */
-
- uint8_t *buffer; /* Our buffer */
- unsigned int bufferlen; /* Length of the buffer */
-
- int rawsocket; /* Single RAW socket for sending and receiving everything */
-
- unsigned int stat_packets_received; /* Number of packets received */
- unsigned int stat_packets_sent; /* Number of packets forwarded */
- unsigned int stat_bytes_received; /* Number of bytes received */
- unsigned int stat_bytes_sent; /* Number of bytes forwarded */
- unsigned int stat_icmp_received; /* Number of ICMP's received */
- unsigned int stat_icmp_sent; /* Number of ICMP's sent */
-
- unsigned int mca_groups;
- unsigned int subscribers;
- cmdline_t *cmd;
-#ifdef SERVER
- tuner_t *tuner_parms;
- int tuner_number;
-
- satellite_list_t *sat_list;
- int sat_list_num;
- int readconfig;
- pthread_t mld_timer_thread;
- pthread_t collect_stats_thread;
- pthread_t stream_tca_thread;
- pthread_t stream_tra_thread;
-
- int tca_id;
-#endif
-
- pthread_mutex_t lock;
-};
-
-/* Global Stuff */
-extern struct conf *g_conf;
-extern struct lookup mld2_grec_types[];
-
-
-const char *lookup (struct lookup *l, unsigned int num);
-const char *icmpv6_type (unsigned int type);
-const char *icmpv6_code (unsigned int type, unsigned int code);
-
-uint16_t ipv6_checksum (const struct ip6_hdr *ip6, uint8_t protocol, const void *data, const uint16_t length);
-void sendpacket6 (struct intnode *intn, const struct ip6_hdr *iph, const uint16_t len);
-//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
-int send_mldv2_report (struct intnode *intn, int grec_number, struct in6_addr *mcas, int srcn, struct in6_addr *sources, int mode);
-int start_mld_daemon (void);
-
-#endif