go.etcd.io/etcd@v3.3.27+incompatible/raft/raftpb/raft.proto (about)

     1  syntax = "proto2";
     2  package raftpb;
     3  
     4  import "gogoproto/gogo.proto";
     5  
     6  option (gogoproto.marshaler_all) = true;
     7  option (gogoproto.sizer_all) = true;
     8  option (gogoproto.unmarshaler_all) = true;
     9  option (gogoproto.goproto_getters_all) = false;
    10  option (gogoproto.goproto_enum_prefix_all) = false;
    11  
    12  enum EntryType {
    13  	EntryNormal     = 0;
    14  	EntryConfChange = 1;
    15  }
    16  
    17  message Entry {
    18  	optional uint64     Term  = 2 [(gogoproto.nullable) = false]; // must be 64-bit aligned for atomic operations
    19  	optional uint64     Index = 3 [(gogoproto.nullable) = false]; // must be 64-bit aligned for atomic operations
    20  	optional EntryType  Type  = 1 [(gogoproto.nullable) = false];
    21  	optional bytes      Data  = 4;
    22  }
    23  
    24  message SnapshotMetadata {
    25  	optional ConfState conf_state = 1 [(gogoproto.nullable) = false];
    26  	optional uint64    index      = 2 [(gogoproto.nullable) = false];
    27  	optional uint64    term       = 3 [(gogoproto.nullable) = false];
    28  }
    29  
    30  message Snapshot {
    31  	optional bytes            data     = 1;
    32  	optional SnapshotMetadata metadata = 2 [(gogoproto.nullable) = false];
    33  }
    34  
    35  enum MessageType {
    36  	MsgHup             = 0;
    37  	MsgBeat            = 1;
    38  	MsgProp            = 2;
    39  	MsgApp             = 3;
    40  	MsgAppResp         = 4;
    41  	MsgVote            = 5;
    42  	MsgVoteResp        = 6;
    43  	MsgSnap            = 7;
    44  	MsgHeartbeat       = 8;
    45  	MsgHeartbeatResp   = 9;
    46  	MsgUnreachable     = 10;
    47  	MsgSnapStatus      = 11;
    48  	MsgCheckQuorum     = 12;
    49  	MsgTransferLeader  = 13;
    50  	MsgTimeoutNow      = 14;
    51  	MsgReadIndex       = 15;
    52  	MsgReadIndexResp   = 16;
    53  	MsgPreVote         = 17;
    54  	MsgPreVoteResp     = 18;
    55  }
    56  
    57  message Message {
    58  	optional MessageType type        = 1  [(gogoproto.nullable) = false];
    59  	optional uint64      to          = 2  [(gogoproto.nullable) = false];
    60  	optional uint64      from        = 3  [(gogoproto.nullable) = false];
    61  	optional uint64      term        = 4  [(gogoproto.nullable) = false];
    62  	optional uint64      logTerm     = 5  [(gogoproto.nullable) = false];
    63  	optional uint64      index       = 6  [(gogoproto.nullable) = false];
    64  	repeated Entry       entries     = 7  [(gogoproto.nullable) = false];
    65  	optional uint64      commit      = 8  [(gogoproto.nullable) = false];
    66  	optional Snapshot    snapshot    = 9  [(gogoproto.nullable) = false];
    67  	optional bool        reject      = 10 [(gogoproto.nullable) = false];
    68  	optional uint64      rejectHint  = 11 [(gogoproto.nullable) = false];
    69  	optional bytes       context     = 12;
    70  }
    71  
    72  message HardState {
    73  	optional uint64 term   = 1 [(gogoproto.nullable) = false];
    74  	optional uint64 vote   = 2 [(gogoproto.nullable) = false];
    75  	optional uint64 commit = 3 [(gogoproto.nullable) = false];
    76  }
    77  
    78  message ConfState {
    79  	repeated uint64 nodes    = 1;
    80  	repeated uint64 learners = 2;
    81  }
    82  
    83  enum ConfChangeType {
    84  	ConfChangeAddNode        = 0;
    85  	ConfChangeRemoveNode     = 1;
    86  	ConfChangeUpdateNode     = 2;
    87  	ConfChangeAddLearnerNode = 3;
    88  }
    89  
    90  message ConfChange {
    91  	optional uint64          ID      = 1 [(gogoproto.nullable) = false];
    92  	optional ConfChangeType  Type    = 2 [(gogoproto.nullable) = false];
    93  	optional uint64          NodeID  = 3 [(gogoproto.nullable) = false];
    94  	optional bytes           Context = 4;
    95  }