9
Reliable Server Pooling Sockets API Presenter: Aron Silverton Email: [email protected] IETF 61 Washington, D.C. 2004-11-08

Reliable Server Pooling Sockets API Presenter: Aron Silverton Email: [email protected] IETF 61 Washington, D.C. 2004-11-08

Embed Size (px)

Citation preview

Page 1: Reliable Server Pooling Sockets API Presenter: Aron Silverton Email: Aron.J.Silverton@Motorola.com IETF 61 Washington, D.C. 2004-11-08

Reliable Server PoolingSockets API

Presenter: Aron Silverton

Email: [email protected]

IETF 61

Washington, D.C.

2004-11-08

Page 2: Reliable Server Pooling Sockets API Presenter: Aron Silverton Email: Aron.J.Silverton@Motorola.com IETF 61 Washington, D.C. 2004-11-08

2004-11-08 RSerPool API 2

Overview

• Goal– Sockets-like API for RSerPool (rsp_socket)– Mimics UNIX sockets API

• Retain familiar programming model (uses ‘rsp_’ prefix)• Change semantics accordingly

– Consider for Working Group document

• Scope– Data I/O functions– Socket utility functions– RSerPool utility functions

Page 3: Reliable Server Pooling Sockets API Presenter: Aron Silverton Email: Aron.J.Silverton@Motorola.com IETF 61 Washington, D.C. 2004-11-08

2004-11-08 RSerPool API 3

Status

• Initial draft created• Submitted to IETF 2004-11-08• Draft covers:

– Function prototypes, structures and usage– Includes echo server and client example

• Current open work items– API usage– Structure definitions (not covered in this presentation)– Function parameters (not covered in this presentation)

Page 4: Reliable Server Pooling Sockets API Presenter: Aron Silverton Email: Aron.J.Silverton@Motorola.com IETF 61 Washington, D.C. 2004-11-08

2004-11-08 RSerPool API 4

Data I/O Functions

• Calls providing send/receive functionality• Functions:

– rsp_sendmsg() – Similar to sendmsg()• Supports ‘send message by Pool Handle’ and ‘send message

by PE Handle’

– rsp_recvmsg() – Similar to recvmsg()

– Others may be defined later

Page 5: Reliable Server Pooling Sockets API Presenter: Aron Silverton Email: Aron.J.Silverton@Motorola.com IETF 61 Washington, D.C. 2004-11-08

2004-11-08 RSerPool API 5

Socket Utility Functions

• Calls providing basic functionality for:– Controlling RSerPool HA sockets– Getting information about active sockets

• Functions:– rsp_initialize() – initializes the RSerPool stack– rsp_socket() – sets up ASAP resources and returns a

socket FD– rsp_bind() – binds the HA socket to all desired

addresses and the standard port numbers• Supports multi-homing

Page 6: Reliable Server Pooling Sockets API Presenter: Aron Silverton Email: Aron.J.Silverton@Motorola.com IETF 61 Washington, D.C. 2004-11-08

2004-11-08 RSerPool API 6

Socket Utility Functions (cont.)

• Functions:– rsp_connect() – proposed hybrid ‘bind’ can be used to

pre-fetch information related to a specified Pool Handle and store locally

• Could also be separate from rsp_bind() and called subsequently if so desired

– rsp_close() – closes the specified socket and releases corresponding ASAP resources

– rsp_cleanup() – cleans up resources established by rsp_initialize()

Page 7: Reliable Server Pooling Sockets API Presenter: Aron Silverton Email: Aron.J.Silverton@Motorola.com IETF 61 Washington, D.C. 2004-11-08

2004-11-08 RSerPool API 7

RSerPool Utility Functions

• Calls for performing various RSerPool functions• Functions:

– rsp_register() – registers a PE as a member of a specified pool

– rsp_deregister() – removes or deregisters a PE from a specified pool

– rsp_getPoolInfo() – returns information, e.g., PE list, Pool Policy, etc., about a specified pool to the caller

Page 8: Reliable Server Pooling Sockets API Presenter: Aron Silverton Email: Aron.J.Silverton@Motorola.com IETF 61 Washington, D.C. 2004-11-08

2004-11-08 RSerPool API 8

RSerPool Utility Functions (cont.)

• Functions:– rsp_reportFailure() – used by a PU or PE to report an

unreachable PE in a pool

– rsp_notify() – used to pass select RSerPool and lower layer events back to the HA sockets user

• Could be modeled after sctp_notify()

– rsp_forceFailover() – provides functionality to allow an RSerPool user to trigger a failover (if the upper layer is handling failure detection)

• Needed functionality, but perhaps not in its own call

Page 9: Reliable Server Pooling Sockets API Presenter: Aron Silverton Email: Aron.J.Silverton@Motorola.com IETF 61 Washington, D.C. 2004-11-08

Comments?