• Chuck Lever's avatar
    tools: Add xdrgen · 4b132aac
    Chuck Lever authored
    Add a Python-based tool for translating XDR specifications into XDR
    encoder and decoder functions written in the Linux kernel's C coding
    style. The generator attempts to match the usual C coding style of
    the Linux kernel's SunRPC consumers.
    
    This approach is similar to the netlink code generator in
    tools/net/ynl .
    
    The maintainability benefits of machine-generated XDR code include:
    
    - Stronger type checking
    - Reduces the number of bugs introduced by human error
    - Makes the XDR code easier to audit and analyze
    - Enables rapid prototyping of new RPC-based protocols
    - Hardens the layering between protocol logic and marshaling
    - Makes it easier to add observability on demand
    - Unit tests might be built for both the tool and (automatically)
      for the generated code
    
    In addition, converting the XDR layer to use memory-safe languages
    such as Rust will be easier if much of the code can be converted
    automatically.
    Tested-by: default avatarJeff Layton <jlayton@kernel.org>
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    4b132aac
lint.py 825 Bytes