blob: b74e24c589b8a204989618812bf129c619368d9b [file] [log] [blame]
Protocol plugin example for SDK 3.0
List of files
-------------
- Protocol.c : Accept client requests and generate transaction state machines for each client request.
- TxnSM.c : Implementation of handling a transaction.
- Protocol.h : Header file.
- TxnSM.h : Header file.
- test/ProtocolServerTest.java : Synthetic server.
- test/ProtocolClientTest.java : Synthetic client.
- test/file_gen.sh : shell script to generate file list for testing.
Protocol
--------
- Request : [server_name][space][file_name][space][\r\n]
- Response : File (if file is found)
Nothing (if file is not found)
How to run proxy
----------------
- Compile protocol.so and copy it under plugins directory.
- In plugin.config:
protocol.so <accept_port> <server_port>
accept_port is the port to listen to client requests.
server_port is the port to connect to origin server.
- Debug tag: -T"protocol".
How to run synthetic server
---------------------------
- Compile ProtocolServerTest.java and get ProtocolServerTest.class.
- Run: java ProtocolServerTest <server_port>
server_port is the port synthetic server listens to requests.
server_port should match "server_port" argument passed to the plugin.
How to run synthetic client
---------------------------
- Compile ProtocolClientTest.java and get ProtocolClientTest.class.
- Run: java ProtocolClientTest -options.
- Options include:
"-P" : proxy name (e.g. npdev.example.com)
"-p" : proxy port (match "accept_port" argument passed to the plugin)
"-s" : origin server name
"-f" : file list name (generated by file_gen.sh)
"-n" : number of pipelined client requests
"-l" : how many times of looping