From: Sean Hefty Date: Mon, 6 Dec 2010 23:49:25 +0000 (-0800) Subject: refresh (create temporary patch) X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=9e1e1ec667a3a1afc14b1d80c25bacccfd5cd08d;p=~shefty%2Fibacm.git refresh (create temporary patch) --- diff --git a/meta b/meta index 082ea21..4601c21 100644 --- a/meta +++ b/meta @@ -1,6 +1,6 @@ Version: 1 -Previous: ed8715b32e98ebd1f439a4e27d56dbc031af0e02 -Head: ff186988bcdfb1dedf877485791c46bbe2950902 +Previous: 22d4422325ae427ad40011bf83314175cd14075e +Head: b8d801760afc90d58473c0b99c6e0f0d77d641b6 Applied: logging: 549692c49922dce3911d97dcc6d0a2fc583ab5f7 acm_snoop: dd5542fbaa1c5a92367d0552ef3525d5ea0a4638 @@ -14,6 +14,7 @@ Applied: no_addr: 775cf275e0feddd7b884ded8cdc341a919e4f9a6 log_port: 92f81cd1f299db9d83aa21d794cfdfc4c4b5794f nodelay: ff186988bcdfb1dedf877485791c46bbe2950902 + refresh-temp: b8d801760afc90d58473c0b99c6e0f0d77d641b6 Unapplied: acme_verbose: 45cba0846874c93ef7af156bf0afe59f43d82ea6 1.0.4: 9f452b8e59adb21b90fbdda980d25a54d4360d37 diff --git a/patches/refresh-temp b/patches/refresh-temp new file mode 100644 index 0000000..5553ff1 --- /dev/null +++ b/patches/refresh-temp @@ -0,0 +1,135 @@ +Bottom: 9bd0de553ed9e9568bbdd22a2f0ccafa4a17450f +Top: 9a270ff78976ad2fad44919c3ccfde93246bfe39 +Author: Sean Hefty +Date: 2010-12-06 15:49:25 -0800 + +Refresh of nodelay + +--- + +diff --git a/man/ib_acme.1 b/man/ib_acme.1 +index 0c0e332..52000a3 100644 +--- a/man/ib_acme.1 ++++ b/man/ib_acme.1 +@@ -37,6 +37,10 @@ Indicates that the resolved path information should be verified with the + active IB SA. Use of the -v option provides a sanity check that + resolved path information is usable given the current cluster configuration. + .TP ++\-c ++Instructs the ACM service to only returned information that currently resides ++in its local cache. ++.TP + \-A + With this option, the ib_acme utility automatically generates the address + configuration file acm_addr.cfg. The generated file is +diff --git a/src/acme.c b/src/acme.c +index f14912a..3ee2073 100644 +--- a/src/acme.c ++++ b/src/acme.c +@@ -51,6 +51,7 @@ static char *dest_addr; + static char *src_addr; + static char addr_type = 'i'; + static int verify; ++static int nodelay; + static int make_addr; + static int make_opts; + int verbose; +@@ -419,6 +420,16 @@ static void show_path(struct ibv_path_record *path) + printf(" packet lifetime: %d\n", path->packetlifetime & 0x1F); + } + ++static uint32_t get_resolve_flags() ++{ ++ uint32_t flags = 0; ++ ++ if (nodelay) ++ flags |= ACM_FLAGS_NODELAY; ++ ++ return flags; ++} ++ + static int resolve_ip(struct ibv_path_record *path) + { + struct ibv_path_data *paths; +@@ -440,7 +451,7 @@ static int resolve_ip(struct ibv_path_record *path) + } + + ret = ib_acm_resolve_ip((struct sockaddr *) &src, (struct sockaddr *) &dest, +- &paths, &count); ++ &paths, &count, get_resolve_flags()); + if (ret) { + printf("ib_acm_resolve_ip failed: 0x%x\n", ret); + return ret; +@@ -456,7 +467,7 @@ static int resolve_name(struct ibv_path_record *path) + struct ibv_path_data *paths; + int ret, count; + +- ret = ib_acm_resolve_name(src_addr, dest_addr, &paths, &count); ++ ret = ib_acm_resolve_name(src_addr, dest_addr, &paths, &count, get_resolve_flags()); + if (ret) { + printf("ib_acm_resolve_name failed: 0x%x\n", ret); + return ret; +diff --git a/src/libacm.c b/src/libacm.c +index 3ce0cd0..59a181b 100644 +--- a/src/libacm.c ++++ b/src/libacm.c +@@ -143,7 +143,7 @@ err: + } + + static int acm_resolve(uint8_t *src, uint8_t *dest, uint8_t type, +- struct ibv_path_data **paths, int *count) ++ struct ibv_path_data **paths, int *count, uint32_t flags) + { + struct acm_msg msg; + struct acm_resolve_msg *resolve_msg = (struct acm_resolve_msg *) &msg; +@@ -162,7 +162,7 @@ static int acm_resolve(uint8_t *src, uint8_t *dest, uint8_t type, + src_data->type = type; + src_data->flags = ACM_EP_FLAG_SOURCE; + dest_data->type = type; +- dest_data->flags = ACM_EP_FLAG_DEST; ++ dest_data->flags = ACM_EP_FLAG_DEST | flags; + + switch (type) { + case ACM_EP_INFO_NAME: +@@ -202,21 +202,21 @@ out: + } + + int ib_acm_resolve_name(char *src, char *dest, +- struct ibv_path_data **paths, int *count) ++ struct ibv_path_data **paths, int *count, uint32_t flags) + { + return acm_resolve((uint8_t *) src, (uint8_t *) dest, +- ACM_EP_INFO_NAME, paths, count); ++ ACM_EP_INFO_NAME, paths, count, flags); + } + + int ib_acm_resolve_ip(struct sockaddr *src, struct sockaddr *dest, +- struct ibv_path_data **paths, int *count) ++ struct ibv_path_data **paths, int *count, uint32_t flags) + { + if (((struct sockaddr *) dest)->sa_family == AF_INET) { + return acm_resolve((uint8_t *) src, (uint8_t *) dest, +- ACM_EP_INFO_ADDRESS_IP, paths, count); ++ ACM_EP_INFO_ADDRESS_IP, paths, count, flags); + } else { + return acm_resolve((uint8_t *) src, (uint8_t *) dest, +- ACM_EP_INFO_ADDRESS_IP6, paths, count); ++ ACM_EP_INFO_ADDRESS_IP6, paths, count, flags); + } + } + +diff --git a/src/libacm.h b/src/libacm.h +index 302099b..16df8b0 100644 +--- a/src/libacm.h ++++ b/src/libacm.h +@@ -33,8 +33,8 @@ int libacm_init(); + void libacm_cleanup(); + + int ib_acm_resolve_name(char *src, char *dest, +- struct ibv_path_data **paths, int *count); ++ struct ibv_path_data **paths, int *count, uint32_t flags); + int ib_acm_resolve_ip(struct sockaddr *src, struct sockaddr *dest, +- struct ibv_path_data **paths, int *count); ++ struct ibv_path_data **paths, int *count, uint32_t flags); + int ib_acm_resolve_path(struct ibv_path_record *path, uint32_t flags); + #define ib_acm_free_paths(paths) free(paths)