/*
Copyright (C) 2010 Srivats P.

This file is part of "Ostinato"

This is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>
*/

import "protocol.proto";

package OstProto;

// Ethernet
message Mac {

    enum MacAddrMode {
        e_mm_fixed = 0;
        e_mm_inc = 1;
        e_mm_dec = 2;
        e_mm_resolve = 3; // dst: resolve neighbor; src: from device config
    }

    // Dst Mac
    optional uint64            dst_mac = 1;
    optional MacAddrMode       dst_mac_mode = 2 [default = e_mm_resolve];
    optional uint32            dst_mac_count = 3 [default = 16];
    optional uint32            dst_mac_step = 4 [default = 1];

    // Src Mac
    optional uint64            src_mac = 5;
    optional MacAddrMode       src_mac_mode = 6 [default = e_mm_resolve];
    optional uint32            src_mac_count = 7 [default = 16];
    optional uint32            src_mac_step = 8 [default = 1];
}

extend Protocol {
    optional Mac mac = 100;
}
