summaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-02-24 00:12:35 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-02-24 00:12:35 +0000
commit482368b1a8e45430672c58c9a42e7d2004367126 (patch)
treece2a1a567d4d62dee7c2e71a46a99cf72cf1d606 /include/net
parente4d0251c6f56ab2e191afb70f80f382793e23f74 (diff)
Merge with 2.3.47. Guys, this is buggy as shit. You've been warned.
Diffstat (limited to 'include/net')
-rw-r--r--include/net/br.h330
-rw-r--r--include/net/ip.h1
-rw-r--r--include/net/pkt_sched.h11
-rw-r--r--include/net/profile.h11
-rw-r--r--include/net/sock.h1
5 files changed, 15 insertions, 339 deletions
diff --git a/include/net/br.h b/include/net/br.h
deleted file mode 100644
index bfa25b645..000000000
--- a/include/net/br.h
+++ /dev/null
@@ -1,330 +0,0 @@
-#include <linux/config.h>
-/*
- * Constants and structure definitions for the bridging code
- */
-
-#if !defined(One)
-#define Zero 0
-#define One 1
-#endif /* !defined(One) */
-
-#if !defined(TRUE)
-#define FALSE 0
-#define TRUE 1
-#endif /* !defined(TRUE) */
-
-/** port states. **/
-#define Disabled 0 /* (4.4 5) */
-#define Listening 1 /* (4.4.2) */
-#define Learning 2 /* (4.4.3) */
-#define Forwarding 3 /* (4 4 4) */
-#define Blocking 4 /* (4.4.1) */
-
-
-/* MAG Yich! Easiest way of giving a configurable number of ports
- * If you want more than 32, change BR_MAX_PORTS and recompile brcfg!
- */
-#define BR_MAX_PORTS (32)
-#if CONFIG_BRIDGE_NUM_PORTS > BR_MAX_PORTS
-#undef CONFIG_BRIDGE_NUM_PORTS
-#define CONFIG_BRIDGE_NUM_PORTS BR_MAX_PORTS
-#endif
-#define No_of_ports CONFIG_BRIDGE_NUM_PORTS
-/* arbitrary choice, to allow the code below to compile */
-
-#define All_ports (No_of_ports + 1)
-
-/*
- * We time out our entries in the FDB after this many seconds.
- */
-#define FDB_TIMEOUT 20 /* JRP: 20s as NSC bridge code, was 300 for Linux */
-
-/*
- * the following defines are the initial values used when the
- * bridge is booted. These may be overridden when this bridge is
- * not the root bridge. These are the recommended default values
- * from the 802.1d specification.
- */
-#define BRIDGE_MAX_AGE 20
-#define BRIDGE_HELLO_TIME 2
-#define BRIDGE_FORWARD_DELAY 15
-#define HOLD_TIME 1
-
-/* broacast/multicast storm limitation. This per source. */
-#define MAX_MCAST_PER_PERIOD 4
-#define MCAST_HOLD_TIME (10*HZ/100)
-
-#define Default_path_cost 10
-
-/*
- * minimum increment possible to avoid underestimating age, allows for BPDU
- * transmission time
- */
-#define Message_age_increment 1
-
-#define No_port 0
-/*
- * reserved value for Bridge's root port parameter indicating no root port,
- * used when Bridge is the root - also used to indicate the source when
- * a frame is being generated by a higher layer protocol on this host
- */
-
-/** Configuration BPDU Parameters (4.5.1) **/
-
-typedef struct {
- union {
- struct {
- unsigned short priority;
- unsigned char ula[6];
- } p_u;
- unsigned int id[2];
- } bi;
-} bridge_id_t;
-
-#define BRIDGE_PRIORITY bi.p_u.priority
-#define BRIDGE_ID_ULA bi.p_u.ula
-#define BRIDGE_ID bi.id
-
-/* JRP: on the network the flags field is between "type" and "root_id"
- * this is unfortunated! To make the code portable to a RISC machine
- * the pdus are now massaged a little bit for processing
- */
-#define TOPOLOGY_CHANGE 0x01
-#define TOPOLOGY_CHANGE_ACK 0x80
-#define BRIDGE_BPDU_8021_CONFIG_SIZE 35 /* real size */
-#define BRIDGE_BPDU_8021_CONFIG_FLAG_OFFSET 4
-#define BRIDGE_BPDU_8021_PROTOCOL_ID 0
-#define BRIDGE_BPDU_8021_PROTOCOL_VERSION_ID 0
-#define BRIDGE_LLC1_HS 3
-#define BRIDGE_LLC1_DSAP 0x42
-#define BRIDGE_LLC1_SSAP 0x42
-#define BRIDGE_LLC1_CTRL 0x03
-
-typedef struct {
- unsigned short protocol_id;
- unsigned char protocol_version_id;
- unsigned char type;
- bridge_id_t root_id; /* (4.5.1.1) */
- unsigned int root_path_cost; /* (4.5.1.2) */
- bridge_id_t bridge_id; /* (4.5.1.3) */
- unsigned short port_id; /* (4.5.1.4) */
- unsigned short message_age; /* (4.5.1.5) */
- unsigned short max_age; /* (4.5.1.6) */
- unsigned short hello_time; /* (4.5.1.7) */
- unsigned short forward_delay; /* (4.5.1.8) */
- unsigned char top_change_ack;
- unsigned char top_change;
-} Config_bpdu;
-
-#ifdef __LITTLE_ENDIAN
-#define config_bpdu_hton(config_bpdu) \
- (config_bpdu)->root_path_cost = htonl((config_bpdu)->root_path_cost); \
- (config_bpdu)->port_id = htons((config_bpdu)->port_id); \
- (config_bpdu)->message_age = htons((config_bpdu)->message_age); \
- (config_bpdu)->max_age = htons((config_bpdu)->max_age); \
- (config_bpdu)->hello_time = htons((config_bpdu)->hello_time); \
- (config_bpdu)->forward_delay = htons((config_bpdu)->forward_delay);
-#else
-#define config_bpdu_hton(config_bpdu)
-#endif
-#define config_bpdu_ntoh config_bpdu_hton
-
-
-/** Topology Change Notification BPDU Parameters (4.5.2) **/
-
-typedef struct {
- unsigned short protocol_id;
- unsigned char protocol_version_id;
- unsigned char type;
-} Tcn_bpdu;
-
-#define BPDU_TYPE_CONFIG 0
-#define BPDU_TYPE_TOPO_CHANGE 128
-
-/** Bridge Parameters (4.5.3) **/
-typedef struct {
- bridge_id_t designated_root; /* (4.5.3.1) */
- unsigned int root_path_cost; /* (4.5.3.2) */
- unsigned int root_port; /* (4.5.3.3) */
- unsigned short max_age; /* (4.5.3.4) */
- unsigned short hello_time; /* (4.5.3.5) */
- unsigned short forward_delay; /* (4.5.3.6) */
- bridge_id_t bridge_id; /* (4.5.3.7) */
- unsigned short bridge_max_age; /* (4.5.3.8) */
- unsigned short bridge_hello_time; /* (4.5.3.9) */
- unsigned short bridge_forward_delay; /* (4.5.3.10) */
- unsigned int top_change_detected; /* (4.5.3.11) */
- unsigned int top_change; /* (4.5.3.12) */
- unsigned short topology_change_time; /* (4.5.3.13) */
- unsigned short hold_time; /* (4.5.3.14) */
- unsigned int instance;
-} Bridge_data;
-
-/** Port Parameters (4.5.5) **/
-typedef struct {
- unsigned short port_id; /* (4.5.5.1) */
- unsigned int state; /* (4.5.5.2) */
- unsigned int path_cost; /* (4.5.5.3) */
- bridge_id_t designated_root; /* (4.5.5.4) */
- unsigned int designated_cost; /* (4.5.5.5) */
- bridge_id_t designated_bridge; /* (4.5.5.6) */
- unsigned short designated_port; /* (4.5.5.7) */
- unsigned int top_change_ack; /* (4.5.5.8) */
- unsigned int config_pending; /* (4.5.5.9) */
- bridge_id_t ifmac;
- char ifname[IFNAMSIZ]; /* Make life easier for brcfg */
- struct net_device *dev;
- struct fdb *fdb; /* head of per port fdb chain */
-} Port_data;
-
-
-
-/** types to support timers for this pseudo-implementation. **/
-typedef struct {
- unsigned int active; /* timer in use. */
- unsigned int value; /* current value of timer,
- * counting up. */
-} Timer;
-
-struct fdb {
- unsigned char ula[6];
- unsigned char pad[2];
- unsigned short port;
- unsigned int timer;
- unsigned short flags;
-#define FDB_ENT_VALID 0x01
- unsigned short mcast_count;
- unsigned int mcast_timer; /* oldest xxxxxcast */
-
-/* AVL tree of all addresses, sorted by address */
- short fdb_avl_height;
- struct fdb *fdb_avl_left;
- struct fdb *fdb_avl_right;
-/* linked list of addresses for each port */
- struct fdb *fdb_next;
-};
-
-/* data returned on BRCMD_DISPLAY_FDB */
-struct fdb_info {
- unsigned char ula[6];
- unsigned char port;
- unsigned char flags;
- unsigned int timer;
-};
-struct fdb_info_hdr {
- int copied; /* nb of entries copied to user */
- int not_copied; /* when user buffer is too small */
- int cmd_time;
-};
-
-#define IS_BRIDGED 0x2e
-
-
-#define BR_MAX_PROTOCOLS 32
-#define BR_MAX_PROT_STATS BR_MAX_PROTOCOLS
-
-/* policy values for policy field */
-#define BR_ACCEPT 1
-#define BR_REJECT 0
-
-/* JRP: extra statistics for debug */
-typedef struct {
- /* br_receive_frame counters */
- int port_disable_up_stack;
- int rcv_bpdu;
- int notForwarding;
- int forwarding_up_stack;
- int unknown_state;
-
- /* br_tx_frame counters */
- int port_disable;
- int port_not_disable;
-
- /* br_forward counters */
- int local_multicast;
- int forwarded_multicast; /* up stack as well */
- int flood_unicast;
- int aged_flood_unicast;
- int forwarded_unicast;
- int forwarded_unicast_up_stack;
- int forwarded_ip_up_stack;
- int forwarded_ip_up_stack_lie; /* received on alternate device */
- int arp_for_local_mac;
- int drop_same_port;
- int drop_same_port_aged;
- int drop_multicast;
-} br_stats_counter;
-
-struct br_stat {
- unsigned int flags;
- Bridge_data bridge_data;
- unsigned int policy;
- unsigned int exempt_protocols;
- unsigned short protocols[BR_MAX_PROTOCOLS];
- unsigned short prot_id[BR_MAX_PROT_STATS]; /* Protocol encountered */
- unsigned int prot_counter[BR_MAX_PROT_STATS]; /* How many packets ? */
- br_stats_counter packet_cnts;
- unsigned int num_ports;
- Port_data port_data[BR_MAX_PORTS + 1];
-};
-
-/* defined flags for br_stat.flags */
-#define BR_UP 0x0001 /* bridging enabled */
-#define BR_DEBUG 0x0002 /* debugging enabled */
-#define BR_PROT_STATS 0x0004 /* protocol statistics enabled */
-#define BR_STP_DISABLED 0x0008 /* Spanning tree protocol disabled */
-
-struct br_cf {
- unsigned int cmd;
- unsigned int arg1;
- unsigned int arg2;
-};
-
-/* defined cmds */
-#define BRCMD_BRIDGE_ENABLE 1
-#define BRCMD_BRIDGE_DISABLE 2
-#define BRCMD_PORT_ENABLE 3 /* arg1 = port */
-#define BRCMD_PORT_DISABLE 4 /* arg1 = port */
-#define BRCMD_SET_BRIDGE_PRIORITY 5 /* arg1 = priority */
-#define BRCMD_SET_PORT_PRIORITY 6 /* arg1 = port, arg2 = priority */
-#define BRCMD_SET_PATH_COST 7 /* arg1 = port, arg2 = cost */
-#define BRCMD_DISPLAY_FDB 8
-#define BRCMD_ENABLE_DEBUG 9
-#define BRCMD_DISABLE_DEBUG 10
-#define BRCMD_SET_POLICY 11 /* arg1 = default policy (1==bridge all) */
-#define BRCMD_EXEMPT_PROTOCOL 12 /* arg1 = protocol (see net/if_ether.h) */
-#define BRCMD_ENABLE_PROT_STATS 13
-#define BRCMD_DISABLE_PROT_STATS 14
-#define BRCMD_ZERO_PROT_STATS 15
-#define BRCMD_TOGGLE_STP 16
-#define BRCMD_IF_ENABLE 17 /* arg1 = if_index */
-#define BRCMD_IF_DISABLE 18 /* arg1 = if_index */
-#define BRCMD_SET_IF_PRIORITY 19 /* arg1 = if_index, arg2 = priority */
-#define BRCMD_SET_IF_PATH_COST 20 /* arg1 = if_index, arg2 = cost */
-
-/* prototypes of exported bridging functions... */
-
-#ifdef __KERNEL__
-void br_init(void);
-int br_receive_frame(struct sk_buff *skb); /* 3.5 */
-int br_tx_frame(struct sk_buff *skb);
-int brg_init(void);
-int br_ioctl(unsigned int cmd, void *arg);
-void requeue_fdb(struct fdb *node, int new_port);
-
-struct fdb *br_avl_find_addr(unsigned char addr[6]);
-struct fdb *br_avl_insert (struct fdb * new_node);
-void sprintf_avl (char **pbuffer, struct fdb * tree, off_t *pos,int* len, off_t offset, int length);
-void br_avl_delete_by_port(int port);
-int br_call_bridge(struct sk_buff *skb, unsigned short type);
-void br_spacedevice_register(void);
-
-/* externs */
-
-extern struct br_stat br_stats;
-extern Port_data port_info[];
-
-#endif
-
-
-
diff --git a/include/net/ip.h b/include/net/ip.h
index a17c12bbd..ecf397dbb 100644
--- a/include/net/ip.h
+++ b/include/net/ip.h
@@ -41,7 +41,6 @@
struct inet_skb_parm
{
struct ip_options opt; /* Compiled IP options */
- u16 redirport; /* Redirect port */
unsigned char flags;
#define IPSKB_MASQUERADED 1
diff --git a/include/net/pkt_sched.h b/include/net/pkt_sched.h
index 2c4b4cff9..2089faac1 100644
--- a/include/net/pkt_sched.h
+++ b/include/net/pkt_sched.h
@@ -7,9 +7,14 @@
#define PSCHED_CLOCK_SOURCE PSCHED_JIFFIES
+#include <linux/config.h>
#include <linux/pkt_sched.h>
#include <net/pkt_cls.h>
+#ifdef CONFIG_X86_TSC
+#include <asm/msr.h>
+#endif
+
struct rtattr;
struct Qdisc;
@@ -247,11 +252,11 @@ extern int psched_clock_scale;
#define PSCHED_US2JIFFIE(delay) (((delay)+psched_clock_per_hz-1)/psched_clock_per_hz)
-#if CPU == 586 || CPU == 686
+#ifdef CONFIG_X86_TSC
#define PSCHED_GET_TIME(stamp) \
({ u64 __cur; \
- __asm__ __volatile__ (".byte 0x0f,0x31" :"=A" (__cur)); \
+ rdtscll(__cur); \
(stamp) = __cur>>psched_clock_scale; \
})
@@ -430,7 +435,7 @@ extern int qdisc_restart(struct net_device *dev);
extern __inline__ void qdisc_run(struct net_device *dev)
{
- while (!test_bit(LINK_STATE_XOFF, &dev->state) &&
+ while (!netif_queue_stopped(dev) &&
qdisc_restart(dev)<0)
/* NOTHING */;
}
diff --git a/include/net/profile.h b/include/net/profile.h
index 82fad0a37..ebba04ae9 100644
--- a/include/net/profile.h
+++ b/include/net/profile.h
@@ -9,6 +9,10 @@
#include <linux/kernel.h>
#include <asm/system.h>
+#ifdef CONFIG_X86_TSC
+#include <asm/msr.h>
+#endif
+
struct net_profile_slot
{
char id[16];
@@ -25,14 +29,11 @@ extern atomic_t net_profile_active;
extern struct timeval net_profile_adjust;
extern void net_profile_irq_adjust(struct timeval *entered, struct timeval* leaved);
-#if CPU == 586 || CPU == 686
-
+#ifdef CONFIG_X86_TSC
extern __inline__ void net_profile_stamp(struct timeval *pstamp)
{
- __asm__ __volatile__ (".byte 0x0f,0x31"
- :"=a" (pstamp->tv_usec),
- "=d" (pstamp->tv_sec));
+ rdtsc(pstamp->tv_usec, pstamp->tv_sec);
}
extern __inline__ void net_profile_accumulate(struct timeval *entered,
diff --git a/include/net/sock.h b/include/net/sock.h
index 92519ee88..3bc870fc4 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -35,6 +35,7 @@
#include <linux/config.h>
#include <linux/timer.h>
+#include <linux/cache.h>
#include <linux/in.h> /* struct sockaddr_in */
#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)