include/cld_msg.h File Reference

#include <stdint.h>

Data Structures

struct  cld_packet
 header for each packet More...
struct  cld_msg_hdr
 header for each message More...
struct  cld_msg_resp
 standard response for each message More...
struct  cld_msg_ack_frag
 ACK-FRAG message. More...
struct  cld_msg_open
 OPEN message. More...
struct  cld_msg_open_resp
 OPEN message response. More...
struct  cld_msg_get
 GET message. More...
struct  cld_msg_get_resp
 GET message response. More...
struct  cld_msg_put
 PUT message. More...
struct  cld_msg_close
 CLOSE message. More...
struct  cld_msg_del
 DEL message. More...
struct  cld_msg_unlock
 UNLOCK message. More...
struct  cld_msg_lock
 LOCK message. More...
struct  cld_msg_event
 Server-to-client EVENT message. More...

Defines

#define CLD_PKT_MAGIC   "CLDc1pkt"
#define CLD_MSG_MAGIC   "CLDc1msg"
#define CLD_ALIGN8(n)   ((8 - ((n) & 7)) & 7)
#define SIDFMT   "%016llX"
#define SIDARG(sid)   cld_sid2llu(sid)

Enumerations

enum  {
  CLD_MAGIC_SZ = 8, CLD_SID_SZ = 8, CLD_INODE_NAME_MAX = 256, CLD_MAX_USERNAME = 32,
  CLD_MAX_SECRET_KEY = 128, CLD_MAX_PKT_MSG_SZ = 1024, CLD_MAX_PKT_MSG = 128, CLD_MAX_MSG_SZ = CLD_MAX_PKT_MSG * 1024
}
enum  cld_msg_ops {
  cmo_nop = 0, cmo_new_sess = 1, cmo_open = 2, cmo_get_meta = 3,
  cmo_get = 4, cmo_put = 6, cmo_close = 7, cmo_del = 8,
  cmo_lock = 9, cmo_unlock = 10, cmo_trylock = 11, cmo_ack = 12,
  cmo_end_sess = 13, cmo_ping = 30, cmo_not_master = 31, cmo_event = 32,
  cmo_ack_frag = 33
}
 

available RPC operations

More...
enum  cle_err_codes {
  CLE_OK = 0, CLE_SESS_EXISTS = 1, CLE_SESS_INVAL = 2, CLE_DB_ERR = 3,
  CLE_BAD_PKT = 4, CLE_INODE_INVAL = 5, CLE_NAME_INVAL = 6, CLE_OOM = 7,
  CLE_FH_INVAL = 8, CLE_DATA_INVAL = 9, CLE_LOCK_INVAL = 10, CLE_LOCK_CONFLICT = 11,
  CLE_LOCK_PENDING = 12, CLE_MODE_INVAL = 13, CLE_INODE_EXISTS = 14, CLE_DIR_NOTEMPTY = 15,
  CLE_INTERNAL_ERR = 16, CLE_TIMEOUT = 17, CLE_SIG_INVAL = 18
}
 

CLD error codes.

More...
enum  cld_open_modes {
  COM_READ = (1 << 0), COM_WRITE = (1 << 1), COM_LOCK = (1 << 2), COM_ACL = (1 << 3),
  COM_CREATE = (1 << 4), COM_EXCL = (1 << 5), COM_DIRECTORY = (1 << 6)
}
 

availble OPEN mode flags

More...
enum  cld_events {
  CE_UPDATED = (1 << 0), CE_DELETED = (1 << 1), CE_LOCKED = (1 << 2), CE_MASTER_FAILOVER = (1 << 3),
  CE_SESS_FAILED = (1 << 4)
}
 

potential events client may receive

More...
enum  cld_lock_flags { CLF_SHARED = (1 << 0) }
 

LOCK flags.

More...
enum  cld_packet_flags { CPF_FIRST = (1 << 0), CPF_LAST = (1 << 1) }
 

CLD packet flags.

More...

Functions

unsigned long long cld_sid2llu (const uint8_t *sid)
void __cld_rand64 (void *p)

Define Documentation

#define CLD_ALIGN8 (  )     ((8 - ((n) & 7)) & 7)
#define CLD_MSG_MAGIC   "CLDc1msg"
#define CLD_PKT_MAGIC   "CLDc1pkt"
#define SIDARG ( sid   )     cld_sid2llu(sid)
#define SIDFMT   "%016llX"

Enumeration Type Documentation

anonymous enum
Enumerator:
CLD_MAGIC_SZ 

length of magic number

CLD_SID_SZ 

length of session id

CLD_INODE_NAME_MAX 

max total pathname len

CLD_MAX_USERNAME 

includes req.

nul

CLD_MAX_SECRET_KEY 

includes req.

nul

CLD_MAX_PKT_MSG_SZ 
CLD_MAX_PKT_MSG 
CLD_MAX_MSG_SZ 

maximum total msg size, including all packets

enum cld_events

potential events client may receive

Enumerator:
CE_UPDATED 

contents updated

CE_DELETED 

inode deleted

CE_LOCKED 

lock acquired

CE_MASTER_FAILOVER 

master failover

CE_SESS_FAILED 

LOCK flags.

Enumerator:
CLF_SHARED 

a shared (read) lock

available RPC operations

Enumerator:
cmo_nop 

no op

cmo_new_sess 

new session

cmo_open 

open file

cmo_get_meta 

get metadata

cmo_get 

get metadata + data

cmo_put 

put data

cmo_close 

close file

cmo_del 

delete file

cmo_lock 

lock

cmo_unlock 

unlock

cmo_trylock 

trylock

cmo_ack 

ack of seqid rx'd

cmo_end_sess 

end session

cmo_ping 

server to client ping

cmo_not_master 

I am not the master!

cmo_event 

server->cli async event

cmo_ack_frag 

ack partial msg

availble OPEN mode flags

Enumerator:
COM_READ 

read

COM_WRITE 

write

COM_LOCK 

lock

COM_ACL 

ACL update.

COM_CREATE 

create file, if not exist

COM_EXCL 

fail create if file exists

COM_DIRECTORY 

operate on a directory

CLD packet flags.

Enumerator:
CPF_FIRST 

first fragment

CPF_LAST 

last fragment

CLD error codes.

Enumerator:
CLE_OK 

success / no error

CLE_SESS_EXISTS 

session exists

CLE_SESS_INVAL 

session doesn't exist

CLE_DB_ERR 

db error

CLE_BAD_PKT 

invalid/corrupted packet

CLE_INODE_INVAL 

inode doesn't exist

CLE_NAME_INVAL 

inode name invalid

CLE_OOM 

server out of memory

CLE_FH_INVAL 

file handle invalid

CLE_DATA_INVAL 

invalid data pkt

CLE_LOCK_INVAL 

invalid lock

CLE_LOCK_CONFLICT 

conflicting lock held

CLE_LOCK_PENDING 

lock waiting to be acq.

CLE_MODE_INVAL 

op incompat.

w/ file mode

CLE_INODE_EXISTS 

inode exists

CLE_DIR_NOTEMPTY 

dir not empty

CLE_INTERNAL_ERR 

nonspecific internal err

CLE_TIMEOUT 

session timed out

CLE_SIG_INVAL 

HMAC sig bad / auth failed.


Function Documentation

void __cld_rand64 ( void *  p  ) 
unsigned long long cld_sid2llu ( const uint8_t *  sid  ) 

Generated on 27 Aug 2009 for CLD by  doxygen 1.6.1