patch-2.1.68 linux/include/linux/net_alias.h
Next file: linux/include/linux/netdevice.h
Previous file: linux/include/linux/net.h
Back to the patch index
Back to the overall index
- Lines: 188
- Date:
Wed Dec 31 16:00:00 1969
- Orig file:
v2.1.67/linux/include/linux/net_alias.h
- Orig date:
Mon Jul 7 16:02:47 1997
diff -u --recursive --new-file v2.1.67/linux/include/linux/net_alias.h linux/include/linux/net_alias.h
@@ -1,187 +0,0 @@
-/*
- * NET_ALIAS network device aliasing definitions.
- *
- *
- * Version: @(#)net_alias.h 0.43 12/20/95
- *
- * Author: Juan Jose Ciarlante, <jjciarla@raiz.uncu.edu.ar>
- *
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version
- * 2 of the License, or (at your option) any later version.
- *
- */
-
-#ifndef _NET_ALIAS_H
-#define _NET_ALIAS_H
-
-#include <linux/config.h>
-
-#ifdef CONFIG_NET_ALIAS
-#include <linux/types.h>
-#include <linux/if.h>
-#include <linux/netdevice.h>
-
-/*
- * max. alias slot number allowed
- */
-
-#define NET_ALIAS_MAX_SLOT 256
-
-struct net_alias;
-struct net_alias_info;
-struct net_alias_type;
-
-
-/*
- * Main alias structure
- * Note that *defines* dev & devname.
- */
-
-struct net_alias
-{
- struct device dev; /* alias device defn*/
- char name[IFNAMSIZ]; /* device name defn */
- unsigned hash; /* my hash value: for quick rehash */
- unsigned slot; /* slot number */
- void *data; /* private data */
- struct device *main_dev; /* pointer to main device */
- struct net_alias_type *nat; /* alias type object bound */
- struct net_alias *next; /* next alias (hashed linked list) */
-};
-
-
-/*
- * alias structure pointed by main device
- * it holds main device's alias hash table
- */
-
-struct net_alias_info
-{
- int n_aliases; /* num aliases */
- struct device *taildev; /* my last (alias) device */
- struct net_alias *hash_tab[16]; /* hashed alias table */
-};
-
-/*
- * net_alias_type class
- * Declares a generic (AF_ independent) structure that will
- * manage generic to family-specific behavior.
- */
-
-struct net_alias_type
-{
- int type; /* aliasing type: address family */
- int n_attach; /* number of aliases attached */
- char name[16]; /* af_name */
- __u32 (*get_addr32) /* get __u32 addr 'representation'*/
- (struct net_alias_type *this, struct sockaddr*);
- int (*dev_addr_chk) /* address checking func: */
- (struct net_alias_type *this, struct device *, struct sockaddr *);
- struct device * (*dev_select) /* closest alias selector*/
- (struct net_alias_type *this, struct device *, struct sockaddr *sa);
- int (*alias_init_1) /* called after alias creation: */
- (struct net_alias_type *this,struct net_alias *alias, struct sockaddr *sa);
- int (*alias_done_1) /* called before alias deletion */
- (struct net_alias_type *this, struct net_alias *alias);
- int (*alias_print_1)
- (struct net_alias_type *this, struct net_alias *alias, char *buf, int len);
- struct net_alias_type *next; /* link */
-};
-
-
-/*
- * is dev an alias?
- */
-
-#ifdef CONFIG_NET_ALIAS
-
-extern __inline__ int net_alias_is(struct device *dev)
-{
- return (dev->my_alias != NULL);
-}
-
-/*
- * Does dev have aliases?
- */
-
-extern __inline__ int net_alias_has(struct device *dev)
-{
- return (dev->alias_info != NULL);
-}
-
-/*
- * Returns MY 'true' main device
- * intended for alias devices
- */
-
-extern __inline__ struct device *net_alias_main_dev(struct device *dev)
-{
- return (net_alias_is(dev))? dev->my_alias->main_dev : dev;
-}
-
-
-/*
- * Returns NEXT 'true' device
- * intended for true devices
- */
-
-extern __inline__ struct device *net_alias_nextdev(struct device *dev)
-{
- return (dev->alias_info)? dev->alias_info->taildev->next : dev->next;
-}
-
-/*
- * Sets NEXT 'true' device
- * Intended for main devices (treat main device as block: dev+aliases).
- */
-
-extern __inline__ struct device *net_alias_nextdev_set(struct device *dev, struct device *nextdev)
-{
- struct device *pdev = dev;
- if (net_alias_has(dev))
- {
- pdev = dev->alias_info->taildev; /* point to last dev alias */
- }
- pdev->next = nextdev;
- return nextdev;
-}
-
-#else
-
-#define net_alias_has(dev) (0)
-#define net_alias_is(dev) (0)
-#define net_alias_main_dev(dev) (dev)
-#endif
-
-
-extern void net_alias_init(void);
-
-extern struct device * net_alias_dev_get(char *dev_name, int aliasing_ok, int *err, struct sockaddr *sa, void *data);
-extern int net_alias_dev_rehash(struct device *dev, struct sockaddr *sa);
-
-extern int net_alias_getinfo(char *buf, char **, off_t , int , int );
-extern int net_alias_types_getinfo(char *buf, char **, off_t , int , int );
-
-extern int register_net_alias_type(struct net_alias_type *nat, int type);
-extern int unregister_net_alias_type(struct net_alias_type *nat);
-
-extern struct device * net_alias_dev_chk(struct device *main_dev, struct sockaddr *sa, int flags_on, int flags_off);
-extern struct device * net_alias_dev_chk32(struct device *main_dev, int family, __u32 addr32, int flags_on, int flags_off);
-
-extern struct device * net_alias_dev_rcv_sel(struct device *main_dev, struct sockaddr *sa_src, struct sockaddr *sa_dst);
-extern struct device * net_alias_dev_rcv_sel32(struct device *main_dev, int family, __u32 src, __u32 dst);
-
-
-
-#else
-
-#define net_alias_is(a) 0
-#define net_alias_main_dev(dev) (dev)
-#define net_alias_has(dev) 0
-
-#endif
-
-#endif /* _NET_ALIAS_H */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov