patch-2.4.26 linux-2.4.26/include/net/sctp/tsnmap.h
Next file: linux-2.4.26/include/net/sctp/ulpevent.h
Previous file: linux-2.4.26/include/net/sctp/structs.h
Back to the patch index
Back to the overall index
- Lines: 79
- Date:
2004-04-14 06:05:40.000000000 -0700
- Orig file:
linux-2.4.25/include/net/sctp/tsnmap.h
- Orig date:
2003-11-28 10:26:21.000000000 -0800
diff -urN linux-2.4.25/include/net/sctp/tsnmap.h linux-2.4.26/include/net/sctp/tsnmap.h
@@ -1,5 +1,8 @@
-/* SCTP kernel reference Implementation Copyright (C) 1999-2001
- * Cisco, Motorola, Intel, and International Business Machines Corp.
+/* SCTP kernel reference Implementation
+ * Copyright (c) 1999-2000 Cisco, Inc.
+ * Copyright (c) 1999-2001 Motorola, Inc.
+ * Copyright (c) 2001-2003 International Business Machines, Corp.
+ * Copyright (c) 2001 Intel Corp.
*
* This file is part of the SCTP kernel reference Implementation
*
@@ -97,13 +100,16 @@
/* Data chunks pending receipt. used by SCTP_STATUS sockopt */
__u16 pending_data;
- /* We record duplicate TSNs here. We clear this after
+ /* Record duplicate TSNs here. We clear this after
* every SACK. Store up to SCTP_MAX_DUP_TSNS worth of
* information.
*/
__u32 dup_tsns[SCTP_MAX_DUP_TSNS];
__u16 num_dup_tsns;
+ /* Record gap ack block information here. */
+ struct sctp_gap_ack_block gabs[SCTP_MAX_GABS];
+
int malloced;
__u8 raw_map[0];
@@ -140,12 +146,18 @@
void sctp_tsnmap_mark(struct sctp_tsnmap *, __u32 tsn);
/* Retrieve the Cumulative TSN ACK Point. */
-__u32 sctp_tsnmap_get_ctsn(const struct sctp_tsnmap *);
+static inline __u32 sctp_tsnmap_get_ctsn(const struct sctp_tsnmap *map)
+{
+ return map->cumulative_tsn_ack_point;
+}
/* Retrieve the highest TSN we've seen. */
-__u32 sctp_tsnmap_get_max_tsn_seen(const struct sctp_tsnmap *);
+static inline __u32 sctp_tsnmap_get_max_tsn_seen(const struct sctp_tsnmap *map)
+{
+ return map->max_tsn_seen;
+}
-/* How many Duplicate TSNs are stored? */
+/* How many duplicate TSNs are stored? */
static inline __u16 sctp_tsnmap_num_dups(struct sctp_tsnmap *map)
{
return map->num_dup_tsns;
@@ -158,6 +170,27 @@
return map->dup_tsns;
}
+/* How many gap ack blocks do we have recorded? */
+__u16 sctp_tsnmap_num_gabs(struct sctp_tsnmap *map);
+
+/* Refresh the count on pending data. */
+__u16 sctp_tsnmap_pending(struct sctp_tsnmap *map);
+
+/* Return pointer to gap ack blocks as needed by SACK. */
+static inline struct sctp_gap_ack_block *sctp_tsnmap_get_gabs(struct sctp_tsnmap *map)
+{
+ return map->gabs;
+}
+
+/* Is there a gap in the TSN map? */
+static inline int sctp_tsnmap_has_gap(const struct sctp_tsnmap *map)
+{
+ int has_gap;
+
+ has_gap = (map->cumulative_tsn_ack_point != map->max_tsn_seen);
+ return has_gap;
+}
+
/* Mark a duplicate TSN. Note: limit the storage of duplicate TSN
* information.
*/
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)