/* * Copyright (C) 2016 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.net.util; /** * Networking protocol constants. * * Includes: * - constants that describe packet layout * - various helper functions * * @hide */ public final class NetworkConstants { private NetworkConstants() { throw new RuntimeException("no instance permitted"); } public static final byte FF = asByte(0xff); public static final byte[] ETHER_ADDR_BROADCAST = { FF, FF, FF, FF, FF, FF }; public static final int ETHER_MTU = 1500; /** * IPv4 constants. * * See also: * - https://tools.ietf.org/html/rfc791 */ public static final int IPV4_ADDR_BITS = 32; /** * IPv6 constants. * * See also: * - https://tools.ietf.org/html/rfc2460 */ public static final int IPV6_ADDR_BITS = 128; public static final int IPV6_ADDR_LEN = 16; public static final int IPV6_MIN_MTU = 1280; public static final int RFC7421_PREFIX_LENGTH = 64; /** * ICMP common (v4/v6) constants. * * See also: * - https://tools.ietf.org/html/rfc792 * - https://tools.ietf.org/html/rfc4443 */ public static final int ICMP_HEADER_TYPE_OFFSET = 0; public static final int ICMP_HEADER_CODE_OFFSET = 1; public static final int ICMP_HEADER_CHECKSUM_OFFSET = 2; public static final int ICMP_ECHO_IDENTIFIER_OFFSET = 4; public static final int ICMP_ECHO_SEQUENCE_NUMBER_OFFSET = 6; public static final int ICMP_ECHO_DATA_OFFSET = 8; /** * ICMPv4 constants. * * See also: * - https://tools.ietf.org/html/rfc792 */ public static final int ICMPV4_ECHO_REQUEST_TYPE = 8; public static final int ICMPV6_ECHO_REQUEST_TYPE = 128; /** * DNS constants. * * See also: * - https://tools.ietf.org/html/rfc1035 */ public static final int DNS_SERVER_PORT = 53; /** * Utility functions. */ public static byte asByte(int i) { return (byte) i; } }