module yuma-proc {

    namespace "http://netconfcentral.org/ns/yuma-proc";

    prefix "proc";

    organization  "Netconf Central";

    contact "Andy Bierman <andy@netconfcentral.org>.";

    description 
      "NETCONF /proc file system monitoring.";

    revision 2012-10-10 {
        description  
	  "Add more counters for ubuntu 12.04 support.";
    }

    revision 2010-06-01 {
        description  
	  "Add more counters for ubuntu 10.04 support.";
    }

    revision 2009-11-21 {
        description  
	  "Renamed proc to yuma-proc.";
    }

    revision 2009-07-17 {
        description  
	  "Initial version.";
    }

    typedef YesNo {
      type enumeration {
        enum no;
        enum yes;
      }
    }

    container proc {
        description
          "/proc file system monitoring data.";

        config false;

        container cpuinfo {
          description
            "/proc/cpuinfo file system monitoring data.";

          list cpu {
             key processor;

             leaf processor {
               description "Processor Identifier";
               type uint32;
             }

             leaf vendor_id {
               description "Vendor Identifier";
               type string;
             }

             leaf cpu_family {
               description "CPU family number";
               type uint32;
             }

             leaf model {
               description "Model number";
               type uint32;
             }

             leaf model_name {
               description "Model name";
               type string;
             }

             leaf stepping {
               description "Stepping number";
               type uint32;
             }

             leaf microcode {
               description "Microcode hex string";
               type string;
             }

             leaf cpu_MHz {
               description "CPU mega-hurtz number";
               type decimal64 {
                  fraction-digits 3;
               }
             }

             leaf cache_size {
               description "Cache size string";
               type string;
             }

             leaf physical_id {
               description "Physical Identifier number";
               type uint32;
             }

             leaf siblings {
               description "Siblings number";
               type uint32;
             }

             leaf core_id {
               description "Core identifier number";
               type uint32;
             }

             leaf cpu_cores {
               description "Number of CPU cores";
               type uint32;
             }

             leaf apicid {
               description "APICID number";
               type uint32;
             }

             leaf initial_apicid {
               description "Initial APICID number";
               type uint32;
             }

             leaf fdiv_bug {
               description "fdiv bug present";
               type YesNo;
             }

             leaf hlt_bug {
               description "hlt bug present";
               type YesNo;
             }

             leaf f00f_bug {
               description "f00f bug present";
               type YesNo;
             }

             leaf coma_bug {
               description "coma bug present";
               type YesNo;
             }

             leaf fpu {
               description "FPU present";
               type YesNo;
             }

             leaf fpu_exception {
               description "FPU exception supported";
               type YesNo;
             }

             leaf cpuid_level {
               description "CPU ID level number";
               type uint32;
             }

             leaf wp {
               description "wp enabled";
               type YesNo;
             }

             leaf flags {
               description "flags string";
               type string;
             }

             leaf bogomips {
               description "bogo MIPs number";
               type decimal64 {
                 fraction-digits 2;
               }
             }

             leaf TLB_size {
               description "TLB size: number of pages";
               type string;
             }

             leaf clflush_size {
               description "CL flush size number";
               type uint32;
             }

             leaf cache_alignment {
               description "Cache alignment number";
               type uint32;
             }

             leaf address_sizes {
               description "Address sizes string";
               type string;
             }

             leaf power_management {
               description "power management string";
               type string;
             }
          }         
        }

        container meminfo {
          description
            "/proc/meminfo system monitoring data.";

          leaf MemTotal {
            description "Memory Total string";
            type string;
          }

          leaf MemFree {
            description "Memory Free string";
            type string;
          }

          leaf Buffers {
            description "Buffers string";
            type string;
          }

          leaf Cached {
            description "Cached string";
            type string;
          }

          leaf SwapCached {
            description "Swap Cached string";
            type string;
          }

          leaf Active {
            description "Active string";
            type string;
          }

          leaf Active_anon_ {
            description "Active(anon) string";
            type string;
          }

          leaf Active_file_ {
            description "Active(file) string";
            type string;
          }

          leaf Inactive {
            description "Inactive string";
            type string;
          }

          leaf Inactive_anon_ {
            description "Inactive(anon) string";
            type string;
          }

          leaf Inactive_file_ {
            description "Inactive(file) string";
            type string;
          }

          leaf Unevictable {
            description "Unevictable string";
            type string;
          }

          leaf Mlocked {
            description "Mlocked string";
            type string;
          }
          
          leaf HighTotal {
            description "High Total string";
            type string;
          }

          leaf HighFree {
            description "High Free string";
            type string;
          }

          leaf LowTotal {
            description "Low Total string";
            type string;
          }

          leaf LowFree {
            description "Low Free string";
            type string;
          }

          leaf SwapTotal {
            description "Swap Total string";
            type string;
          }

          leaf SwapFree {
            description "Swap Free string";
            type string;
          }

          leaf Dirty {
            description "Dirty string";
            type string;
          }

          leaf Writeback {
            description "Writeback string";
            type string;
          }

          leaf AnonPages {
            description "Anonymous Pages string";
            type string;
          }

          leaf Mapped {
            description "Mapped string";
            type string;
          }

          leaf Shmem {
            description "Shmem string";
            type string;
          }

          leaf Slab {
            description "Slab string";
            type string;
          }

          leaf SReclaimable {
            description "SReclaimable string";
            type string;
          }

          leaf SUnreclaim {
            description "SUnreclaim string";
            type string;
          }

          leaf KernelStack {
            description "KernelStack string";
            type string;
          }

          leaf PageTables {
            description "PageTables string";
            type string;
          }

          leaf NFS_Unstable {
            description "NFS Unstable string";
            type string;
          }

          leaf Bounce {
            description "Bounce string";
            type string;
          }

          leaf WritebackTmp {
            description "Writeback Temp string";
            type string;
          }

          leaf CommitLimit {
            description "Commit Limit string";
            type string;
          }

          leaf Committed_AS {
            description "Committed AS string";
            type string;
          }

          leaf VmallocTotal {
            description "Vmalloc Total string";
            type string;
          }

          leaf VmallocUsed {
            description "Vmalloc Used string";
            type string;
          }

          leaf VmallocChunk {
            description "Vmalloc Chunk string";
            type string;
          }

          leaf HardwareCorrupted {
            description "HardwareCorrupted string";
            type string;
          }

          leaf HugePages_Total {
            description "Huge Pages Total number";
            type uint32;
          }

          leaf HugePages_Free {
            description "Huge Pages Free number";
            type uint32;
          }

          leaf HugePages_Rsvd {
            description "Huge Pages Reserved number";
            type uint32;
          }

          leaf HugePages_Surp {
            description "Huge Pages Surplus number";
            type uint32;
          }

          leaf Hugepagesize {
            description "Huge Page size string";
            type string;
          }

          leaf DirectMap4k {
            description "Direct Map 4k string";
            type string;
          }

          leaf DirectMap2M {
            description "Direct Map 2M string";
            type string;
          }

          leaf DirectMap4M {
            description "Direct Map 4M string";
            type string;
          }

        }








   }
}
