/* Copyright (c) 2007 Sidney Doria
 * Federal University of Campina Grande
 * Brazil
 *
 * This file is part of PUMA.
 *
 *    PUMA 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 2 of the License,
 *    or(at your option) any later version.
 *
 *    PUMA 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 PUMA; if not, write to the Free Software
 *    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 *    02110-1301 USA
 */
#ifndef PUMA_PKT_H_
#define PUMA_PKT_H_

#define HDR_PUMA(p) hdr_puma::access(p)
#define PUMA_HDR_LEN 4

/*
 * PUMA Header Description
 */
struct hdr_puma {
		u_int32_t ma_count;  // Multicast announcements in a bucket
		static int offset_;  // Offset of the PUMA packet header

		inline static int& offset() {return offset_;}
                inline static hdr_puma* access(const Packet* p) {
        	    return (hdr_puma*)p->access(offset_);
        }
};

#endif /*PUMA_PKT_H_*/
