About Us
Museum

RFID Guardian Software:Library:Generic library modules:GP

From RFID Guardian

RFID Guardian Software / Library / Generic library modules / GP


GP

Communication between User Interface clients and servers, and between different RFID Guardians, and RFID Guardian-aware readers, uses a message format called GP (Guardian Protocol). GP is a dedicated language that represents all necessary commands. The GP language is an extremely simple LL(1) language that describes messages in terms of uint32, strings, and structs and arrays of same. The existing message types are given in [ include/GP/mrg_GP.x ].

To be expanded Conversations between readers: ownership transfer, authentication, ...

GPc is the Guardian Protocol Compiler. It lives in [ util/GPc/ ]; a parser is generated with LLgen , an LL(1) parser generator. GPc's input is [ include/GP/mrg_GP.x ].

GPc has a number of backends:

  • C header, that generates the message types in C
  • C source, that generates:
    • stubs that take a C message and marshall it into a byte stream
    • skeletons that unmarshall from the byte stream into C messages
    • pretty-print routines
  • Java source with definitions of a Java class per message type, and methods to (un)marshall between Java classes and byte streams


Message types in GP

This is an overview of the message types in version 0.8.6, as of mid December 2009. Doubtless, the list will grow with additional funtionality.

ACL
context
add, remove, set, show, entry, list
reader
add, remove, set, show, list_role, entry, list
role
entry, add_reader, remove_reader, create, delete, list, list_reader
tag
add, del, name, list_entry, list
tag_set
set_create, set_delete, set_add, set_remove, set_list_tag, set_list, set_entry
acl
dir, save, commit, reload, clear, status
state
load, save, dir_get, dir_set
alert
uncommitted, unsaved
Spoof
get, alias, list, status, info, enable, reader_inventory_get, reset
Audit log
enable, file, status, flush, view
Directory browser
save, tftp_xmit, tftp_server, tftp_info, dir_path, dir, file_size, cat, unlink, chdir, mkdir, rmdir, pwd, rename, copy
Network
ping
System
date
get, set
reboot
reboot


To be expanded GP can be used with SSL.

API [ include/GP/mrg_GP.x ], generated in [ include/GP/mrg_GP_generated.h ]
Source generated in [ src/GP/common/mrg_GP_generated.c ]and [ java/org/rfidguardian/GP/ ]
API n/a
Source [ util/GPc/ ]