Commit 27a7b041 authored by David S. Miller's avatar David S. Miller
parents ad12583f 4323add6
......@@ -2536,11 +2536,11 @@ S: Maintained
TIPC NETWORK LAYER
P: Per Liden
M: per.liden@nospam.ericsson.com
M: per.liden@ericsson.com
P: Jon Maloy
M: jon.maloy@nospam.ericsson.com
M: jon.maloy@ericsson.com
P: Allan Stephens
M: allan.stephens@nospam.windriver.com
M: allan.stephens@windriver.com
L: tipc-discussion@lists.sourceforge.net
W: http://tipc.sourceforge.net/
W: http://tipc.cslab.ericsson.net/
......
......@@ -72,6 +72,7 @@
* over Ethernet
*/
#define ETH_P_AOE 0x88A2 /* ATA over Ethernet */
#define ETH_P_TIPC 0x88CA /* TIPC */
/*
* Non DIX types. Won't clash for 1500 types.
......
......@@ -168,10 +168,13 @@
#define TIPC_MAX_LINK_NAME 60 /* format = Z.C.N:interface-Z.C.N:interface */
/*
* Link priority limits (range from 0 to # priorities - 1)
* Link priority limits (min, default, max, media default)
*/
#define TIPC_NUM_LINK_PRI 32
#define TIPC_MIN_LINK_PRI 0
#define TIPC_DEF_LINK_PRI 10
#define TIPC_MAX_LINK_PRI 31
#define TIPC_MEDIA_LINK_PRI (TIPC_MAX_LINK_PRI + 1)
/*
* Link tolerance limits (min, default, max), in ms
......
......@@ -150,6 +150,7 @@ endif
source "net/dccp/Kconfig"
source "net/sctp/Kconfig"
source "net/tipc/Kconfig"
source "net/atm/Kconfig"
source "net/bridge/Kconfig"
source "net/8021q/Kconfig"
......@@ -159,7 +160,6 @@ source "net/ipx/Kconfig"
source "drivers/net/appletalk/Kconfig"
source "net/x25/Kconfig"
source "net/lapb/Kconfig"
source "net/tipc/Kconfig"
config NET_DIVERT
bool "Frame Diverter (EXPERIMENTAL)"
......
......@@ -8,7 +8,12 @@ menu "TIPC Configuration (EXPERIMENTAL)"
config TIPC
tristate "The TIPC Protocol (EXPERIMENTAL)"
---help---
TBD.
The Transparent Inter Process Communication (TIPC) protocol is
specially designed for intra cluster communication. This protocol
originates from Ericsson where it has been used in carrier grade
cluster applications for many years.
For more information about TIPC, see http://tipc.sourceforge.net.
This protocol support is also available as a module ( = code which
can be inserted in and removed from the running kernel whenever you
......
......@@ -47,7 +47,7 @@ u32 tipc_get_addr(void)
}
/**
* addr_domain_valid - validates a network domain address
* tipc_addr_domain_valid - validates a network domain address
*
* Accepts <Z.C.N>, <Z.C.0>, <Z.0.0>, and <0.0.0>,
* where Z, C, and N are non-zero and do not exceed the configured limits.
......@@ -55,7 +55,7 @@ u32 tipc_get_addr(void)
* Returns 1 if domain address is valid, otherwise 0
*/
int addr_domain_valid(u32 addr)
int tipc_addr_domain_valid(u32 addr)
{
u32 n = tipc_node(addr);
u32 c = tipc_cluster(addr);
......@@ -79,7 +79,7 @@ int addr_domain_valid(u32 addr)
}
/**
* addr_node_valid - validates a proposed network address for this node
* tipc_addr_node_valid - validates a proposed network address for this node
*
* Accepts <Z.C.N>, where Z, C, and N are non-zero and do not exceed
* the configured limits.
......@@ -87,8 +87,8 @@ int addr_domain_valid(u32 addr)
* Returns 1 if address can be used, otherwise 0
*/
int addr_node_valid(u32 addr)
int tipc_addr_node_valid(u32 addr)
{
return (addr_domain_valid(addr) && tipc_node(addr));
return (tipc_addr_domain_valid(addr) && tipc_node(addr));
}
......@@ -122,7 +122,7 @@ static inline char *addr_string_fill(char *string, u32 addr)
return string;
}
int addr_domain_valid(u32);
int addr_node_valid(u32 addr);
int tipc_addr_domain_valid(u32);
int tipc_addr_node_valid(u32 addr);
#endif
This diff is collapsed.
......@@ -70,14 +70,14 @@ struct port_list {
struct node;
extern char bc_link_name[];
extern char tipc_bclink_name[];
/**
* nmap_get - determine if node exists in a node map
*/
static inline int nmap_get(struct node_map *nm_ptr, u32 node)
static inline int tipc_nmap_get(struct node_map *nm_ptr, u32 node)
{
int n = tipc_node(node);
int w = n / WSIZE;
......@@ -90,7 +90,7 @@ static inline int nmap_get(struct node_map *nm_ptr, u32 node)
* nmap_add - add a node to a node map
*/
static inline void nmap_add(struct node_map *nm_ptr, u32 node)
static inline void tipc_nmap_add(struct node_map *nm_ptr, u32 node)
{
int n = tipc_node(node);
int w = n / WSIZE;
......@@ -106,7 +106,7 @@ static inline void nmap_add(struct node_map *nm_ptr, u32 node)
* nmap_remove - remove a node from a node map
*/
static inline void nmap_remove(struct node_map *nm_ptr, u32 node)
static inline void tipc_nmap_remove(struct node_map *nm_ptr, u32 node)
{
int n = tipc_node(node);
int w = n / WSIZE;
......@@ -122,7 +122,7 @@ static inline void nmap_remove(struct node_map *nm_ptr, u32 node)
* nmap_equal - test for equality of node maps
*/
static inline int nmap_equal(struct node_map *nm_a, struct node_map *nm_b)
static inline int tipc_nmap_equal(struct node_map *nm_a, struct node_map *nm_b)
{
return !memcmp(nm_a, nm_b, sizeof(*nm_a));
}
......@@ -134,8 +134,8 @@ static inline int nmap_equal(struct node_map *nm_a, struct node_map *nm_b)
* @nm_diff: output node map A-B (i.e. nodes of A that are not in B)
*/
static inline void nmap_diff(struct node_map *nm_a, struct node_map *nm_b,
struct node_map *nm_diff)
static inline void tipc_nmap_diff(struct node_map *nm_a, struct node_map *nm_b,
struct node_map *nm_diff)
{
int stop = sizeof(nm_a->map) / sizeof(u32);
int w;
......@@ -159,7 +159,7 @@ static inline void nmap_diff(struct node_map *nm_a, struct node_map *nm_b,
* port_list_add - add a port to a port list, ensuring no duplicates
*/
static inline void port_list_add(struct port_list *pl_ptr, u32 port)
static inline void tipc_port_list_add(struct port_list *pl_ptr, u32 port)
{
struct port_list *item = pl_ptr;
int i;
......@@ -194,7 +194,7 @@ static inline void port_list_add(struct port_list *pl_ptr, u32 port)
* Note: First item is on stack, so it doesn't need to be released
*/
static inline void port_list_free(struct port_list *pl_ptr)
static inline void tipc_port_list_free(struct port_list *pl_ptr)
{
struct port_list *item;
struct port_list *next;
......@@ -206,18 +206,18 @@ static inline void port_list_free(struct port_list *pl_ptr)
}
int bclink_init(void);
void bclink_stop(void);
void bclink_acknowledge(struct node *n_ptr, u32 acked);
int bclink_send_msg(struct sk_buff *buf);
void bclink_recv_pkt(struct sk_buff *buf);
u32 bclink_get_last_sent(void);
u32 bclink_acks_missing(struct node *n_ptr);
void bclink_check_gap(struct node *n_ptr, u32 seqno);
int bclink_stats(char *stats_buf, const u32 buf_size);
int bclink_reset_stats(void);
int bclink_set_queue_limits(u32 limit);
void bcbearer_sort(void);
void bcbearer_push(void);
int tipc_bclink_init(void);
void tipc_bclink_stop(void);
void tipc_bclink_acknowledge(struct node *n_ptr, u32 acked);
int tipc_bclink_send_msg(struct sk_buff *buf);
void tipc_bclink_recv_pkt(struct sk_buff *buf);
u32 tipc_bclink_get_last_sent(void);
u32 tipc_bclink_acks_missing(struct node *n_ptr);
void tipc_bclink_check_gap(struct node *n_ptr, u32 seqno);
int tipc_bclink_stats(char *stats_buf, const u32 buf_size);
int tipc_bclink_reset_stats(void);
int tipc_bclink_set_queue_limits(u32 limit);
void tipc_bcbearer_sort(void);
void tipc_bcbearer_push(void);
#endif
This diff is collapsed.
......@@ -37,7 +37,7 @@
#ifndef _TIPC_BEARER_H
#define _TIPC_BEARER_H
#include <net/tipc/tipc_bearer.h>
#include "core.h"
#include "bcast.h"
#define MAX_BEARERS 8
......@@ -114,26 +114,24 @@ struct bearer_name {
struct link;
extern struct bearer *bearers;
extern struct bearer *tipc_bearers;
void media_addr_printf(struct print_buf *pb, struct tipc_media_addr *a);
struct sk_buff *media_get_names(void);
void tipc_media_addr_printf(struct print_buf *pb, struct tipc_media_addr *a);
struct sk_buff *tipc_media_get_names(void);
struct sk_buff *bearer_get_names(void);
void bearer_add_dest(struct bearer *b_ptr, u32 dest);
void bearer_remove_dest(struct bearer *b_ptr, u32 dest);
void bearer_schedule(struct bearer *b_ptr, struct link *l_ptr);
struct bearer *bearer_find_interface(const char *if_name);
int bearer_resolve_congestion(struct bearer *b_ptr, struct link *l_ptr);
int bearer_init(void);
void bearer_stop(void);
int bearer_broadcast(struct sk_buff *buf, struct tipc_bearer *b_ptr,
struct tipc_media_addr *dest);
void bearer_lock_push(struct bearer *b_ptr);
struct sk_buff *tipc_bearer_get_names(void);
void tipc_bearer_add_dest(struct bearer *b_ptr, u32 dest);
void tipc_bearer_remove_dest(struct bearer *b_ptr, u32 dest);
void tipc_bearer_schedule(struct bearer *b_ptr, struct link *l_ptr);
struct bearer *tipc_bearer_find_interface(const char *if_name);
int tipc_bearer_resolve_congestion(struct bearer *b_ptr, struct link *l_ptr);
int tipc_bearer_init(void);
void tipc_bearer_stop(void);
void tipc_bearer_lock_push(struct bearer *b_ptr);
/**
* bearer_send- sends buffer to destination over bearer
* tipc_bearer_send- sends buffer to destination over bearer
*
* Returns true (1) if successful, or false (0) if unable to send
*
......@@ -150,23 +148,23 @@ void bearer_lock_push(struct bearer *b_ptr);
* and let TIPC's link code deal with the undelivered message.
*/
static inline int bearer_send(struct bearer *b_ptr, struct sk_buff *buf,
struct tipc_media_addr *dest)
static inline int tipc_bearer_send(struct bearer *b_ptr, struct sk_buff *buf,
struct tipc_media_addr *dest)
{
return !b_ptr->media->send_msg(buf, &b_ptr->publ, dest);
}
/**
* bearer_congested - determines if bearer is currently congested
* tipc_bearer_congested - determines if bearer is currently congested
*/
static inline int bearer_congested(struct bearer *b_ptr, struct link *l_ptr)
static inline int tipc_bearer_congested(struct bearer *b_ptr, struct link *l_ptr)
{
if (unlikely(b_ptr->publ.blocked))
return 1;
if (likely(list_empty(&b_ptr->cong_links)))
return 0;
return !bearer_resolve_congestion(b_ptr, l_ptr);
return !tipc_bearer_resolve_congestion(b_ptr, l_ptr);
}
#endif
This diff is collapsed.
......@@ -60,29 +60,29 @@ struct cluster {
};
extern struct node **local_nodes;
extern u32 highest_allowed_slave;
extern struct node_map cluster_bcast_nodes;
extern struct node **tipc_local_nodes;
extern u32 tipc_highest_allowed_slave;
extern struct node_map tipc_cltr_bcast_nodes;
void cluster_remove_as_router(struct cluster *c_ptr, u32 router);
void cluster_send_ext_routes(struct cluster *c_ptr, u32 dest);
struct node *cluster_select_node(struct cluster *c_ptr, u32 selector);
u32 cluster_select_router(struct cluster *c_ptr, u32 ref);
void cluster_recv_routing_table(struct sk_buff *buf);
struct cluster *cluster_create(u32 addr);
void cluster_delete(struct cluster *c_ptr);
void cluster_attach_node(struct cluster *c_ptr, struct node *n_ptr);
void cluster_send_slave_routes(struct cluster *c_ptr, u32 dest);
void cluster_broadcast(struct sk_buff *buf);
int cluster_init(void);
u32 cluster_next_node(struct cluster *c_ptr, u32 addr);
void cluster_bcast_new_route(struct cluster *c_ptr, u32 dest, u32 lo, u32 hi);
void cluster_send_local_routes(struct cluster *c_ptr, u32 dest);
void cluster_bcast_lost_route(struct cluster *c_ptr, u32 dest, u32 lo, u32 hi);
void tipc_cltr_remove_as_router(struct cluster *c_ptr, u32 router);
void tipc_cltr_send_ext_routes(struct cluster *c_ptr, u32 dest);
struct node *tipc_cltr_select_node(struct cluster *c_ptr, u32 selector);
u32 tipc_cltr_select_router(struct cluster *c_ptr, u32 ref);
void tipc_cltr_recv_routing_table(struct sk_buff *buf);
struct cluster *tipc_cltr_create(u32 addr);
void tipc_cltr_delete(struct cluster *c_ptr);
void tipc_cltr_attach_node(struct cluster *c_ptr, struct node *n_ptr);
void tipc_cltr_send_slave_routes(struct cluster *c_ptr, u32 dest);
void tipc_cltr_broadcast(struct sk_buff *buf);
int tipc_cltr_init(void);
u32 tipc_cltr_next_node(struct cluster *c_ptr, u32 addr);
void tipc_cltr_bcast_new_route(struct cluster *c_ptr, u32 dest, u32 lo, u32 hi);
void tipc_cltr_send_local_routes(struct cluster *c_ptr, u32 dest);
void tipc_cltr_bcast_lost_route(struct cluster *c_ptr, u32 dest, u32 lo, u32 hi);
static inline struct cluster *cluster_find(u32 addr)
static inline struct cluster *tipc_cltr_find(u32 addr)
{
struct _zone *z_ptr = zone_find(addr);
struct _zone *z_ptr = tipc_zone_find(addr);
if (z_ptr)
return z_ptr->clusters[1];
......
This diff is collapsed.
......@@ -39,42 +39,41 @@
/* ---------------------------------------------------------------------- */
#include <linux/tipc.h>
#include <linux/tipc_config.h>
#include "core.h"
#include "link.h"
struct sk_buff *cfg_reply_alloc(int payload_size);
int cfg_append_tlv(struct sk_buff *buf, int tlv_type,
void *tlv_data, int tlv_data_size);
struct sk_buff *cfg_reply_unsigned_type(u16 tlv_type, u32 value);
struct sk_buff *cfg_reply_string_type(u16 tlv_type, char *string);
struct sk_buff *tipc_cfg_reply_alloc(int payload_size);
int tipc_cfg_append_tlv(struct sk_buff *buf, int tlv_type,
void *tlv_data, int tlv_data_size);
struct sk_buff *tipc_cfg_reply_unsigned_type(u16 tlv_type, u32 value);
struct sk_buff *tipc_cfg_reply_string_type(u16 tlv_type, char *string);
static inline struct sk_buff *cfg_reply_none(void)
static inline struct sk_buff *tipc_cfg_reply_none(void)
{
return cfg_reply_alloc(0);
return tipc_cfg_reply_alloc(0);
}
static inline struct sk_buff *cfg_reply_unsigned(u32 value)
static inline struct sk_buff *tipc_cfg_reply_unsigned(u32 value)
{
return cfg_reply_unsigned_type(TIPC_TLV_UNSIGNED, value);
return tipc_cfg_reply_unsigned_type(TIPC_TLV_UNSIGNED, value);
}
static inline struct sk_buff *cfg_reply_error_string(char *string)
static inline struct sk_buff *tipc_cfg_reply_error_string(char *string)
{
return cfg_reply_string_type(TIPC_TLV_ERROR_STRING, string);
return tipc_cfg_reply_string_type(TIPC_TLV_ERROR_STRING, string);
}
static inline struct sk_buff *cfg_reply_ultra_string(char *string)
static inline struct sk_buff *tipc_cfg_reply_ultra_string(char *string)
{
return cfg_reply_string_type(TIPC_TLV_ULTRA_STRING, string);
return tipc_cfg_reply_string_type(TIPC_TLV_ULTRA_STRING, string);
}
struct sk_buff *cfg_do_cmd(u32 orig_node, u16 cmd,
const void *req_tlv_area, int req_tlv_space,
int headroom);
struct sk_buff *tipc_cfg_do_cmd(u32 orig_node, u16 cmd,
const void *req_tlv_area, int req_tlv_space,
int headroom);
void cfg_link_event(u32 addr, char *name, int up);
int cfg_init(void);
void cfg_stop(void);
void tipc_cfg_link_event(u32 addr, char *name, int up);
int tipc_cfg_init(void);
void tipc_cfg_stop(void);
#endif
......@@ -37,7 +37,6 @@
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/version.h>
#include <linux/random.h>
#include "core.h"
......@@ -49,14 +48,14 @@
#include "subscr.h"
#include "config.h"
int eth_media_start(void);
void eth_media_stop(void);
int handler_start(void);
void handler_stop(void);
int socket_init(void);
void socket_stop(void);
int netlink_start(void);
void netlink_stop(void);
int tipc_eth_media_start(void);
void tipc_eth_media_stop(void);
int tipc_handler_start(void);
void tipc_handler_stop(void);
int tipc_socket_init(void);
void tipc_socket_stop(void);
int tipc_netlink_start(void);
void tipc_netlink_stop(void);
#define MOD_NAME "tipc_start: "
......@@ -113,56 +112,56 @@ int tipc_get_mode(void)
}
/**
* stop_net - shut down TIPC networking sub-systems
* tipc_core_stop_net - shut down TIPC networking sub-systems
*/
void stop_net(void)
void tipc_core_stop_net(void)
{
eth_media_stop();
tipc_stop_net();
tipc_eth_media_stop();
tipc_net_stop();
}
/**
* start_net - start TIPC networking sub-systems
*/
int start_net(void)
int tipc_core_start_net(void)
{
int res;
if ((res = tipc_start_net()) ||
(res = eth_media_start())) {
stop_net();
if ((res = tipc_net_start()) ||
(res = tipc_eth_media_start())) {
tipc_core_stop_net();
}
return res;
}
/**
* stop_core - switch TIPC from SINGLE NODE to NOT RUNNING mode
* tipc_core_stop - switch TIPC from SINGLE NODE to NOT RUNNING mode
*/
void stop_core(void)
void tipc_core_stop(void)
{
if (tipc_mode != TIPC_NODE_MODE)
return;
tipc_mode = TIPC_NOT_RUNNING;
netlink_stop();
handler_stop();
cfg_stop();
subscr_stop();
reg_stop();
nametbl_stop();
ref_table_stop();
socket_stop();
tipc_netlink_stop();
tipc_handler_stop();
tipc_cfg_stop();
tipc_subscr_stop();
tipc_reg_stop();
tipc_nametbl_stop();
tipc_ref_table_stop();
tipc_socket_stop();
}
/**
* start_core - switch TIPC from NOT RUNNING to SINGLE NODE mode
* tipc_core_start - switch TIPC from NOT RUNNING to SINGLE NODE mode
*/
int start_core(void)
int tipc_core_start(void)
{
int res;
......@@ -172,16 +171,16 @@ int start_core(void)
get_random_bytes(&tipc_random, sizeof(tipc_random));
tipc_mode = TIPC_NODE_MODE;
if ((res = handler_start()) ||
(res = ref_table_init(tipc_max_ports + tipc_max_subscriptions,
tipc_random)) ||
(res = reg_start()) ||
(res = nametbl_init()) ||
(res = k_signal((Handler)subscr_start, 0)) ||
(res = k_signal((Handler)cfg_init, 0)) ||
(res = netlink_start()) ||
(res = socket_init())) {
stop_core();
if ((res = tipc_handler_start()) ||
(res = tipc_ref_table_init(tipc_max_ports + tipc_max_subscriptions,
tipc_random)) ||
(res = tipc_reg_start()) ||
(res = tipc_nametbl_init()) ||
(res = tipc_k_signal((Handler)tipc_subscr_start, 0)) ||
(res = tipc_k_signal((Handler)tipc_cfg_init, 0)) ||
(res = tipc_netlink_start()) ||
(res = tipc_socket_init())) {
tipc_core_stop();
}
return res;
}
......@@ -191,7 +190,7 @@ static int __init tipc_init(void)
{
int res;
log_reinit(CONFIG_TIPC_LOG);
tipc_log_reinit(CONFIG_TIPC_LOG);
info("Activated (compiled " __DATE__ " " __TIME__ ")\n");
tipc_own_addr = 0;
......@@ -205,7 +204,7 @@ static int __init tipc_init(void)
tipc_max_slaves = delimit(CONFIG_TIPC_SLAVE_NODES, 0, 2047);
tipc_net_id = 4711;
if ((res = start_core()))
if ((res = tipc_core_start()))
err("Unable to start in single node mode\n");
else
info("Started in single node mode\n");
......@@ -214,10 +213,10 @@ static int __init tipc_init(void)
static void __exit tipc_exit(void)
{
stop_net();
stop_core();
tipc_core_stop_net();
tipc_core_stop();
info("Deactivated\n");
log_stop();
tipc_log_stop();
}
module_init(tipc_init);
......
......@@ -37,6 +37,11 @@
#ifndef _TIPC_CORE_H
#define _TIPC_CORE_H
#include <linux/tipc.h>
#include <linux/tipc_config.h>
#include <net/tipc/tipc_msg.h>
#include <net/tipc/tipc_port.h>
#include <net/tipc/tipc_bearer.h>
#include <net/tipc/tipc.h>
#include <linux/types.h>
#include <linux/kernel.h>
......@@ -60,9 +65,9 @@
#define assert(i) BUG_ON(!(i))
struct tipc_msg;
extern struct print_buf *CONS, *LOG;
extern struct print_buf *TEE(struct print_buf *, struct print_buf *);
void msg_print(struct print_buf*,struct tipc_msg *,const char*);
extern struct print_buf *TIPC_CONS, *TIPC_LOG;
extern struct print_buf *TIPC_TEE(struct print_buf *, struct print_buf *);
void tipc_msg_print(struct print_buf*,struct tipc_msg *,const char*);
void tipc_printf(struct print_buf *, const char *fmt, ...);
void tipc_dump(struct print_buf*,const char *fmt, ...);
......@@ -79,7 +84,7 @@ void tipc_dump(struct print_buf*,const char *fmt, ...);
#define info(fmt, arg...) tipc_printf(TIPC_OUTPUT, KERN_NOTICE "TIPC: " fmt, ## arg)
#define dbg(fmt, arg...) do {if (DBG_OUTPUT) tipc_printf(DBG_OUTPUT, fmt, ## arg);} while(0)
#define msg_dbg(msg, txt) do {if (DBG_OUTPUT) msg_print(DBG_OUTPUT, msg, txt);} while(0)
#define msg_dbg(msg, txt) do {if (DBG_OUTPUT) tipc_msg_print(DBG_OUTPUT, msg, txt);} while(0)
#define dump(fmt, arg...) do {if (DBG_OUTPUT) tipc_dump(DBG_OUTPUT, fmt, ##arg);} while(0)
......@@ -89,15 +94,15 @@ void tipc_dump(struct print_buf*,const char *fmt, ...);
* here, or on a per .c file basis, by redefining these symbols. The following
* print buffer options are available:
*
* NULL : Output to null print buffer (i.e. print nowhere)
* CONS : Output to system console
* LOG : Output to TIPC log buffer
* &buf : Output to user-defined buffer (struct print_buf *)
* TEE(&buf_a,&buf_b) : Output to two print buffers (eg. TEE(CONS,LOG) )
* NULL : Output to null print buffer (i.e. print nowhere)
* TIPC_CONS : Output to system console
* TIPC_LOG : Output to TIPC log buffer
* &buf : Output to user-defined buffer (struct print_buf *)
* TIPC_TEE(&buf_a,&buf_b) : Output to two print buffers (eg. TIPC_TEE(TIPC_CONS,TIPC_LOG) )
*/
#ifndef TIPC_OUTPUT
#define TIPC_OUTPUT TEE(CONS,LOG)
#define TIPC_OUTPUT TIPC_TEE(TIPC_CONS,TIPC_LOG)
#endif
#ifndef DBG_OUTPUT
......@@ -162,10 +167,10 @@ extern atomic_t tipc_user_count;
* Routines available to privileged subsystems
*/
extern int start_core(void);
extern void stop_core(void);
extern int start_net(void);
extern void stop_net(void);
extern int tipc_core_start(void);
extern void tipc_core_stop(void);
extern int tipc_core_start_net(void);
extern void tipc_core_stop_net(void);
static inline int delimit(int val, int min, int max)
{
......@@ -183,7 +188,7 @@ static inline int delimit(int val, int min, int max)
typedef void (*Handler) (unsigned long);
u32 k_signal(Handler routine, unsigned long argument);
u32 tipc_k_signal(Handler routine, unsigned long argument);
/**
* k_init_timer - initialize a timer
......
......@@ -44,10 +44,10 @@ static char print_string[MAX_STRING];
static spinlock_t print_lock = SPIN_LOCK_UNLOCKED;
static struct print_buf cons_buf = { NULL, 0, NULL, NULL };
struct print_buf *CONS = &cons_buf;
struct print_buf *TIPC_CONS = &cons_buf;
static struct print_buf log_buf = { NULL, 0, NULL, NULL };
struct print_buf *LOG = &log_buf;
struct print_buf *TIPC_LOG = &log_buf;
#define FORMAT(PTR,LEN,FMT) \
......@@ -66,15 +66,15 @@ struct print_buf *LOG = &log_buf;
* simultaneous use of the print buffer(s) being manipulated.
* 2) tipc_printf() uses 'print_lock' to prevent simultaneous use of
* 'print_string' and to protect its print buffer(s).
* 3) TEE() uses 'print_lock' to protect its print buffer(s).
* 4) Routines of the form log_XXX() uses 'print_lock' to protect LOG.
* 3) TIPC_TEE() uses 'print_lock' to protect its print buffer(s).
* 4) Routines of the form log_XXX() uses 'print_lock' to protect TIPC_LOG.
*/
/**
* printbuf_init - initialize print buffer to empty
* tipc_printbuf_init - initialize print buffer to empty
*/
void printbuf_init(struct print_buf *pb, char *raw, u32 sz)
void tipc_printbuf_init(struct print_buf *pb, char *raw, u32 sz)
{
if (!pb || !raw || (sz < (MAX_STRING + 1)))
return;
......@@ -87,26 +87,26 @@ void printbuf_init(struct print_buf *pb, char *raw, u32 sz)
}
/**
* printbuf_reset - reinitialize print buffer to empty state
* tipc_printbuf_reset - reinitialize print buffer to empty state
*/
void printbuf_reset(struct print_buf *pb)
void tipc_printbuf_reset(struct print_buf *pb)
{
if (pb && pb->buf)
printbuf_init(pb, pb->buf, pb->size);
tipc_printbuf_init(pb, pb->buf, pb->size);
}
/**
* printbuf_empty - test if print buffer is in empty state
* tipc_printbuf_empty - test if print buffer is in empty state
*/
int printbuf_empty(struct print_buf *pb)
int tipc_printbuf_empty(struct print_buf *pb)
{
return (!pb || !pb->buf || (pb->crs == pb->buf));
}
/**
* printbuf_validate - check for print buffer overflow
* tipc_printbuf_validate - check for print buffer overflow
*
* Verifies that a print buffer has captured all data written to it.
* If data has been lost, linearize buffer and prepend an error message
......@@ -114,7 +114,7 @@ int printbuf_empty(struct print_buf *pb)
* Returns length of print buffer data string (including trailing NULL)
*/
int printbuf_validate(struct print_buf *pb)
int tipc_printbuf_validate(struct print_buf *pb)
{
char *err = " *** PRINT BUFFER WRAPPED AROUND ***\n";
char *cp_buf;
......@@ -126,13 +126,13 @@ int printbuf_validate(struct print_buf *pb)
if (pb->buf[pb->size - 1] == '\0') {
cp_buf = kmalloc(pb->size, GFP_ATOMIC);
if (cp_buf != NULL){
printbuf_init(&cb, cp_buf, pb->size);
printbuf_move(&cb, pb);
printbuf_move(pb, &cb);
tipc_printbuf_init(&cb, cp_buf, pb->size);
tipc_printbuf_move(&cb, pb);
tipc_printbuf_move(pb, &cb);
kfree(cp_buf);
memcpy(pb->buf, err, strlen(err));
} else {
printbuf_reset(pb);
tipc_printbuf_reset(pb);
tipc_printf(pb, err);
}
}
......@@ -140,13 +140,13 @@ int printbuf_validate(struct print_buf *pb)
}
/**
* printbuf_move - move print buffer contents to another print buffer
* tipc_printbuf_move - move print buffer contents to another print buffer
*
* Current contents of destination print buffer (if any) are discarded.
* Source print buffer becomes empty if a successful move occurs.
*/
void printbuf_move(struct print_buf *pb_to, struct print_buf *pb_from)
void tipc_printbuf_move(struct print_buf *pb_to, struct print_buf *pb_from)
{
int len;
......@@ -156,12 +156,12 @@ void printbuf_move(struct print_buf *pb_to, struct print_buf *pb_from)
return;
if (!pb_from || !pb_from->buf) {
printbuf_reset(pb_to);
tipc_printbuf_reset(pb_to);
return;
}
if (pb_to->size < pb_from->size) {
printbuf_reset(pb_to);
tipc_printbuf_reset(pb_to);
tipc_printf(pb_to, "*** PRINT BUFFER OVERFLOW ***");
return;
}
......@@ -179,7 +179,7 @@ void printbuf_move(struct print_buf *pb_to, struct print_buf *pb_from)
strcpy(pb_to->crs, pb_from->buf);
pb_to->crs += len;
printbuf_reset(pb_from);
tipc_printbuf_reset(pb_from);
}
/**
......@@ -199,7 +199,7 @@ void tipc_printf(struct print_buf *pb, const char *fmt, ...)
strcpy(print_string, "*** STRING TOO LONG ***");
while (pb) {
if (pb == CONS)
if (pb == TIPC_CONS)
printk(print_string);
else if (pb->buf) {
chars_left = pb->buf + pb->size - pb->crs - 1;
......@@ -223,10 +223,10 @@ void tipc_printf(struct print_buf *pb, const char *fmt, ...)
}
/**
* TEE - perform next output operation on both print buffers
* TIPC_TEE - perform next output operation on both print buffers
*/
struct print_buf *TEE(struct print_buf *b0, struct print_buf *b1)
struct print_buf *TIPC_TEE(struct print_buf *b0, struct print_buf *b1)
{
struct print_buf *pb = b0;
......@@ -294,96 +294,96 @@ void tipc_dump(struct print_buf *pb, const char *fmt, ...)
int len;
spin_lock_bh(&print_lock);
FORMAT(CONS->buf, len, fmt);
printk(CONS->buf);
FORMAT(TIPC_CONS->buf, len, fmt);
printk(TIPC_CONS->buf);
for (; pb; pb = pb->next) {
if (pb == CONS)
if (pb == TIPC_CONS)
continue;
printk("\n---- Start of dump,%s log ----\n\n",
(pb == LOG) ? "global" : "local");
(pb == TIPC_LOG) ? "global" : "local");
printbuf_dump(pb);
printbuf_reset(pb);
tipc_printbuf_reset(pb);
printk("\n-------- End of dump --------\n");
}
spin_unlock_bh(&print_lock);
}
/**
* log_stop - free up TIPC log print buffer
* tipc_log_stop - free up TIPC log print buffer
*/
void log_stop(void)
void tipc_log_stop(void)
{
spin_lock_bh(&print_lock);
if (LOG->buf) {
kfree(LOG->buf);
LOG->buf = NULL;
if (TIPC_LOG->buf) {
kfree(TIPC_LOG->buf);
TIPC_LOG->buf = NULL;
}
spin_unlock_bh(&print_lock);
}
/**
* log_reinit - set TIPC log print buffer to specified size
* tipc_log_reinit - set TIPC log print buffer to specified size
*/
void log_reinit(int log_size)
void tipc_log_reinit(int log_size)
{
log_stop();
tipc_log_stop();
if (log_size) {
if (log_size <= MAX_STRING)
log_size = MAX_STRING + 1;
spin_lock_bh(&print_lock);
printbuf_init(LOG, kmalloc(log_size, GFP_ATOMIC), log_size);
tipc_printbuf_init(TIPC_LOG, kmalloc(log_size, GFP_ATOMIC), log_size);
spin_unlock_bh(&print_lock);
}
}
/**
* log_resize - reconfigure size of TIPC log buffer
* tipc_log_resize - reconfigure size of TIPC log buffer
*/
struct sk_buff *log_resize(const void *req_tlv_area, int req_tlv_space)
struct sk_buff *tipc_log_resize(const void *req_tlv_area, int req_tlv_space)
{
u32 value;
if (!TLV_CHECK(req_tlv_area, req_tlv_space, TIPC_TLV_UNSIGNED))
return cfg_reply_error_string(TIPC_CFG_TLV_ERROR);
return tipc_cfg_reply_error_string(TIPC_CFG_TLV_ERROR);
value = *(u32 *)TLV_DATA(req_tlv_area);
value = ntohl(value);
if (value != delimit(value, 0, 32768))
return cfg_reply_error_string(TIPC_CFG_INVALID_VALUE
" (log size must be 0-32768)");
log_reinit(value);
return cfg_reply_none();
return tipc_cfg_reply_error_string(TIPC_CFG_INVALID_VALUE
" (log size must be 0-32768)");
tipc_log_reinit(value);
return tipc_cfg_reply_none();
}
/**
* log_dump - capture TIPC log buffer contents in configuration message
* tipc_log_dump - capture TIPC log buffer contents in configuration message
*/
struct sk_buff *log_dump(void)
struct sk_buff *tipc_log_dump(void)
{
struct sk_buff *reply;
spin_lock_bh(&print_lock);
if (!LOG->buf)
reply = cfg_reply_ultra_string("log not activated\n");
else if (printbuf_empty(LOG))
reply = cfg_reply_ultra_string("log is empty\n");
if (!TIPC_LOG->buf)
reply = tipc_cfg_reply_ultra_string("log not activated\n");
else if (tipc_printbuf_empty(TIPC_LOG))
reply = tipc_cfg_reply_ultra_string("log is empty\n");
else {
struct tlv_desc *rep_tlv;
struct print_buf pb;
int str_len;
str_len = min(LOG->size, 32768u);
reply = cfg_reply_alloc(TLV_SPACE(str_len));
str_len = min(TIPC_LOG->size, 32768u);
reply = tipc_cfg_reply_alloc(TLV_SPACE(str_len));
if (reply) {
rep_tlv = (struct tlv_desc *)reply->data;
printbuf_init(&pb, TLV_DATA(rep_tlv), str_len);
printbuf_move(&pb, LOG);
tipc_printbuf_init(&pb, TLV_DATA(rep_tlv), str_len);
tipc_printbuf_move(&pb, TIPC_LOG);
str_len = strlen(TLV_DATA(rep_tlv)) + 1;
skb_put(reply, TLV_SPACE(str_len));
TLV_SET(rep_tlv, TIPC_TLV_ULTRA_STRING, NULL, str_len);
......
......@@ -44,16 +44,16 @@ struct print_buf {
struct print_buf *next;
};
void printbuf_init(struct print_buf *pb, char *buf, u32 sz);
void printbuf_reset(struct print_buf *pb);
int printbuf_empty(struct print_buf *pb);
int printbuf_validate(struct print_buf *pb);
void printbuf_move(struct print_buf *pb_to, struct print_buf *pb_from);
void tipc_printbuf_init(struct print_buf *pb, char *buf, u32 sz);
void tipc_printbuf_reset(struct print_buf *pb);
int tipc_printbuf_empty(struct print_buf *pb);
int tipc_printbuf_validate(struct print_buf *pb);
void tipc_printbuf_move(struct print_buf *pb_to, struct print_buf *pb_from);
void log_reinit(int log_size);
void log_stop(void);
void tipc_log_reinit(int log_size);
void tipc_log_stop(void);
struct sk_buff *log_resize(const void *req_tlv_area, int req_tlv_space);
struct sk_buff *log_dump(void);
struct sk_buff *tipc_log_resize(const void *req_tlv_area, int req_tlv_space);
struct sk_buff *tipc_log_dump(void);
#endif
......@@ -93,7 +93,7 @@ int disc_create_link(const struct tipc_link_create *argv)
* disc_lost_link(): A link has lost contact
*/
void disc_link_event(u32 addr, char *name, int up)
void tipc_disc_link_event(u32 addr, char *name, int up)
{
if (in_own_cluster(addr))
return;
......@@ -103,17 +103,17 @@ void disc_link_event(u32 addr, char *name, int up)
}
/**
* disc_init_msg - initialize a link setup message
* tipc_disc_init_msg - initialize a link setup message
* @type: message type (request or response)
* @req_links: number of links associated with message
* @dest_domain: network domain of node(s) which should respond to message
* @b_ptr: ptr to bearer issuing message
*/
struct sk_buff *disc_init_msg(u32 type,
u32 req_links,
u32 dest_domain,
struct bearer *b_ptr)
struct sk_buff *tipc_disc_init_msg(u32 type,
u32 req_links,
u32 dest_domain,
struct bearer *b_ptr)
{
struct sk_buff *buf = buf_acquire(DSC_H_SIZE);
struct tipc_msg *msg;
......@@ -132,11 +132,11 @@ struct sk_buff *disc_init_msg(u32 type,
}
/**
* disc_recv_msg - handle incoming link setup message (request or response)
* tipc_disc_recv_msg - handle incoming link setup message (request or response)
* @buf: buffer containing message
*/
void disc_recv_msg(struct sk_buff *buf)
void tipc_disc_recv_msg(struct sk_buff *buf)
{
struct bearer *b_ptr = (struct bearer *)TIPC_SKB_CB(buf)->handle;
struct link *link;
......@@ -153,9 +153,9 @@ void disc_recv_msg(struct sk_buff *buf)
if (net_id != tipc_net_id)
return;
if (!addr_domain_valid(dest))
if (!tipc_addr_domain_valid(dest))
return;
if (!addr_node_valid(orig))
if (!tipc_addr_node_valid(orig))
return;
if (orig == tipc_own_addr)
return;
......@@ -169,11 +169,11 @@ void disc_recv_msg(struct sk_buff *buf)
/* Always accept link here */
struct sk_buff *rbuf;
struct tipc_media_addr *addr;
struct node *n_ptr = node_find(orig);
struct node *n_ptr = tipc_node_find(orig);
int link_up;
dbg(" in own cluster\n");
if (n_ptr == NULL) {
n_ptr = node_create(orig);
n_ptr = tipc_node_create(orig);
}
if (n_ptr == NULL) {
warn("Memory squeeze; Failed to create node\n");
......@@ -183,7 +183,7 @@ void disc_recv_msg(struct sk_buff *buf)
link = n_ptr->links[b_ptr->identity];
if (!link) {
dbg("creating link\n");
link = link_create(b_ptr, orig, &media_addr);
link = tipc_link_create(b_ptr, orig, &media_addr);
if (!link) {
spin_unlock_bh(&n_ptr->lock);
return;
......@@ -196,13 +196,13 @@ void disc_recv_msg(struct sk_buff *buf)
warn("New bearer address for %s\n",
addr_string_fill(addr_string, orig));
memcpy(addr, &media_addr, sizeof(*addr));
link_reset(link);
tipc_link_reset(link);
}
link_up = link_is_up(link);
link_up = tipc_link_is_up(link);
spin_unlock_bh(&n_ptr->lock);
if ((type == DSC_RESP_MSG) || link_up)
return;
rbuf = disc_init_msg(DSC_RESP_MSG, 1, orig, b_ptr);
rbuf = tipc_disc_init_msg(DSC_RESP_MSG, 1, orig, b_ptr);
if (rbuf != NULL) {
msg_dbg(buf_msg(rbuf),"SEND:");
b_ptr->media->send_msg(rbuf, &b_ptr->publ, &media_addr);
......@@ -212,11 +212,11 @@ void disc_recv_msg(struct sk_buff *buf)
}
/**
* disc_stop_link_req - stop sending periodic link setup requests
* tipc_disc_stop_link_req - stop sending periodic link setup requests
* @req: ptr to link request structure
*/
void disc_stop_link_req(struct link_req *req)
void tipc_disc_stop_link_req(struct link_req *req)
{
if (!req)
return;
......@@ -228,11 +228,11 @@ void disc_stop_link_req(struct link_req *req)
}
/**
* disc_update_link_req - update frequency of periodic link setup requests
* tipc_disc_update_link_req - update frequency of periodic link setup requests
* @req: ptr to link request structure
*/
void disc_update_link_req(struct link_req *req)
void tipc_disc_update_link_req(struct link_req *req)
{
if (!req)
return;
......@@ -282,7 +282,7 @@ static void disc_timeout(struct link_req *req)
}
/**
* disc_init_link_req - start sending periodic link setup requests
* tipc_disc_init_link_req - start sending periodic link setup requests
* @b_ptr: ptr to bearer issuing requests
* @dest: destination address for request messages
* @dest_domain: network domain of node(s) which should respond to message
......@@ -291,10 +291,10 @@ static void disc_timeout(struct link_req *req)
* Returns pointer to link request structure, or NULL if unable to create.
*/
struct link_req *disc_init_link_req(struct bearer *b_ptr,
const struct tipc_media_addr *dest,
u32 dest_domain,
u32 req_links)
struct link_req *tipc_disc_init_link_req(struct bearer *b_ptr,
const struct tipc_media_addr *dest,
u32 dest_domain,
u32 req_links)
{
struct link_req *req;
......@@ -302,7 +302,7 @@ struct link_req *disc_init_link_req(struct bearer *b_ptr,
if (!req)
return NULL;
req->buf = disc_init_msg(DSC_REQ_MSG, req_links, dest_domain, b_ptr);
req->buf = tipc_disc_init_msg(DSC_REQ_MSG, req_links, dest_domain, b_ptr);
if (!req->buf) {
kfree(req);
return NULL;
......
......@@ -37,20 +37,20 @@
#ifndef _TIPC_DISCOVER_H
#define _TIPC_DISCOVER_H
#include <linux/tipc.h>
#include "core.h"
struct link_req;
struct link_req *disc_init_link_req(struct bearer *b_ptr,
const struct tipc_media_addr *dest,
u32 dest_domain,
u32 req_links);
void disc_update_link_req(struct link_req *req);
void disc_stop_link_req(struct link_req *req);
struct link_req *tipc_disc_init_link_req(struct bearer *b_ptr,
const struct tipc_media_addr *dest,
u32 dest_domain,
u32 req_links);
void tipc_disc_update_link_req(struct link_req *req);
void tipc_disc_stop_link_req(struct link_req *req);
void disc_recv_msg(struct sk_buff *buf);
void tipc_disc_recv_msg(struct sk_buff *buf);
void disc_link_event(u32 addr, char *name, int up);
void tipc_disc_link_event(u32 addr, char *name, int up);
#if 0
int disc_create_link(const struct tipc_link_create *argv);
#endif
......
......@@ -38,13 +38,11 @@
#include <net/tipc/tipc_bearer.h>
#include <net/tipc/tipc_msg.h>
#include <linux/netdevice.h>
#include <linux/version.h>
#define MAX_ETH_BEARERS 2
#define TIPC_PROTOCOL 0x88ca
#define ETH_LINK_PRIORITY 10
#define ETH_LINK_PRIORITY TIPC_DEF_LINK_PRI
#define ETH_LINK_TOLERANCE TIPC_DEF_LINK_TOL
#define ETH_LINK_WINDOW TIPC_DEF_LINK_WIN
/**
* struct eth_bearer - Ethernet bearer data structure
......@@ -78,7 +76,7 @@ static int send_msg(struct sk_buff *buf, struct tipc_bearer *tb_ptr,
clone->nh.raw = clone->data;
dev = ((struct eth_bearer *)(tb_ptr->usr_handle))->dev;
clone->dev = dev;
dev->hard_header(clone, dev, TIPC_PROTOCOL,
dev->hard_header(clone, dev, ETH_P_TIPC,
&dest->dev_addr.eth_addr,
dev->dev_addr, clone->len);
dev_queue_xmit(clone);
......@@ -141,7 +139,7 @@ static int enable_bearer(struct tipc_bearer *tb_ptr)
return -EDQUOT;
if (!eb_ptr->dev) {
eb_ptr->dev = dev;
eb_ptr->tipc_packet_type.type = __constant_htons(TIPC_PROTOCOL);
eb_ptr->tipc_packet_type.type = __constant_htons(ETH_P_TIPC);
eb_ptr->tipc_packet_type.dev = dev;
eb_ptr->tipc_packet_type.func = recv_msg;
eb_ptr->tipc_packet_type.af_packet_priv = eb_ptr;
......@@ -240,13 +238,13 @@ static char *eth_addr2str(struct tipc_media_addr *a, char *str_buf, int str_size
}
/**
* eth_media_start - activate Ethernet bearer support
* tipc_eth_media_start - activate Ethernet bearer support
*
* Register Ethernet media type with TIPC bearer code. Also register
* with OS for notifications about device state changes.
*/
int eth_media_start(void)
int tipc_eth_media_start(void)
{
struct tipc_media_addr bcast_addr;
int res;
......@@ -260,7 +258,7 @@ int eth_media_start(void)
res = tipc_register_media(TIPC_MEDIA_TYPE_ETH, "eth",
enable_bearer, disable_bearer, send_msg,
eth_addr2str, &bcast_addr, ETH_LINK_PRIORITY,
ETH_LINK_TOLERANCE, TIPC_DEF_LINK_WIN);
ETH_LINK_TOLERANCE, ETH_LINK_WINDOW);
if (res)
return res;
......@@ -273,10 +271,10 @@ int eth_media_start(void)
}
/**
* eth_media_stop - deactivate Ethernet bearer support
* tipc_eth_media_stop - deactivate Ethernet bearer support
*/
void eth_media_stop(void)
void tipc_eth_media_stop(void)
{
int i;
......
......@@ -52,7 +52,7 @@ static void process_signal_queue(unsigned long dummy);
static DECLARE_TASKLET_DISABLED(tipc_tasklet, process_signal_queue, 0);
unsigned int k_signal(Handler routine, unsigned long argument)
unsigned int tipc_k_signal(Handler routine, unsigned long argument)
{
struct queue_item *item;
......@@ -93,7 +93,7 @@ static void process_signal_queue(unsigned long dummy)
spin_unlock_bh(&qitem_lock);
}
int handler_start(void)
int tipc_handler_start(void)
{
tipc_queue_item_cache =
kmem_cache_create("tipc_queue_items", sizeof(struct queue_item),
......@@ -107,7 +107,7 @@ int handler_start(void)
return 0;
}
void handler_stop(void)
void tipc_handler_stop(void)
{
struct list_head *l, *n;
struct queue_item *item;
......
This diff is collapsed.
......@@ -221,44 +221,43 @@ struct link {
struct port;
struct link *link_create(struct bearer *b_ptr, const u32 peer,
const struct tipc_media_addr *media_addr);
void link_delete(struct link *l_ptr);
void link_changeover(struct link *l_ptr);
void link_send_duplicate(struct link *l_ptr, struct link *dest);
void link_reset_fragments(struct link *l_ptr);
int link_is_up(struct link *l_ptr);
int link_is_active(struct link *l_ptr);
void link_start(struct link *l_ptr);
u32 link_push_packet(struct link *l_ptr);
void link_stop(struct link *l_ptr);
struct sk_buff *link_cmd_config(const void *req_tlv_area, int req_tlv_space, u16 cmd);
struct sk_buff *link_cmd_show_stats(const void *req_tlv_area, int req_tlv_space);
struct sk_buff *link_cmd_reset_stats(const void *req_tlv_area, int req_tlv_space);
void link_reset(struct link *l_ptr);
int link_send(struct sk_buff *buf, u32 dest, u32 selector);
int link_send_buf(struct link *l_ptr, struct sk_buff *buf);
u32 link_get_max_pkt(u32 dest,u32 selector);
int link_send_sections_fast(struct port* sender,
struct iovec const *msg_sect,
const u32 num_sect,
u32 destnode);
int link_send_long_buf(struct link *l_ptr, struct sk_buff *buf);
void link_tunnel(struct link *l_ptr, struct tipc_msg *tnl_hdr,
struct tipc_msg *msg, u32 selector);
void link_recv_bundle(struct sk_buff *buf);
int link_recv_fragment(struct sk_buff **pending,
struct sk_buff **fb,
struct tipc_msg **msg);
void link_send_proto_msg(struct link *l_ptr, u32 msg_typ, int prob, u32 gap,
u32 tolerance, u32 priority, u32 acked_mtu);
void link_push_queue(struct link *l_ptr);
u32 link_defer_pkt(struct sk_buff **head, struct sk_buff **tail,
struct link *tipc_link_create(struct bearer *b_ptr, const u32 peer,
const struct tipc_media_addr *media_addr);
void tipc_link_delete(struct link *l_ptr);
void tipc_link_changeover(struct link *l_ptr);
void tipc_link_send_duplicate(struct link *l_ptr, struct link *dest);
void tipc_link_reset_fragments(struct link *l_ptr);
int tipc_link_is_up(struct link *l_ptr);
int tipc_link_is_active(struct link *l_ptr);
void tipc_link_start(struct link *l_ptr);
u32 tipc_link_push_packet(struct link *l_ptr);
void tipc_link_stop(struct link *l_ptr);
struct sk_buff *tipc_link_cmd_config(const void *req_tlv_area, int req_tlv_space, u16 cmd);
struct sk_buff *tipc_link_cmd_show_stats(const void *req_tlv_area, int req_tlv_space);
struct sk_buff *tipc_link_cmd_reset_stats(const void *req_tlv_area, int req_tlv_space);
void tipc_link_reset(struct link *l_ptr);
int tipc_link_send(struct sk_buff *buf, u32 dest, u32 selector);
int tipc_link_send_buf(struct link *l_ptr, struct sk_buff *buf);
u32 tipc_link_get_max_pkt(u32 dest,u32 selector);
int tipc_link_send_sections_fast(struct port* sender,
struct iovec const *msg_sect,
const u32 num_sect,
u32 destnode);
int tipc_link_send_long_buf(struct link *l_ptr, struct sk_buff *buf);
void tipc_link_tunnel(struct link *l_ptr, struct tipc_msg *tnl_hdr,
struct tipc_msg *msg, u32 selector);
void tipc_link_recv_bundle(struct sk_buff *buf);
int tipc_link_recv_fragment(struct sk_buff **pending,
struct sk_buff **fb,
struct tipc_msg **msg);
void tipc_link_send_proto_msg(struct link *l_ptr, u32 msg_typ, int prob, u32 gap,
u32 tolerance, u32 priority, u32 acked_mtu);
void tipc_link_push_queue(struct link *l_ptr);
u32 tipc_link_defer_pkt(struct sk_buff **head, struct sk_buff **tail,
struct sk_buff *buf);
void link_wakeup_ports(struct link *l_ptr, int all);
void link_set_queue_limits(struct link *l_ptr, u32 window);
void link_retransmit(struct link *l_ptr, struct sk_buff *start, u32 retransmits);
void tipc_link_wakeup_ports(struct link *l_ptr, int all);
void tipc_link_set_queue_limits(struct link *l_ptr, u32 window);
void tipc_link_retransmit(struct link *l_ptr, struct sk_buff *start, u32 retransmits);
/*
* Link sequence number manipulation routines (uses modulo 2**16 arithmetic)
......
......@@ -41,18 +41,7 @@
#include "bearer.h"
void msg_set_media_addr(struct tipc_msg *m, struct tipc_media_addr *a)
{
memcpy(&((int *)m)[5], a, sizeof(*a));
}
void msg_get_media_addr(struct tipc_msg *m, struct tipc_media_addr *a)
{
memcpy(a, &((int*)m)[5], sizeof(*a));
}
void msg_print(struct print_buf *buf, struct tipc_msg *msg, const char *str)
void tipc_msg_print(struct print_buf *buf, struct tipc_msg *msg, const char *str)
{
u32 usr = msg_user(msg);
tipc_printf(buf, str);
......@@ -318,7 +307,7 @@ void msg_print(struct print_buf *buf, struct tipc_msg *msg, const char *str)
tipc_printf(buf, ":REQL(%u):", msg_req_links(msg));
tipc_printf(buf, ":DDOM(%x):", msg_dest_domain(msg));
tipc_printf(buf, ":NETID(%u):", msg_bc_netid(msg));
media_addr_printf(buf, orig);
tipc_media_addr_printf(buf, orig);
}
if (msg_user(msg) == BCAST_PROTOCOL) {
tipc_printf(buf, "BCNACK:AFTER(%u):", msg_bcgap_after(msg));
......@@ -326,9 +315,9 @@ void msg_print(struct print_buf *buf, struct tipc_msg *msg, const char *str)
}
tipc_printf(buf, "\n");
if ((usr == CHANGEOVER_PROTOCOL) && (msg_msgcnt(msg))) {
msg_print(buf,msg_get_wrapped(msg)," /");
tipc_msg_print(buf,msg_get_wrapped(msg)," /");
}
if ((usr == MSG_FRAGMENTER) && (msg_type(msg) == FIRST_FRAGMENT)) {
msg_print(buf,msg_get_wrapped(msg)," /");
tipc_msg_print(buf,msg_get_wrapped(msg)," /");
}
}
......@@ -37,7 +37,7 @@
#ifndef _TIPC_MSG_H
#define _TIPC_MSG_H
#include <net/tipc/tipc_msg.h>
#include "core.h"
#define TIPC_VERSION 2
#define DATA_LOW TIPC_LOW_IMPORTANCE
......@@ -805,14 +805,14 @@ static inline int msg_build(struct tipc_msg *hdr,
return -EFAULT;
}
static inline void msg_set_media_addr(struct tipc_msg *m, struct tipc_media_addr *a)
{
memcpy(&((int *)m)[5], a, sizeof(*a));
}
struct tipc_media_addr;
extern void msg_set_media_addr(struct tipc_msg *m,
struct tipc_media_addr *a);
extern void msg_get_media_addr(struct tipc_msg *m,
struct tipc_media_addr *a);
static inline void msg_get_media_addr(struct tipc_msg *m, struct tipc_media_addr *a)
{
memcpy(a, &((int*)m)[5], sizeof(*a));
}
#endif
This diff is collapsed.
......@@ -39,10 +39,10 @@
#include "name_table.h"
void named_publish(struct publication *publ);
void named_withdraw(struct publication *publ);
void named_node_up(unsigned long node);
void named_recv(struct sk_buff *buf);
void named_reinit(void);
void tipc_named_publish(struct publication *publ);
void tipc_named_withdraw(struct publication *publ);
void tipc_named_node_up(unsigned long node);
void tipc_named_recv(struct sk_buff *buf);
void tipc_named_reinit(void);
#endif
This diff is collapsed.
......@@ -85,24 +85,24 @@ struct publication {
};
extern rwlock_t nametbl_lock;
extern rwlock_t tipc_nametbl_lock;
struct sk_buff *nametbl_get(const void *req_tlv_area, int req_tlv_space);
u32 nametbl_translate(u32 type, u32 instance, u32 *node);
int nametbl_mc_translate(u32 type, u32 lower, u32 upper, u32 limit,
struct sk_buff *tipc_nametbl_get(const void *req_tlv_area, int req_tlv_space);
u32 tipc_nametbl_translate(u32 type, u32 instance, u32 *node);
int tipc_nametbl_mc_translate(u32 type, u32 lower, u32 upper, u32 limit,
struct port_list *dports);
int nametbl_publish_rsv(u32 ref, unsigned int scope,
int tipc_nametbl_publish_rsv(u32 ref, unsigned int scope,
struct tipc_name_seq const *seq);
struct publication *nametbl_publish(u32 type, u32 lower, u32 upper,
struct publication *tipc_nametbl_publish(u32 type, u32 lower, u32 upper,
u32 scope, u32 port_ref, u32 key);
int nametbl_withdraw(u32 type, u32 lower, u32 ref, u32 key);
struct publication *nametbl_insert_publ(u32 type, u32 lower, u32 upper,
int tipc_nametbl_withdraw(u32 type, u32 lower, u32 ref, u32 key);
struct publication *tipc_nametbl_insert_publ(u32 type, u32 lower, u32 upper,
u32 scope, u32 node, u32 ref, u32 key);
struct publication *nametbl_remove_publ(u32 type, u32 lower,
struct publication *tipc_nametbl_remove_publ(u32 type, u32 lower,
u32 node, u32 ref, u32 key);
void nametbl_subscribe(struct subscription *s);
void nametbl_unsubscribe(struct subscription *s);
int nametbl_init(void);
void nametbl_stop(void);
void tipc_nametbl_subscribe(struct subscription *s);
void tipc_nametbl_unsubscribe(struct subscription *s);
int tipc_nametbl_init(void);
void tipc_nametbl_stop(void);
#endif
This diff is collapsed.
......@@ -49,18 +49,16 @@ struct network {
};
extern struct network net;
extern rwlock_t net_lock;
extern struct network tipc_net;
extern rwlock_t tipc_net_lock;
int net_init(void);
void net_stop(void);
void net_remove_as_router(u32 router);
void net_send_external_routes(u32 dest);
void net_route_msg(struct sk_buff *buf);
struct node *net_select_remote_node(u32 addr, u32 ref);
u32 net_select_router(u32 addr, u32 ref);
void tipc_net_remove_as_router(u32 router);
void tipc_net_send_external_routes(u32 dest);
void tipc_net_route_msg(struct sk_buff *buf);
struct node *tipc_net_select_remote_node(u32 addr, u32 ref);
u32 tipc_net_select_router(u32 addr, u32 ref);
int tipc_start_net(void);
void tipc_stop_net(void);
int tipc_net_start(void);
void tipc_net_stop(void);
#endif
......@@ -47,13 +47,13 @@ static int handle_cmd(struct sk_buff *skb, struct genl_info *info)
int hdr_space = NLMSG_SPACE(GENL_HDRLEN + TIPC_GENL_HDRLEN);
if ((req_userhdr->cmd & 0xC000) && (!capable(CAP_NET_ADMIN)))
rep_buf = cfg_reply_error_string(TIPC_CFG_NOT_NET_ADMIN);
rep_buf = tipc_cfg_reply_error_string(TIPC_CFG_NOT_NET_ADMIN);
else
rep_buf = cfg_do_cmd(req_userhdr->dest,
req_userhdr->cmd,
NLMSG_DATA(req_nlh) + GENL_HDRLEN + TIPC_GENL_HDRLEN,
NLMSG_PAYLOAD(req_nlh, GENL_HDRLEN + TIPC_GENL_HDRLEN),
hdr_space);
rep_buf = tipc_cfg_do_cmd(req_userhdr->dest,
req_userhdr->cmd,
NLMSG_DATA(req_nlh) + GENL_HDRLEN + TIPC_GENL_HDRLEN,
NLMSG_PAYLOAD(req_nlh, GENL_HDRLEN + TIPC_GENL_HDRLEN),
hdr_space);
if (rep_buf) {
skb_push(rep_buf, hdr_space);
......@@ -81,7 +81,7 @@ static struct genl_ops ops = {
static int family_registered = 0;
int netlink_start(void)
int tipc_netlink_start(void)
{
......@@ -103,7 +103,7 @@ int netlink_start(void)
return -EFAULT;
}
void netlink_stop(void)
void tipc_netlink_stop(void)
{
if (family_registered) {
genl_unregister_family(&family);
......
This diff is collapsed.
......@@ -92,31 +92,31 @@ struct node {
} bclink;
};
extern struct node *nodes;
extern struct node *tipc_nodes;
extern u32 tipc_own_tag;
struct node *node_create(u32 addr);
void node_delete(struct node *n_ptr);
struct node *node_attach_link(struct link *l_ptr);
void node_detach_link(struct node *n_ptr, struct link *l_ptr);
void node_link_down(struct node *n_ptr, struct link *l_ptr);
void node_link_up(struct node *n_ptr, struct link *l_ptr);
int node_has_active_links(struct node *n_ptr);
int node_has_redundant_links(struct node *n_ptr);
u32 node_select_router(struct node *n_ptr, u32 ref);
struct node *node_select_next_hop(u32 addr, u32 selector);
int node_is_up(struct node *n_ptr);
void node_add_router(struct node *n_ptr, u32 router);
void node_remove_router(struct node *n_ptr, u32 router);
struct sk_buff *node_get_links(const void *req_tlv_area, int req_tlv_space);
struct sk_buff *node_get_nodes(const void *req_tlv_area, int req_tlv_space);
struct node *tipc_node_create(u32 addr);
void tipc_node_delete(struct node *n_ptr);
struct node *tipc_node_attach_link(struct link *l_ptr);
void tipc_node_detach_link(struct node *n_ptr, struct link *l_ptr);
void tipc_node_link_down(struct node *n_ptr, struct link *l_ptr);
void tipc_node_link_up(struct node *n_ptr, struct link *l_ptr);
int tipc_node_has_active_links(struct node *n_ptr);
int tipc_node_has_redundant_links(struct node *n_ptr);
u32 tipc_node_select_router(struct node *n_ptr, u32 ref);
struct node *tipc_node_select_next_hop(u32 addr, u32 selector);
int tipc_node_is_up(struct node *n_ptr);
void tipc_node_add_router(struct node *n_ptr, u32 router);
void tipc_node_remove_router(struct node *n_ptr, u32 router);
struct sk_buff *tipc_node_get_links(const void *req_tlv_area, int req_tlv_space);
struct sk_buff *tipc_node_get_nodes(const void *req_tlv_area, int req_tlv_space);
static inline struct node *node_find(u32 addr)
static inline struct node *tipc_node_find(u32 addr)
{
if (likely(in_own_cluster(addr)))
return local_nodes[tipc_node(addr)];
else if (addr_domain_valid(addr)) {
struct cluster *c_ptr = cluster_find(addr);
return tipc_local_nodes[tipc_node(addr)];
else if (tipc_addr_domain_valid(addr)) {
struct cluster *c_ptr = tipc_cltr_find(addr);
if (c_ptr)
return c_ptr->nodes[tipc_node(addr)];
......@@ -124,19 +124,19 @@ static inline struct node *node_find(u32 addr)
return 0;
}
static inline struct node *node_select(u32 addr, u32 selector)
static inline struct node *tipc_node_select(u32 addr, u32 selector)
{
if (likely(in_own_cluster(addr)))
return local_nodes[tipc_node(addr)];
return node_select_next_hop(addr, selector);
return tipc_local_nodes[tipc_node(addr)];
return tipc_node_select_next_hop(addr, selector);
}
static inline void node_lock(struct node *n_ptr)
static inline void tipc_node_lock(struct node *n_ptr)
{
spin_lock_bh(&n_ptr->lock);
}
static inline void node_unlock(struct node *n_ptr)
static inline void tipc_node_unlock(struct node *n_ptr)
{
spin_unlock_bh(&n_ptr->lock);
}
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment