1 package org.metricshub.ipmi.core.coding.commands.payload; 2 3 /*- 4 * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲ 5 * IPMI Java Client 6 * ჻჻჻჻჻჻ 7 * Copyright 2023 Verax Systems, MetricsHub 8 * ჻჻჻჻჻჻ 9 * This program is free software: you can redistribute it and/or modify 10 * it under the terms of the GNU Lesser General Public License as 11 * published by the Free Software Foundation, either version 3 of the 12 * License, or (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Lesser Public License for more details. 18 * 19 * You should have received a copy of the GNU General Lesser Public 20 * License along with this program. If not, see 21 * <http://www.gnu.org/licenses/lgpl-3.0.html>. 22 * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱ 23 */ 24 25 import org.metricshub.ipmi.core.coding.commands.ResponseData; 26 import org.metricshub.ipmi.core.common.TypeConverter; 27 28 /** 29 * Wrapper for Activate Payload response 30 */ 31 public abstract class ActivatePayloadResponseData implements ResponseData { 32 33 /** 34 * Maximum size of a payload data field from remote console to BMC. 35 * Excludes size of confidentiality header and trailer fields, if any. 36 */ 37 private int inboundPayloadSize; 38 39 /** 40 * Maximum size of a payload data field from BMC to remote console. 41 * Excludes size of confidentiality header and trailer fields, if any. 42 */ 43 private int outboundPayloadSize; 44 45 /** 46 * UDP port number that payload can be transferred over. 47 */ 48 private int payloadUdpPortNumber; 49 50 /** 51 * Payload VLAN number. FFFFh if VLAN addressing is not used. 52 */ 53 private int payloadVlanNumber; 54 55 /** 56 * Set auxiliary information data 57 * 58 * @param auxilaryInformationData auxiliary information in bytes 59 */ 60 public abstract void setAuxilaryInformationData(byte[] auxilaryInformationData); 61 62 /** 63 * Get inbound payload size 64 * 65 * @return int value 66 */ 67 public int getInboundPayloadSize() { 68 return inboundPayloadSize; 69 } 70 71 /** 72 * Set inbound payload size 73 * 74 * @param inboundPayloadSizeData byte array of inbound payload size data 75 */ 76 public void setInboundPayloadSize(byte[] inboundPayloadSizeData) { 77 this.inboundPayloadSize = TypeConverter.littleEndianWordToInt(inboundPayloadSizeData); 78 } 79 80 /** 81 * Get outbound payload size 82 * 83 * @return int value 84 */ 85 public int getOutboundPayloadSize() { 86 return outboundPayloadSize; 87 } 88 89 /** 90 * Set outbound payload size 91 * 92 * @param outboundPayloadSizeData byte array of outbound payload size data 93 */ 94 public void setOutboundPayloadSize(byte[] outboundPayloadSizeData) { 95 this.outboundPayloadSize = TypeConverter.littleEndianWordToInt(outboundPayloadSizeData); 96 } 97 98 /** 99 * Get payload udp port number 100 * 101 * @return Udp port number as int value 102 */ 103 public int getPayloadUdpPortNumber() { 104 return payloadUdpPortNumber; 105 } 106 107 /** 108 * Set payload udp port number 109 * 110 * @param payloadUdpPortNumberData byte array of payload udp port number data 111 */ 112 public void setPayloadUdpPortNumber(byte[] payloadUdpPortNumberData) { 113 this.payloadUdpPortNumber = TypeConverter.littleEndianWordToInt(payloadUdpPortNumberData); 114 } 115 116 /** 117 * Get payload vlan number 118 * 119 * @return vlan number data as int 120 */ 121 public int getPayloadVlanNumber() { 122 return payloadVlanNumber; 123 } 124 125 /** 126 * Set payload vlan number 127 * 128 * @param payloadVlanNumberData byte array of payload vlan number data 129 */ 130 public void setPayloadVlanNumber(byte[] payloadVlanNumberData) { 131 this.payloadVlanNumber = TypeConverter.littleEndianWordToInt(payloadVlanNumberData); 132 } 133 134 }