module odl-lisp-sb {

    yang-version 1;
    namespace "urn:opendaylight:lfm:lisp-sb";
    prefix "lisp-sb";

    import odl-lisp-proto { prefix lisp-proto; revision-date 2015-11-05; }

    contact "Lorand Jakab <lojakab@cisco.com";

    description
        "API for the LISP southbound module";

    revision "2015-09-04" {
        description "Initial version. Some content originally from lisp-proto.yang";
    }

    grouping ctrl-msg-stats {
        leaf rx-unknown {
            type int64;
        }
        leaf tx-errors {
            type int64;
        }
        list control-message {
            ordered-by "user";
            leaf msg-type {
                type lisp-proto:message-type;
            }
            leaf rx-count {
                type int64;
            }
            leaf tx-count {
                type int64;
            }
        }
    }

    grouping cache-stats {
        leaf hits {
            type int64;
        }
        leaf misses {
            type int64;
        }
    }

    rpc send-map-request {
        input {
            uses lisp-proto:MapRequestMessage;
        }
    }

    rpc send-map-reply {
        input {
            uses lisp-proto:MapReplyMessage;
        }
    }

    rpc send-map-register {
        input {
            uses lisp-proto:MapRegisterMessage;
        }
    }

    rpc send-map-notify {
        input {
            uses lisp-proto:MapNotifyMessage;
        }
    }

    rpc get-stats {
        output {
            container control-message-stats {
                uses ctrl-msg-stats;
            }
            container map-register-cache-stats {
                uses cache-stats;
            }
        }
    }

    rpc reset-stats {
    }
}