162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/******************************************************************************
362306a36Sopenharmony_ci*******************************************************************************
462306a36Sopenharmony_ci**
562306a36Sopenharmony_ci**  Copyright (C) Sistina Software, Inc.  1997-2003  All rights reserved.
662306a36Sopenharmony_ci**  Copyright (C) 2004-2011 Red Hat, Inc.  All rights reserved.
762306a36Sopenharmony_ci**
862306a36Sopenharmony_ci**
962306a36Sopenharmony_ci*******************************************************************************
1062306a36Sopenharmony_ci******************************************************************************/
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci#ifndef __CONFIG_DOT_H__
1362306a36Sopenharmony_ci#define __CONFIG_DOT_H__
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#define DLM_MAX_SOCKET_BUFSIZE	4096
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_cistruct dlm_config_node {
1862306a36Sopenharmony_ci	int nodeid;
1962306a36Sopenharmony_ci	int weight;
2062306a36Sopenharmony_ci	int new;
2162306a36Sopenharmony_ci	uint32_t comm_seq;
2262306a36Sopenharmony_ci};
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci#define DLM_MAX_ADDR_COUNT 3
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci#define DLM_PROTO_TCP	0
2762306a36Sopenharmony_ci#define DLM_PROTO_SCTP	1
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_cistruct dlm_config_info {
3062306a36Sopenharmony_ci	int ci_tcp_port;
3162306a36Sopenharmony_ci	int ci_buffer_size;
3262306a36Sopenharmony_ci	int ci_rsbtbl_size;
3362306a36Sopenharmony_ci	int ci_recover_timer;
3462306a36Sopenharmony_ci	int ci_toss_secs;
3562306a36Sopenharmony_ci	int ci_scan_secs;
3662306a36Sopenharmony_ci	int ci_log_debug;
3762306a36Sopenharmony_ci	int ci_log_info;
3862306a36Sopenharmony_ci	int ci_protocol;
3962306a36Sopenharmony_ci	int ci_mark;
4062306a36Sopenharmony_ci	int ci_new_rsb_count;
4162306a36Sopenharmony_ci	int ci_recover_callbacks;
4262306a36Sopenharmony_ci	char ci_cluster_name[DLM_LOCKSPACE_LEN];
4362306a36Sopenharmony_ci};
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ciextern struct dlm_config_info dlm_config;
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ciint dlm_config_init(void);
4862306a36Sopenharmony_civoid dlm_config_exit(void);
4962306a36Sopenharmony_ciint dlm_config_nodes(char *lsname, struct dlm_config_node **nodes_out,
5062306a36Sopenharmony_ci		     int *count_out);
5162306a36Sopenharmony_ciint dlm_comm_seq(int nodeid, uint32_t *seq);
5262306a36Sopenharmony_ciint dlm_our_nodeid(void);
5362306a36Sopenharmony_ciint dlm_our_addr(struct sockaddr_storage *addr, int num);
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci#endif				/* __CONFIG_DOT_H__ */
5662306a36Sopenharmony_ci
57